Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
router:zapret [2025/03/11 23:14] – mirocow | router:zapret [2025/09/27 22:24] (текущий) – mirocow | ||
---|---|---|---|
Строка 5: | Строка 5: | ||
<code bash> | <code bash> | ||
- | $ amtm ep | + | $ amtm |
+ | ep | ||
+ | / | ||
</ | </ | ||
Строка 13: | Строка 15: | ||
<code bash> | <code bash> | ||
- | $ wget https:// | + | $ wget https:// |
- | $ tar -xvzf zapret-v70.tar.gz | + | $ tar -xvzf zapret-v71.4.tar.gz |
- | $ cd zapret-v70 | + | $ cd zapret-v71.4 |
$ ./ | $ ./ | ||
- Y | - Y | ||
- Y | - Y | ||
- Y | - Y | ||
- | - 1 | + | - Y |
+ | - 1 : iptables | ||
- Y | - Y | ||
- N | - N | ||
Строка 31: | Строка 34: | ||
</ | </ | ||
- | {{: | + | * **Выбираем iptables** |
+ | * **Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере** | ||
+ | * **Выбираем режим фильтрации трафика (none, ipset, hostlist, autohostlist). - none** | ||
- | Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере: | + | ==== Режимы фильтрации |
- | + | ||
- | {{: | + | |
- | + | ||
- | Но заворот трафика на nfqws происходит всегда после маршрутизации, | + | |
- | + | ||
- | <note tip> | + | |
* none - фильтрация отключена, | * none - фильтрация отключена, | ||
Строка 47: | Строка 46: | ||
Режим фильтра также можно потом менять через параметр MODE_FILTER в / | Режим фильтра также можно потом менять через параметр MODE_FILTER в / | ||
- | |||
- | nano / | ||
- | <code bash> | ||
- | #!/bin/sh | ||
- | ### BEGIN INIT INFO | ||
- | # Provides: | ||
- | # Required-Start: | ||
- | # Required-Stop: | ||
- | # Default-Start: | ||
- | # Default-Stop: | ||
- | ### END INIT INFO | ||
- | |||
- | SCRIPT=$(readlink -f " | ||
- | EXEDIR=$(dirname " | ||
- | ZAPRET_BASE=$(readlink -f " | ||
- | . " | ||
- | |||
- | NAME=zapret | ||
- | DESC=anti-zapret | ||
- | |||
- | do_start() | ||
- | { | ||
- | |||
- | if lsmod | grep " | ||
- | echo " | ||
- | else | ||
- | if insmod / | ||
- | echo " | ||
- | else | ||
- | echo " | ||
- | #exit 1 | ||
- | fi | ||
- | fi | ||
- | |||
- | if lsmod | grep " | ||
- | echo " | ||
- | else | ||
- | if insmod / | ||
- | echo " | ||
- | else | ||
- | echo " | ||
- | #exit 1 | ||
- | fi | ||
- | fi | ||
- | |||
- | if lsmod | grep " | ||
- | echo " | ||
- | else | ||
- | if insmod / | ||
- | echo " | ||
- | else | ||
- | echo " | ||
- | #exit 1 | ||
- | fi | ||
- | fi | ||
- | |||
- | zapret_run_daemons | ||
- | [ " | ||
- | } | ||
- | do_stop() | ||
- | { | ||
- | zapret_stop_daemons | ||
- | [ " | ||
- | } | ||
- | |||
- | case " | ||
- | start) | ||
- | do_start | ||
- | ;; | ||
- | |||
- | stop) | ||
- | do_stop | ||
- | ;; | ||
- | |||
- | restart) | ||
- | do_stop | ||
- | do_start | ||
- | ;; | ||
- | |||
- | start-fw|start_fw) | ||
- | zapret_apply_firewall | ||
- | ;; | ||
- | stop-fw|stop_fw) | ||
- | zapret_unapply_firewall | ||
- | ;; | ||
- | |||
- | restart-fw|restart_fw) | ||
- | zapret_unapply_firewall | ||
- | zapret_apply_firewall | ||
- | ;; | ||
- | |||
- | start-daemons|start_daemons) | ||
- | zapret_run_daemons | ||
- | ;; | ||
- | stop-daemons|stop_daemons) | ||
- | zapret_stop_daemons | ||
- | ;; | ||
- | restart-daemons|restart_daemons) | ||
- | zapret_stop_daemons | ||
- | zapret_run_daemons | ||
- | ;; | ||
- | |||
- | reload-ifsets|reload_ifsets) | ||
- | zapret_reload_ifsets | ||
- | ;; | ||
- | list-ifsets|list_ifsets) | ||
- | zapret_list_ifsets | ||
- | ;; | ||
- | list-table|list_table) | ||
- | zapret_list_table | ||
- | ;; | ||
- | |||
- | *) | ||
- | N=/ | ||
- | echo " | ||
- | exit 1 | ||
- | ;; | ||
- | esac | ||
- | |||
- | exit 0 | ||
- | </ | ||
- | |||
- | nano / | ||
- | <code bash> | ||
- | # Пользователь, | ||
- | WS_USER=nobody | ||
- | |||
- | # Тип фаервола (iptables, nftables, ipfw) | ||
- | FWTYPE=iptables | ||
- | |||
- | # Максимальное количество элементов в ipset | ||
- | SET_MAXELEM=522288 | ||
- | |||
- | # Параметры для ipset (размер хэш-таблицы и максимальное количество элементов) | ||
- | IPSET_OPT=" | ||
- | |||
- | # Параметры для агрегации IP-адресов (IPv4) | ||
- | IP2NET_OPT4=" | ||
- | |||
- | # Параметры для агрегации IP-адресов (IPv6) | ||
- | IP2NET_OPT6=" | ||
- | |||
- | # Порог повторных попыток для автоматического добавления хостов | ||
- | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | ||
- | |||
- | # Порог ошибок для автоматического добавления хостов | ||
- | AUTOHOSTLIST_FAIL_THRESHOLD=3 | ||
- | |||
- | # Время, через которое хосты удаляются из автоматического списка | ||
- | AUTOHOSTLIST_FAIL_TIME=60 | ||
- | |||
- | # Включение отладки для автоматического списка хостов | ||
- | AUTOHOSTLIST_DEBUGLOG=0 | ||
- | |||
- | # Количество потоков для разрешения доменных имен | ||
- | MDIG_THREADS=30 | ||
- | |||
- | # Сжатие списков IP и доменов | ||
- | GZIP_LISTS=1 | ||
- | |||
- | # Метка для предотвращения зацикливания пакетов в nfqws | ||
- | DESYNC_MARK=0x40000000 | ||
- | |||
- | # Метка для предотвращения зацикливания пакетов в post-nat режиме | ||
- | DESYNC_MARK_POSTNAT=0x20000000 | ||
- | |||
- | # Включение SOCKS-прокси | ||
- | TPWS_SOCKS_ENABLE=1 | ||
- | |||
- | # Порт для SOCKS-прокси | ||
- | TPPORT_SOCKS=987 | ||
- | |||
- | # Настройки SOCKS-прокси | ||
- | TPWS_SOCKS_OPT=" | ||
- | --filter-tcp=80 --methodeol < | ||
- | --filter-tcp=443 --split-pos=1, | ||
- | " | ||
- | |||
- | # Включение TPWS (Transparent Proxy Web Server) | ||
- | TPWS_ENABLE=1 | ||
- | |||
- | # Портs для TPWS | ||
- | TPWS_PORTS=80, | ||
- | |||
- | # Настройки TPWS | ||
- | TPWS_OPT=" | ||
- | --filter-tcp=80 --methodeol < | ||
- | --filter-tcp=443 --split-pos=1, | ||
- | " | ||
- | |||
- | # Включение NFQWS (NetFilter Queue Web Server) | ||
- | NFQWS_ENABLE=1 | ||
- | |||
- | # Портs для NFQWS (TCP) | ||
- | NFQWS_PORTS_TCP=80, | ||
- | |||
- | # Портs для NFQWS (UDP) | ||
- | NFQWS_PORTS_UDP=443 | ||
- | |||
- | # Лимит пакетов для исходящего TCP-трафика | ||
- | NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
- | |||
- | # Лимит пакетов для входящего TCP-трафика | ||
- | NFQWS_TCP_PKT_IN=3 | ||
- | |||
- | # Лимит пакетов для исходящего UDP-трафика | ||
- | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
- | |||
- | # Лимит пакетов для входящего UDP-трафика | ||
- | NFQWS_UDP_PKT_IN=0 | ||
- | |||
- | # Основные настройки NFQWS_OPT для обхода блокировок | ||
- | NFQWS_OPT=" | ||
- | # youtube | ||
- | --filter-tcp=80 --dpi-desync=fake, | ||
- | --filter-tcp=443 --dpi-desync=fake, | ||
- | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, | ||
- | " | ||
- | |||
- | # Режим фильтрации (none, ipset, hostlist, autohostlist) | ||
- | MODE_FILTER=none | ||
- | |||
- | # Отключение flow offload (donttouch, none, software, hardware) | ||
- | FLOWOFFLOAD=donttouch | ||
- | |||
- | # Сетевой интерфейс для LAN | ||
- | IFACE_LAN=br0 | ||
- | |||
- | # Сетевой интерфейс для WAN | ||
- | IFACE_WAN=eth0 | ||
- | |||
- | # Применение правил фаервола при старте/ | ||
- | INIT_APPLY_FW=1 | ||
- | |||
- | # Отключение IPv6 (0 — включен, | ||
- | DISABLE_IPV6=0 | ||
- | </ | ||
- | |||
- | Пример для подключения нескольких списков с раздельными правилами | ||
- | <code bash> | ||
- | # Основные настройки NFQWS_OPT для обхода блокировок | ||
- | NFQWS_OPT=" | ||
- | --filter-tcp=80 --dpi-desync=fake, | ||
- | --filter-tcp=443 --dpi-desync=fake, | ||
- | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, | ||
- | |||
- | --filter-tcp=80 --dpi-desync=fake, | ||
- | --filter-tcp=443 --dpi-desync=fake, | ||
- | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, | ||
- | " | ||
- | </ | ||
==== Текущие настройки ==== | ==== Текущие настройки ==== | ||
Строка 305: | Строка 53: | ||
WS_USER=nobody | WS_USER=nobody | ||
FWTYPE=iptables | FWTYPE=iptables | ||
- | SET_MAXELEM=522288 | + | SET_MAXELEM=1048576 |
IPSET_OPT=" | IPSET_OPT=" | ||
IP2NET_OPT4=" | IP2NET_OPT4=" | ||
- | IP2NET_OPT6=" | + | IP2NET_OPT6=" |
AUTOHOSTLIST_RETRANS_THRESHOLD=3 | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | ||
AUTOHOSTLIST_FAIL_THRESHOLD=3 | AUTOHOSTLIST_FAIL_THRESHOLD=3 | ||
- | AUTOHOSTLIST_FAIL_TIME=60 | + | AUTOHOSTLIST_FAIL_TIME=30 |
AUTOHOSTLIST_DEBUGLOG=0 | AUTOHOSTLIST_DEBUGLOG=0 | ||
- | MDIG_THREADS=30 | + | MDIG_THREADS=50 |
GZIP_LISTS=1 | GZIP_LISTS=1 | ||
DESYNC_MARK=0x40000000 | DESYNC_MARK=0x40000000 | ||
Строка 323: | Строка 71: | ||
--filter-tcp=443 --split-pos=1, | --filter-tcp=443 --split-pos=1, | ||
" | " | ||
- | TPWS_ENABLE=1 | + | TPWS_ENABLE=0 |
TPWS_PORTS=80, | TPWS_PORTS=80, | ||
TPWS_OPT=" | TPWS_OPT=" | ||
Строка 329: | Строка 77: | ||
--filter-tcp=443 --split-pos=2, | --filter-tcp=443 --split-pos=2, | ||
" | " | ||
- | NFQWS_ENABLE=0 | + | NFQWS_ENABLE=1 |
NFQWS_PORTS_TCP=80, | NFQWS_PORTS_TCP=80, | ||
NFQWS_PORTS_UDP=443 | NFQWS_PORTS_UDP=443 | ||
Строка 336: | Строка 84: | ||
NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
NFQWS_UDP_PKT_IN=0 | NFQWS_UDP_PKT_IN=0 | ||
- | MODE_HTTP=0 | + | MODE_HTTP=1 |
- | MODE_HTTPS=0 | + | MODE_HTTPS=1 |
- | MODE_QUIC=0 | + | MODE_QUIC=1 |
NFQWS_OPT=" | NFQWS_OPT=" | ||
- | NFQWS_OPT=" | + | # YouTube rules |
- | # youtube | + | --filter-tcp=80 --dpi-desync=fake, |
- | --filter-tcp=80 --dpi-desync=fake, | + | --filter-tcp=443 --dpi-desync=fake, |
- | --filter-tcp=443 --dpi-desync=fake, | + | # |
- | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 | + | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, |
- | # Other | + | # Main rules |
+ | --filter-tcp=80, | ||
+ | --filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=0 | ||
" | " | ||
+ | NFQWS_OPT_DESYNC=" | ||
+ | NFQWS_OPT_DESYNC_QUIC=" | ||
MODE_FILTER=none | MODE_FILTER=none | ||
- | FLOWOFFLOAD=donttouch | + | FLOWOFFLOAD=disable |
IFACE_LAN=br0 | IFACE_LAN=br0 | ||
- | IFACE_WAN=eth3 | + | IFACE_WAN=eth0 |
INIT_APPLY_FW=1 | INIT_APPLY_FW=1 | ||
DISABLE_IPV6=0 | DISABLE_IPV6=0 | ||
DEBUGLOG=0 | DEBUGLOG=0 | ||
</ | </ | ||
+ | |||
+ | <code bash> | ||
+ | $ echo '' | ||
+ | </ | ||
+ | |||
+ | === Только для теста === | ||
* [[: | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
===== NWQWS_OPT ===== | ===== NWQWS_OPT ===== | ||
Строка 438: | Строка 193: | ||
nano / | nano / | ||
< | < | ||
+ | youtube.com | ||
+ | youtu.be | ||
+ | googlevideo.com | ||
+ | googleapis.com | ||
+ | ggpht.com | ||
+ | ytimg.com | ||
+ | youtube-nocookie.com | ||
+ | play.google.com | ||
+ | gstatic.com | ||
googlevideo.com | googlevideo.com | ||
ggpht.com | ggpht.com | ||
Строка 465: | Строка 229: | ||
==== Скрипты ==== | ==== Скрипты ==== | ||
- | |||
- | <code bash> | ||
- | $ ls -la / | ||
- | $ cp -a / | ||
- | </ | ||
* [[: | * [[: | ||
Строка 534: | Строка 293: | ||
</ | </ | ||
- | chmod +x / | + | <code bash> |
+ | $ chmod +x / | ||
+ | </ |