Если не помогло

Zapret на Linux: чем nfqws отличается от tpws

На Linux Zapret живёт в своём естественном виде: без bat-файлов и готовых комплектов, зато с полным набором возможностей. Здесь важно с самого начала понимать разницу между двумя компонентами — nfqws работает с пакетами, tpws с потоком, и выбор между ними определяет всю дальнейшую настройку.

Два компонента и в чём разница

nfqws получает пакеты из очереди NFQUEUE и правит их на уровне отдельных пакетов: дробит, подставляет поддельные, меняет порядок. Это основной инструмент, именно он используется в большинстве сценариев, и именно его Windows-версия называется winws в сборках под Windows.

tpws работает иначе: это прозрачный прокси, который принимает соединение и правит поток данных на уровне TCP. Он не требует NFQUEUE и пригождается там, где очередь пакетов недоступна или неудобна.

Практически выбор выглядит так. Если ядро и правила брандмауэра позволяют завернуть трафик в NFQUEUE, берут nfqws. Если нет, остаётся tpws с его ограничениями. В комплекте проекта есть скрипты, которые помогают собрать нужную конфигурацию, но общий принцип полезно понимать заранее.

Zapret 2

первоисточник

github.com/bol-van/zapret2

Действующая версия исходного проекта: стратегии вынесены в Lua-скрипты

Открыть на GitHub

Zapret (первая версия)

первоисточник

github.com/bol-van/zapret

Исходный проект: nfqws, tpws, winws. Режим EOL, только исправления ошибок

Открыть на GitHub

Первая версия и вторая

Исходный проект bol-van/zapret переведён в режим EOL: новых возможностей не будет, только исправления ошибок. Автор указывает на bol-van/zapret2 как на действующую версию.

Главное отличие второй версии в архитектуре: приёмы обхода вынесены из кода на C в Lua-скрипты. Раньше добавление новой стратегии означало правку исходников и пересборку, теперь стратегию пишет любой, кто разбирается в сетевых протоколах. Компонент называется nfqws2, для Windows есть winws2.

Для домашней машины это скорее вопрос на будущее: если у вас уже работает первая версия, переезжать срочно незачем. Если настраиваете с нуля и готовы разбираться — логичнее начинать сразу со второй.

Установка

Путь, по которому это делается на десктопном Linux

  1. 1

    Посмотрите, есть ли пакет в вашем дистрибутиве

    Zapret упакован в ряде дистрибутивов и репозиториев сообщества, включая AUR в Arch. Пакет ставится штатным менеджером и приносит с собой юнит для systemd, что избавляет от ручной сборки.

  2. 2

    Если пакета нет, берите исходники из репозитория

    Скачивать нужно из bol-van/zapret2 или bol-van/zapret, не с зеркал и не из архивов на файлообменниках. В комплекте есть установочный скрипт, который проводит через настройку.

  3. 3

    Определитесь с компонентом

    nfqws требует поддержки NFQUEUE в ядре и правил брандмауэра, направляющих трафик в очередь. tpws обходится без этого, но работает на уровне потока.

  4. 4

    Настройте стратегию под свои сервисы

    Параметры описаны в документации проекта, в разделе про nfqws. Принцип тот же, что на Windows: рабочая комбинация подбирается перебором, потому что фильтры у провайдеров разные.

  5. 5

    Оформите автозапуск

    При установке из пакета обычно приезжает готовый юнит systemd. При ручной установке юнит пишется руками, и это правильнее, чем запускать команду из автозагрузки рабочего стола.

Если нужен готовый комплект

На Linux есть порт популярной Windows-сборки: репозиторий Sergeydigl3/zapret-discord-youtube-linux переносит подход Flowseal на другую систему. Это разумный вариант для тех, кому нужен работающий Дискорд и Ютуб, а не изучение параметров nfqws.

Правила проверки источника здесь те же, что и везде: смотреть на владельца репозитория, историю изменений и живой раздел обсуждений. Разбор проверки — на странице где скачать Zapret.

Частые вопросы

Zapret на Linux сложнее, чем на Windows

Сложнее в начале и удобнее потом. На Windows вы получаете готовый комплект bat-файлов, но перебираете чужие стратегии вслепую. На Linux нужно разобраться с компонентами и правилами брандмауэра, зато потом обход работает службой, обновляется пакетным менеджером и не требует внимания месяцами.

Что ставить, nfqws или tpws

По умолчанию nfqws: он даёт больше возможностей и именно вокруг него собраны все актуальные стратегии. tpws берут, когда NFQUEUE недоступна: например, в урезанном ядре или в контейнере без нужных прав.

Работает ли Zapret в контейнере

Работает, но с оговорками: контейнеру нужны права на работу с сетевым стеком хоста, иначе завернуть трафик в очередь не получится. Схема со шлюзом в отдельном контейнере встречается, но это уже администрирование, а не домашняя установка.

Нужен ли Zapret, если стоит VPN

Одновременно — нет, и держать их вместе вредно: оба вмешиваются в один трафик и мешают друг другу. Обычно выбирают что-то одно: обход экономит скорость, VPN закрывает случаи, где нужна смена адреса.

Как проверить, что обход работает

Не по факту запущенного процесса, а по результату: откройте заблокированный сервис. Для Ютуба это ролик с перемоткой, а не главная страница. Дополнительно помогает journalctl для юнита: там видно, стартовал ли процесс и не падает ли он сразу после запуска.

Дальше по теме