Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| router:zapret [2025/08/15 13:24] – 192.168.1.159 | router:zapret [2025/12/16 21:28] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | {{tag> | ||
| + | |||
| ====== Zapret - DPI bypass multi platform Topics (NFQWS) | ====== Zapret - DPI bypass multi platform Topics (NFQWS) | ||
| * [[:nfqws]] | * [[:nfqws]] | ||
| - | ===== Entware - Software repository | + | |
| + | ===== Подготовка | ||
| <code bash> | <code bash> | ||
| Строка 15: | Строка 18: | ||
| <code bash> | <code bash> | ||
| - | $ wget https:// | + | $ wget https:// |
| - | $ tar -xvzf zapret-v71.3.tar.gz | + | $ tar -xvzf zapret-v72.3.tar.gz |
| - | $ cd zapret-v71.3 | + | $ cd zapret-v72.3 |
| $ ./ | $ ./ | ||
| - Y | - Y | ||
| Строка 30: | Строка 33: | ||
| - N | - N | ||
| - 3 - br0 | - 3 - br0 | ||
| - | - 8 - eth3 | + | - 8 - eth0 |
| - 3 | - 3 | ||
| </ | </ | ||
| - | {{: | + | * **Выбираем iptables** |
| + | * **Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере** | ||
| + | * **Выбираем режим фильтрации трафика (none, ipset, hostlist, autohostlist). - none** | ||
| - | Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере: | + | ===== Обновление ===== |
| - | {{:network: | + | <code bash> |
| + | $ wget https:// | ||
| + | $ tar -xvzf zapret-v72.3.tar.gz | ||
| + | $ cd zapret-v72.3 | ||
| + | $ ./ | ||
| + | </ | ||
| - | Но заворот трафика на nfqws происходит всегда после маршрутизации, | + | ==== Режимы фильтрации |
| - | + | ||
| - | <note tip> | + | |
| * none - фильтрация отключена, | * none - фильтрация отключена, | ||
| Строка 51: | Строка 59: | ||
| Режим фильтра также можно потом менять через параметр 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 / | nano / | ||
| <code bash> | <code bash> | ||
| - | # Пользователь, | ||
| WS_USER=nobody | WS_USER=nobody | ||
| - | |||
| - | # Тип фаервола (iptables, nftables, ipfw) | ||
| FWTYPE=iptables | FWTYPE=iptables | ||
| - | + | SET_MAXELEM=1048576 | |
| - | # Максимальное количество элементов в ipset | + | |
| - | SET_MAXELEM=522288 | + | |
| - | + | ||
| - | # Параметры для ipset (размер хэш-таблицы и максимальное количество элементов) | + | |
| IPSET_OPT=" | IPSET_OPT=" | ||
| - | |||
| - | # Параметры для агрегации IP-адресов (IPv4) | ||
| IP2NET_OPT4=" | IP2NET_OPT4=" | ||
| - | + | IP2NET_OPT6=" | |
| - | # Параметры для агрегации IP-адресов (IPv6) | + | |
| - | IP2NET_OPT6=" | + | |
| - | + | ||
| - | # Порог повторных попыток для автоматического добавления хостов | + | |
| AUTOHOSTLIST_RETRANS_THRESHOLD=3 | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | ||
| - | |||
| - | # Порог ошибок для автоматического добавления хостов | ||
| AUTOHOSTLIST_FAIL_THRESHOLD=3 | AUTOHOSTLIST_FAIL_THRESHOLD=3 | ||
| - | + | AUTOHOSTLIST_FAIL_TIME=30 | |
| - | # Время, через которое хосты удаляются из автоматического списка | + | |
| - | AUTOHOSTLIST_FAIL_TIME=60 | + | |
| - | + | ||
| - | # Включение отладки для автоматического списка хостов | + | |
| AUTOHOSTLIST_DEBUGLOG=0 | AUTOHOSTLIST_DEBUGLOG=0 | ||
| - | + | MDIG_THREADS=50 | |
| - | # Количество потоков для разрешения доменных имен | + | |
| - | MDIG_THREADS=30 | + | |
| - | + | ||
| - | # Сжатие списков IP и доменов | + | |
| GZIP_LISTS=1 | GZIP_LISTS=1 | ||
| - | |||
| - | # Метка для предотвращения зацикливания пакетов в nfqws | ||
| DESYNC_MARK=0x40000000 | DESYNC_MARK=0x40000000 | ||
| - | |||
| - | # Метка для предотвращения зацикливания пакетов в post-nat режиме | ||
| DESYNC_MARK_POSTNAT=0x20000000 | DESYNC_MARK_POSTNAT=0x20000000 | ||
| - | + | TPWS_SOCKS_ENABLE=0 | |
| - | # Включение SOCKS-прокси | + | |
| - | TPWS_SOCKS_ENABLE=1 | + | |
| - | + | ||
| - | # Порт для SOCKS-прокси | + | |
| TPPORT_SOCKS=987 | TPPORT_SOCKS=987 | ||
| - | |||
| - | # Настройки SOCKS-прокси | ||
| TPWS_SOCKS_OPT=" | TPWS_SOCKS_OPT=" | ||
| - | --filter-tcp=80 --methodeol < | + | --filter-tcp=80 --methodeol |
| --filter-tcp=443 --split-pos=1, | --filter-tcp=443 --split-pos=1, | ||
| " | " | ||
| - | + | TPWS_ENABLE=0 | |
| - | # Включение TPWS (Transparent Proxy Web Server) | + | |
| - | TPWS_ENABLE=1 | + | |
| - | + | ||
| - | # Портs для TPWS | + | |
| TPWS_PORTS=80, | TPWS_PORTS=80, | ||
| - | |||
| - | # Настройки TPWS | ||
| TPWS_OPT=" | TPWS_OPT=" | ||
| - | --filter-tcp=80 --methodeol | + | --filter-tcp=80 --methodeol |
| - | --filter-tcp=443 --split-pos=1,midsld --disorder | + | --filter-tcp=443 --split-pos=2,midsld --disorder |
| " | " | ||
| - | |||
| - | # Включение NFQWS (NetFilter Queue Web Server) | ||
| NFQWS_ENABLE=1 | NFQWS_ENABLE=1 | ||
| - | |||
| - | # Портs для NFQWS (TCP) | ||
| NFQWS_PORTS_TCP=80, | NFQWS_PORTS_TCP=80, | ||
| - | |||
| - | # Портs для NFQWS (UDP) | ||
| NFQWS_PORTS_UDP=443 | NFQWS_PORTS_UDP=443 | ||
| - | |||
| - | # Лимит пакетов для исходящего TCP-трафика | ||
| NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
| - | |||
| - | # Лимит пакетов для входящего TCP-трафика | ||
| NFQWS_TCP_PKT_IN=3 | NFQWS_TCP_PKT_IN=3 | ||
| - | |||
| - | # Лимит пакетов для исходящего UDP-трафика | ||
| NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
| - | |||
| - | # Лимит пакетов для входящего UDP-трафика | ||
| NFQWS_UDP_PKT_IN=0 | NFQWS_UDP_PKT_IN=0 | ||
| - | + | MODE_HTTP=1 | |
| - | # Основные настройки NFQWS_OPT для обхода блокировок | + | MODE_HTTPS=1 |
| + | MODE_QUIC=1 | ||
| NFQWS_OPT=" | NFQWS_OPT=" | ||
| - | # youtube | + | # YouTube rules |
| - | --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 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, | + | #--filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=1 --dpi-desync-fake-quic=/ |
| + | --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, | ||
| + | |||
| + | # Main rules | ||
| + | --filter-tcp=80,443 --dpi-desync=fake --dpi-desync-ttl=0 | ||
| + | --filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=0 | ||
| " | " | ||
| + | NFQWS_OPT_DESYNC=" | ||
| + | NFQWS_OPT_DESYNC_QUIC=" | ||
| - | # Режим фильтрации (none, ipset, hostlist, autohostlist) | + | # Network settings |
| MODE_FILTER=none | MODE_FILTER=none | ||
| - | + | FLOWOFFLOAD=disable | |
| - | # Отключение flow offload (donttouch, none, software, hardware) | + | |
| - | FLOWOFFLOAD=donttouch | + | |
| - | + | ||
| - | # Сетевой интерфейс для LAN | + | |
| IFACE_LAN=br0 | IFACE_LAN=br0 | ||
| - | |||
| - | # Сетевой интерфейс для WAN | ||
| IFACE_WAN=eth0 | IFACE_WAN=eth0 | ||
| - | # Применение правил фаервола при старте/ | + | # Initialization |
| INIT_APPLY_FW=1 | INIT_APPLY_FW=1 | ||
| - | |||
| - | # Отключение IPv6 (0 — включен, | ||
| DISABLE_IPV6=0 | DISABLE_IPV6=0 | ||
| + | DEBUGLOG=0 | ||
| </ | </ | ||
| - | ==== Текущие настройки ==== | ||
| - | |||
| - | nano / | ||
| <code bash> | <code bash> | ||
| - | WS_USER=nobody | + | # Network settings |
| - | FWTYPE=iptables | + | |
| - | SET_MAXELEM=522288 | + | |
| - | IPSET_OPT=" | + | |
| - | IP2NET_OPT4=" | + | |
| - | IP2NET_OPT6=" | + | |
| - | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | + | |
| - | AUTOHOSTLIST_FAIL_THRESHOLD=3 | + | |
| - | AUTOHOSTLIST_FAIL_TIME=60 | + | |
| - | AUTOHOSTLIST_DEBUGLOG=0 | + | |
| - | MDIG_THREADS=30 | + | |
| - | GZIP_LISTS=1 | + | |
| - | DESYNC_MARK=0x40000000 | + | |
| - | DESYNC_MARK_POSTNAT=0x20000000 | + | |
| - | TPWS_SOCKS_ENABLE=0 | + | |
| - | TPPORT_SOCKS=987 | + | |
| - | TPWS_SOCKS_OPT=" | + | |
| - | --filter-tcp=80 --methodeol | + | |
| - | --filter-tcp=443 --split-pos=1, | + | |
| - | " | + | |
| - | TPWS_ENABLE=0 | + | |
| - | TPWS_PORTS=80, | + | |
| - | TPWS_OPT=" | + | |
| - | --filter-tcp=80 --methodeol --split-pos=2, | + | |
| - | --filter-tcp=443 --split-pos=2, | + | |
| - | " | + | |
| - | NFQWS_ENABLE=1 | + | |
| - | NFQWS_PORTS_TCP=80, | + | |
| - | NFQWS_PORTS_UDP=443 | + | |
| - | NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | + | |
| - | NFQWS_TCP_PKT_IN=3 | + | |
| - | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | + | |
| - | NFQWS_UDP_PKT_IN=0 | + | |
| - | MODE_HTTP=0 | + | |
| - | MODE_HTTPS=0 | + | |
| - | MODE_QUIC=0 | + | |
| - | 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 | + | |
| - | + | ||
| - | # Other | + | |
| - | " | + | |
| MODE_FILTER=none | MODE_FILTER=none | ||
| - | FLOWOFFLOAD=donttouch | + | FLOWOFFLOAD=disable |
| IFACE_LAN=br0 | IFACE_LAN=br0 | ||
| IFACE_WAN=eth0 | IFACE_WAN=eth0 | ||
| + | BIND_INTERFACE=1 | ||
| + | |||
| + | # Caching and performance | ||
| + | ENABLE_DNS_CACHE=1 | ||
| + | DNS_CACHE_SIZE=10000 | ||
| + | DNS_CACHE_TTL=300 | ||
| + | |||
| + | # Initialization | ||
| INIT_APPLY_FW=1 | INIT_APPLY_FW=1 | ||
| DISABLE_IPV6=0 | DISABLE_IPV6=0 | ||
| DEBUGLOG=0 | DEBUGLOG=0 | ||
| + | # Additional optimizations | ||
| + | # | ||
| + | # | ||
| + | ENABLE_FAST_START=1 | ||
| + | PRELOAD_IPSETS=1 | ||
| + | |||
| + | # YouTube-specific optimizations | ||
| + | YOUTUBE_CDN_OPTIMIZE=1 | ||
| + | ENABLE_QUIC_BYPASS=1 | ||
| + | AGGRESSIVE_RETRANSMISSION=1 | ||
| </ | </ | ||
| + | |||
| + | ==== Подготовка листа доменов для обработки ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ echo '' | ||
| + | </ | ||
| + | |||
| + | === Только для теста === | ||
| * [[: | * [[: | ||
| - | * [[: | ||
| - | * [[: | ||
| - | * [[: | ||
| ===== NWQWS_OPT ===== | ===== NWQWS_OPT ===== | ||
| < | < | ||
| - | --debug=0|1: 1 = выводить отладочные сообщения | + | --debug=0|1 |
| - | --daemon: демонизировать программу | + | --dry-run |
| - | --pidfile=< | + | --version |
| - | --user=< | + | --comment |
| - | --uid=uid[: | + | --daemon |
| - | --qnum=N: номер очереди N | + | --pidfile=< |
| - | --bind-fix4: пытаться решить проблему неверного выбора исходящего интерфейса для сгенерированных | + | --user=< |
| - | --bind-fix6: пытаться решить проблему неверного выбора исходящего интерфейса для сгенерированных | + | --uid=uid[: |
| - | --wsize=< | + | --qnum=N |
| - | --wssize=< | + | --bind-fix4 |
| - | --wssize-cutoff=[n|d|s]N: изменять server window size в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру меньше N | + | --bind-fix6 |
| - | --ctrack-timeouts=S:E:F[:U]: таймауты внутреннего | + | --ctrack-timeouts=S: |
| - | --hostcase: менять регистр заголовка " | + | --ctrack-disable=[0|1] |
| - | --hostnospace: убрать пробел после " | + | --ipcache-lifetime=< |
| - | --hostspell=HoST: точное написание заголовка Host (можно " | + | --ipcache-hostname=[0|1] |
| - | --domcase: домен после Host сделать таким: TeSt.cOm | + | --wsize=< |
| - | --dpi-desync=[< | + | --wssize=< |
| - | --dpi-desync-fwmark=< | + | --wssize-cutoff=[n|d|s]N |
| - | --dpi-desync-ttl=< | + | --wssize-forced-cutoff=0|1 ; 1(default)=автоматически отключать wssize в случае обнаружения известного протокола |
| - | --dpi-desync-ttl6=< | + | --synack-split=[syn|synack|acksyn] |
| - | --dpi-desync-autottl=[< | + | --orig-ttl=< |
| - | --dpi-desync-autottl6=[< | + | --orig-ttl6=< |
| - | --dpi-desync-fooling=< | + | --orig-autottl=[< |
| - | --dpi-desync-repeats=< | + | --orig-autottl6=[< |
| - | --dpi-desync-skip-nosni=0|1: 1 (по умолчанию) = не применять dpi desync для запросов без hostname в SNI, в частности для ESNI | + | --orig-tcp-flags-set=< |
| - | --dpi-desync-split-pos=< | + | --orig-tcp-flags-unset=< |
| - | --dpi-desync-split-http-req=method|host: разбивка HTTP request | + | --orig-mod-start=[n|d|s]N |
| - | --dpi-desync-split-tls=sni|sniext: разбивка TLS client hello на указанном логическом месте | + | --orig-mod-cutoff=[n|d|s]N |
| - | --dpi-desync-split-seqovl=<int>: использовать sequence overlap перед первым | + | --dup=< |
| - | --dpi-desync-split-seqovl-pattern=<filename>|0xHEX: чем заполнять фейковую часть overlap | + | --dup-replace=[0|1] |
| - | --dpi-desync-badseq-increment=< | + | --dup-ttl=< |
| - | --dpi-desync-badack-increment=< | + | --dup-ttl6=< |
| - | --dpi-desync-any-protocol=0|1: 0 (по умолчанию) = работать только по HTTP request и TLS client hello, | + | --dup-autottl=[< |
| - | --dpi-desync-fake-http=< | + | --dup-autottl6=[< |
| - | --dpi-desync-fake-tls=< | + | --dup-tcp-flags-set=< |
| - | --dpi-desync-fake-unknown=< | + | --dup-tcp-flags-unset=< |
| - | --dpi-desync-fake-syndata=< | + | --dup-fooling=< |
| - | --dpi-desync-fake-quic=< | + | --dup-ts-increment=< |
| - | --dpi-desync-fake-dht=< | + | --dup-badseq-increment=< |
| - | --dpi-desync-fake-unknown-udp=< | + | --dup-badack-increment=< |
| - | --dpi-desync-udplen-increment=< | + | --dup-ip-id=same|zero|seq|rnd |
| - | --dpi-desync-udplen-pattern=< | + | --dup-start=[n|d|s]N |
| - | --dpi-desync-start=[n|d|s]N: применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру больше или равно N | + | --dup-cutoff=[n|d|s]N |
| - | --dpi-desync-cutoff=[n|d|s]N: применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру меньше N | + | --hostcase |
| - | --hostlist=< | + | --hostnospace |
| - | --hostlist-exclude=< | + | --methodeol |
| - | --hostlist-auto=< | + | --hostspell=HoST |
| - | --hostlist-auto-fail-threshold=< | + | --domcase |
| - | --hostlist-auto-fail-time=< | + | --ip-id=seq|seqgroup|rnd|zero |
| - | --hostlist-auto-retrans-threshold=< | + | --dpi-desync=[< |
| - | --hostlist-auto-debug=< | + | --dpi-desync-fwmark=< |
| - | --new: начало новой стратегии | + | --dpi-desync-ttl=< |
| - | --filter-l3=ipv4|ipv6: фильтр версии ip для текущей стратегии | + | --dpi-desync-ttl6=< |
| - | --filter-tcp=[~]port1[-port2]: фильтр портов tcp для текущей стратегии. ~ означает инверсию. установка фильтра tcp и неустановка фильтра udp запрещает udp. | + | --dpi-desync-autottl=[< |
| - | --filter-udp=[~]port1[-port2]: фильтр портов udp для текущей стратегии. ~ означает инверсию. установка фильтра udp и неустановка фильтра tcp запрещает | + | --dpi-desync-autottl6=[< |
| + | --dpi-desync-tcp-flags-set=< | ||
| + | --dpi-desync-tcp-flags-unset=< | ||
| + | --dpi-desync-fooling=< | ||
| + | --dpi-desync-repeats=< | ||
| + | --dpi-desync-skip-nosni=0|1 | ||
| + | --dpi-desync-split-pos=N|-N|marker+N|marker-N | ||
| + | --dpi-desync-split-seqovl=N|-N|marker+N|marker-N | ||
| + | --dpi-desync-split-seqovl-pattern=[+ofs]@< | ||
| + | --dpi-desync-fakedsplit-pattern=[+ofs]@<filename>|0xHEX | ||
| + | --dpi-desync-fakedsplit-mod=mod[, | ||
| + | --dpi-desync-hostfakesplit-midhost=marker+N|marker-N | ||
| + | --dpi-desync-hostfakesplit-mod=mod[, | ||
| + | --dpi-desync-ts-increment=< | ||
| + | --dpi-desync-badseq-increment=< | ||
| + | --dpi-desync-badack-increment=< | ||
| + | --dpi-desync-any-protocol=0|1 | ||
| + | --dpi-desync-fake-tcp-mod=mod[, | ||
| + | --dpi-desync-fake-http=[+ofs]@< | ||
| + | --dpi-desync-fake-tls=[+ofs]@< | ||
| + | --dpi-desync-fake-tls-mod=mod[, | ||
| + | --dpi-desync-fake-unknown=[+ofs]@< | ||
| + | --dpi-desync-fake-syndata=[+ofs]@< | ||
| + | --dpi-desync-fake-quic=[+ofs]@< | ||
| + | --dpi-desync-fake-wireguard=[+ofs]@< | ||
| + | --dpi-desync-fake-dht=[+ofs]@< | ||
| + | --dpi-desync-fake-discord=[+ofs]@< | ||
| + | --dpi-desync-fake-stun=[+ofs]@< | ||
| + | --dpi-desync-fake-unknown-udp=[+ofs]@< | ||
| + | --dpi-desync-udplen-increment=< | ||
| + | --dpi-desync-udplen-pattern=[+ofs]@< | ||
| + | --dpi-desync-start=[n|d|s]N | ||
| + | --dpi-desync-cutoff=[n|d|s]N | ||
| + | --hostlist=< | ||
| + | ; в файле должен быть хост на каждой строке. | ||
| + | ; список читается при | ||
| + | ; при изменении | ||
| + | ; список может | ||
| + | ; списков может быть множество. пустой общий лист = его отсутствие | ||
| + | ; хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello. | ||
| + | --hostlist-domains=< | ||
| + | --hostlist-exclude=< | ||
| + | --hostlist-exclude-domains=< | ||
| + | --hostlist-auto=< | ||
| + | --hostlist-auto-fail-threshold=< | ||
| + | --hostlist-auto-fail-time=< | ||
| + | --hostlist-auto-retrans-threshold=< | ||
| + | --hostlist-auto-debug=< | ||
| + | --new ; начало новой стратегии | ||
| + | --skip | ||
| + | --filter-l3=ipv4|ipv6 | ||
| + | --filter-tcp=[~]port1[-port2]|* ; | ||
| + | --filter-udp=[~]port1[-port2]|* ; | ||
| + | --filter-l7=< | ||
| + | --filter-ssid=ssid1[, | ||
| + | --ipset=< | ||
| + | --ipset-ip=< | ||
| + | --ipset-exclude=< | ||
| + | --ipset-exclude-ip=< | ||
| </ | </ | ||
| + | |||
| + | ^ Параметр / Комбинация | ||
| + | | --dpi-desync=fake, | ||
| + | | --dpi-desync-split-pos=10 | ||
| + | | --dpi-desync-ttl=1 / --dpi-desync-ttl=0 | ||
| + | | --dpi-desync-repeats=6 | ||
| + | | Отсутствие --dpi-desync-fooling | ||
| + | | | ||
| ===== Фильтры ===== | ===== Фильтры ===== | ||
| Строка 426: | Строка 305: | ||
| nano / | nano / | ||
| < | < | ||
| - | googlevideo.com | + | 10tv.app |
| + | 1e100.net | ||
| + | 7tv.app | ||
| + | 7tv.gg | ||
| + | 7tv.io | ||
| + | api.7tv.app | ||
| + | api.ffzap.com | ||
| + | api.frankerfacez.com | ||
| + | apis.google.com | ||
| + | betterttv.net | ||
| + | cdn.7tv.app | ||
| + | cdn.7tv.gg | ||
| + | cdn.betterttv.net | ||
| + | cdn.frankerfacez.com | ||
| + | cdn2.frankerfacez.com | ||
| + | doubleclick.net | ||
| + | emotes.7tv.app | ||
| + | events.7tv.app | ||
| + | frankerfacez.com | ||
| ggpht.com | ggpht.com | ||
| - | ytimg.com | + | googleapis.com |
| + | googleusercontent.com | ||
| + | googlevideo.com | ||
| + | gstatic.com | ||
| + | gvt1.com | ||
| + | jnn-pa.googleapis.com | ||
| l.google.com | l.google.com | ||
| - | youtube.com | + | m.youtube.com |
| - | www.youtube.com | + | nhacmp3youtube.com |
| play.google.com | play.google.com | ||
| - | youtubei.googleapis.com | + | static.7tv.app |
| + | video.google.com | ||
| + | wide-youtube.l.google.com | ||
| + | www.youtube.com | ||
| youtu.be | youtu.be | ||
| - | nhacmp3youtube.com | + | youtube.be |
| - | googleusercontent.com | + | youtube.ca |
| + | youtube.co | ||
| + | youtube.co.in | ||
| + | youtube.co.uk | ||
| + | youtube.com | ||
| + | youtube.com.au | ||
| + | youtube.com.br | ||
| + | youtube.com.mx | ||
| + | youtube.com.tr | ||
| + | youtube.com.ua | ||
| + | youtube.de | ||
| + | youtube.es | ||
| + | youtube.fr | ||
| + | youtube.googleapis.com | ||
| + | youtube.jp | ||
| + | youtube.nl | ||
| + | youtube.pl | ||
| + | youtube.pt | ||
| + | youtube.ru | ||
| + | youtubeapi.com | ||
| + | youtubechildren.com | ||
| + | youtubecommunity.com | ||
| + | youtubecreators.com | ||
| + | youtubeeducation.com | ||
| + | youtubeembeddedplayer.googleapis.com | ||
| + | youtubei.googleapis.com | ||
| + | youtubekids.com | ||
| + | youtube-nocookie.com | ||
| + | youtube-studio.com | ||
| + | youtube-ui.l.google.com | ||
| + | yt.be | ||
| + | yt-video-upload.l.google.com | ||
| + | yt3.ggpht.com | ||
| + | ytimg.com | ||
| + | i.ytimg.com | ||
| + | static.doubleclick.net | ||
| googleads.g.doubleclick.net | googleads.g.doubleclick.net | ||
| </ | </ | ||
| Строка 453: | Строка 393: | ||
| ==== Скрипты ==== | ==== Скрипты ==== | ||
| - | |||
| - | <code bash> | ||
| - | $ ls -la / | ||
| - | $ cp -a / | ||
| - | </ | ||
| * [[: | * [[: | ||
| Строка 493: | Строка 428: | ||
| <code bash> | <code bash> | ||
| $ chmod +x / | $ chmod +x / | ||
| + | </ | ||
| + | |||
| + | / | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | |||
| + | IPSET_DIR=" | ||
| + | IPSET_DIR=" | ||
| + | |||
| + | . " | ||
| + | |||
| + | TMPLIST=" | ||
| + | |||
| + | URL=" | ||
| + | |||
| + | dl() | ||
| + | { | ||
| + | # $1 - url | ||
| + | # $2 - file | ||
| + | # $3 - minsize | ||
| + | # $4 - maxsize | ||
| + | curl -L -H " | ||
| + | { | ||
| + | echo list download failed : $1 | ||
| + | exit 2 | ||
| + | } | ||
| + | dlsize=$(LC_ALL=C LANG=C wc -c " | ||
| + | if test $dlsize -lt $3; then | ||
| + | echo list is too small : $dlsize bytes. can be bad. | ||
| + | exit 2 | ||
| + | fi | ||
| + | zzcopy " | ||
| + | rm -f " | ||
| + | } | ||
| + | |||
| + | # useful in case ipban set is used in custom scripts | ||
| + | FAIL= | ||
| + | getipban || FAIL=1 | ||
| + | " | ||
| + | [ -n " | ||
| + | |||
| + | dl " | ||
| + | |||
| + | hup_zapret_daemons | ||
| + | |||
| + | exit 0 | ||
| </ | </ | ||
| Строка 522: | Строка 503: | ||
| </ | </ | ||
| - | chmod +x / | + | <code bash> |
| + | $ chmod +x / | ||
| + | </ | ||