mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-11 17:29:16 +05:00
126 lines
12 KiB
Plaintext
126 lines
12 KiB
Plaintext
Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt.
|
||
|
||
Предупреждение : не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как запустить", ...
|
||
То есть все , что касается базовых навыков обращения с ОС linux. Эти вопросы буду закрывать сразу.
|
||
Если у вас подобные вопросы возникают, рекомендую не использовать данный софт или искать помощь где-то в другом месте.
|
||
|
||
Обход DPI является хакерской методикой. Под этим словом понимается метод, которому сопротивляется окружающая среда,
|
||
которому автоматически не гарантирована работоспособность в любых условиях и на любых ресурсах,
|
||
требуется настройка под специфические условия у вашего провайдера. Условия могут меняться со временем,
|
||
и методика может начинать или переставать работать, может потребоваться повторный анализ ситуации.
|
||
Могут обнаруживаться отдельные ресурсы, которые заблокированы иначе, и которые не работают или перестали работать.
|
||
Могут и сломаться отдельные незаблокированные ресурсы.
|
||
Поэтому очень желательно иметь знания в области сетей, чтобы иметь возможность проанализировать техническую ситуацию.
|
||
Не будет лишним иметь обходные каналы проксирования трафика на случай, если обход DPI не помогает.
|
||
|
||
Будем считать, что у вас есть система на базе традиционного linux или openwrt.
|
||
Если у вас традиционный linux - задача обойти блокировки только на этой системе, если openwrt - обойти блокировки
|
||
для подключенных устройств. Это наиболее распространенный случай.
|
||
|
||
1) Чтобы процедура установки сработала в штатном режиме на openwrt, нужно раcсчитывать на свободное место около 1-2 Mb
|
||
для установки самого zapret и необходимых дополнительных пакетов.
|
||
Если места мало и нет возможности его увеличить за счет extroot, возможно придется отказаться от варианта
|
||
простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска, либо попробовать засунуть требуемые
|
||
zapret дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер.
|
||
См docs/manual_setup.txt , docs/readme.txt .
|
||
|
||
2) Скачайте zip архив проекта с github в /tmp, распакуйте его там,
|
||
либо клонируйте проект через : git clone --depth 1 https://github.com/bol-van/zapret
|
||
|
||
3) Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и сам zapret.
|
||
Гарантированно уберет zapret скрипт uninstall_easy.sh.
|
||
|
||
4) Если вы работаете в виртуальной машине, необходимо использовать соединение с сетью в режиме bridge. nat не подходит
|
||
|
||
5) Запустите install_bin.sh (1 раз для настройки бинариков правильной архитектуры)
|
||
|
||
6) На чистой openwrt потребуются дополнительные пакеты.
|
||
opkg update
|
||
opkg install curl
|
||
Требуемые пакеты для iptables :
|
||
opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt iptables-mod-conntrack-extra
|
||
Требуемые пакеты для iptables ipv6 :
|
||
opkg install ip6tables-mod-nat ip6tables-extra
|
||
Требуемые пакеты для nftables (с версии 22.03 openwrt перешел на nftables по умолчанию) :
|
||
opkg install nftables kmod-nft-nat kmod-nft-queue
|
||
|
||
Другой вариант : запустите install_easy.sh, после установки pre-реквизитов откажитесь через ctrl+c.
|
||
Это надо сделать 1 раз. Без дополнительных пакетов blockcheck.sh не сработает. Сам он ничего
|
||
не будет устанавливать.
|
||
|
||
7) Запустите blockcheck.sh. blockcheck позволяет выявить рабочую стратегию обхода блокировок
|
||
По результатам blockcheck нужно понять какой вариант будете использовать : nfqws или tpws
|
||
И запомнить найденные стратегии.
|
||
|
||
8) blockcheck.sh в начале проверяет DNS. Если выводятся сообщения о подмене адресов, то
|
||
первым делом нужно решить эту проблему, иначе ничего не будет работать.
|
||
Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов
|
||
от провайдера на публичные (1.1.1.1, 8.8.8.8), либо в случае перехвата провайдером обращений
|
||
к сторонним серверам - через специальные средства шифрования DNS запросов, такие как dnscrypt, DoT, DoH.
|
||
|
||
Еще один эффективный вариант - использовать ресолвер от yandex 77.88.8.88 на нестандартном порту 1253.
|
||
Многие провайдеры не анализируют обращения к DNS на нестандартных портах.
|
||
|
||
Проверить работает ли этот вариант можно так :
|
||
|
||
dig -p 53 @77.88.8.88 rutracker.org
|
||
dig -p 1253 @77.88.8.88 rutracker.org
|
||
|
||
Если DNS действительно подменяется, и ответ на эти 2 команды разный, значит метод вероятно работает.
|
||
|
||
В openwrt DNS на нестандартном порту можно прописать в /etc/config/dhcp таким способом :
|
||
|
||
config dnsmasq
|
||
.............
|
||
list server '77.88.8.88#1253'
|
||
|
||
Если настройки IP и DNS получаются автоматически от провайдера, в /etc/config/network
|
||
найдите секцию интерфейса 'wan' и сделайте так :
|
||
|
||
config interface 'wan'
|
||
.............
|
||
option peerdns '0'
|
||
|
||
/etc/init.d/network restart
|
||
/etc/init.d/dnsmasq restart
|
||
|
||
Если это не подходит, можно перенаправлять обращения на udp и tcp порты 53 вашего DNS сервера на 77.88.8.88:1253 средствами
|
||
iptables/nftables. В /etc/resolv.conf нельзя прописать DNS на нестандартном порту.
|
||
|
||
9) Запустите install_easy.sh.
|
||
Выберите nfqws или tpws, затем согласитесь на редактирование параметров.
|
||
Откроется редактор, куда впишите найденные стратегии.
|
||
Для nfqws отдельно настраиваются стратегии на http и https для ipv4 и ipv6.
|
||
То есть по максимуму 4 разных варианта.
|
||
NFQWS_OPT_DESYNC - это общая установка, которая применяется, если какой-либо уточняющий параметр не задан
|
||
NFQWS_OPT_DESYNC_HTTP и NFQWS_OPT_DESYNC_HTTPS заменяют стратегию для http и https.
|
||
Если у вас включен ipv6, то они так же будут применены и к ipv6. Если для ipv6 нужна другая стратегия,
|
||
то можно задать уточняющие параметры NFQWS_OPT_DESYNC_HTTP6 и NFQWS_OPT_DESYNC_HTTPS6.
|
||
Если стратегии для ipv4 и ipv6 отличаются лишь ttl, то в целях экономии ресурсов роутера (меньше процессов nfqws)
|
||
следует отказаться от использования специфических для ipv6 установок. Вместо них использовать параметры
|
||
--dpi-desync-ttl и --dpi-desync-ttl6 в общих установках. Таким способом можно заставить один процесс nfqws
|
||
обрабатывать трафик на ipv4 и на ipv6 с разным ttl.
|
||
|
||
Важным вопросом является вопрос о поддержке http keep alive.
|
||
Отвечайте N. Если вдруг на http сайтах будут хаотические сбои типа то загружается, то заглушка или сброс,
|
||
попробуйте включить поддержку keep alive.
|
||
|
||
Если это не помогает, или хаотичное поведение наблюдается и на https, то еще раз прогоните blockcheck
|
||
с установленным числом попыток проверки не менее 5. Возможно, ваш провайдер использует балансировку нагрузки,
|
||
где на разных путях установлен разный DPI.
|
||
|
||
Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале.
|
||
Вероятно, все остальные домены блокированы подобным образом, но не факт.
|
||
В большинстве случаев можно обьединить несколько стратегий в одну универсальную, но для этого необходимо понимать
|
||
"что там за буковки". Если вы в сетях слабо разбираетесь, это не для вас. В противном случае читайте readme.txt.
|
||
zapret не может пробить блокировку по IP адресу
|
||
Для проверки нескольких доменов вводите их через пробел.
|
||
|
||
10) На все остальные вопросы install_easy.sh отвечайте согласно выводимой аннонтации.
|
||
|
||
11) Если ломаются отдельные незаблокированные ресурсы, следует вносить их в исключения, либо пользоваться ограничивающим
|
||
ipset или хост листом. Читайте основной толмуд readme.txt ради подробностей.
|
||
|
||
Это минимальная инструкция, чтобы соориентироваться с чего начать.
|
||
Подробности и полное техническое описание расписаны в readme.txt
|