Обход блокировок в России через АнтиЗапрет на прошивке Keenetic

Если у вас прошивка версии 3.8 или новее

  1. Должны быть установлены компоненты «Фильтрация контента и блокировка рекламы при помощи облачных сервисов» и «Прокси-сервер DNS-over-HTTPS». Если у вас оригинальный роутер Keenetic, то установите эти компоненты, если не оригинальный, то все компоненты уже установлены.

  2. В разделе «Интернет-фильтр» на вкладке «Настройка DNS» в «Системный» профиль добавить серверы

Тип сервера DNS: DNS-over-HTTPS
URL сервера DNS: https://dns.cloudflare.com/dns-query

Тип сервера DNS: DNS-over-HTTPS
URL сервера DNS: https://dns.google/dns-query

Вы можете использовать в «Системном» профиле любые публичные DNS, главное, чтобы соблюдались условия:

  • это должны быть серверы DNS-over-HTTPS
  • эти адреса не должны никоим образом пересекаться с адресами в профиле «AntiZapret» (об этом далее)
  1. В разделе «Интернет-фильтр» на вкладке «Настройка DNS» создать профиль «AntiZapret» и добавить в него публичные DNS-серверы 77.88.8.8 и 9.9.9.10 (это адреса серверов Яндекса и Quad9). Нажать «Сохранить», чтобы рядом с именем профилей пропала звёздочка. Должно получиться следующее:
  • в «Системном профиле» адреса, автоматически полученные от провайдера, плюс адреса DNS-over-HTTPS, добавленные вами на прошлом шаге
  • в профиле «AntiZapret» адреса 77.88.8.8 и 9.9.9.10

Вы можете использовать в профиле «AntiZapret» любые публичные DNS (вместо 77.88.8.8 и 9.9.9.10, как в примере), главное, чтобы соблюдались условия:
Вы можете использовать в профиле «AntiZapret» любые публичные DNS (вместо 77.88.8.8 и 9.9.9.10, как в примере), главное, чтобы соблюдались условия:

  • это должны быть классические IPv4 DNS-серверы, никаких IPv6/DoH/DoT
  • эти адреса не должны никоим образом пересекаться с адресами в «Системном профиле» (то есть, быть полностью иными: если у вас в системном профиле используется dns.google, то в профиле AntiZapret не должно быть ничего, связанного с Google, типа 8.8.8.8)
  • желательно, чтобы это не были серверы Google, иначе при развёртывании OPKG (Entware) произойдёт ошибка

Внимание: если у вас прошивка 3.9 и новее желательно отключить “Транзит запросов” для только что созданного профиля Antizapret.

  1. В разделе «Интернет-фильтры» на вкладке «Контентный фильтр» выбрать режим фильтрации «Публичные DNS-резолверы и настраиваемые профили». Ниже в разделе «Профили контентной фильтрации по умолчанию» для всех сетей (домашняя, гостевая) выбрать из выпадающего списка профиль «AntiZapret» (он в самом низу выпадающего списка).

  2. В разделе «Другие подключения» создать OpenVPN-подключение с именем «AntiZapret». Включить настройку «Получать маршруты от удаленной стороны». Скачать файл конфигурации (зеркало на случай, если сайт заблокировали; ещё зеркало), открыть его блокнотом и вставить содержимое в поле «Конфигурация OpenVPN». Кроме того, туда же в самое начало или самый конец добавить следующие строки

pull-filter ignore block-outside-dns
route 77.88.8.8
route 9.9.9.10

Важно: эти адреса в конфиге OpenVPN должны полностью совпадать с теми, которые вы указали на шаге 2. Если вы на шаге 2 использовали не 77.88.8.8 и 9.9.9.10, а, скажем, 1.1.1.1, то и тут у вас будет route 1.1.1.1

Внимание: если у вас прошивка версии 3.8, нужно удалить строку setenv opt data-ciphers AES-128-GCM:AES-256-GCM:AES-128-CBC. На более свежих прошивках (3.9 и новее) это УДАЛЯТЬ НЕ НУЖНО.

  1. Включить это только что созданное OpenVPN-подключение.

Если у вас прошивке версии 3.7 или старее

  1. В свойствах подключения к провайдеру включить настройку «Игнорировать DNS», а также вписать в качестве «DNS 1» и «DNS 2» адреса каких-нибудь публичных DNS-серверов, например, 77.88.8.8 и 9.9.9.10. Если у вас подключение к провайдеру по протоколу PPPoE, то это всё надо делать в настройках PPPoE. Если у вас модем, то всё это делать в настройках самого модема (вам виднее, где там у модема настройки, у модемов обычно свой веб-интерфейс).

Внимание: Если подключение к провайдеру у вас осуществляется в виде VPN-подключения (LT2P/PPTP) к какому-то непубличному серверу (например, tp.internet.beeline.ru или l2tp.freedom), адрес которого не резолвится через публичные DNS, то вместо домена (в примере выше tp.internet.beeline.ru) указывайте его IP. Иначе, подключение к провайдеру работать не будет, поскольку включена настройка «Игнорировать DNS».

Вы можете использовать любые публичные DNS (вместо 77.88.8.8 и 9.9.9.10, как в примере), главное, чтобы соблюдались условия:

  • это должны быть классические IPv4 DNS-серверы, никаких IPv6/DoH/DoT
  • желательно, чтобы это не были серверы Google, иначе при развёртывании OPKG (Entware) произойдёт ошибка
  1. В разделе «Другие подключения» создать OpenVPN-подключение с именем «AntiZapret». Включить настройку «Получать маршруты от удаленной стороны». Скачать файл конфигурации (зеркало на случай, если сайт заблокировали; ещё зеркало), открыть его блокнотом и вставить содержимое в поле «Конфигурация OpenVPN». Кроме того, туда же в самое начало или самый конец добавить следующие строки
pull-filter ignore block-outside-dns
route 77.88.8.8
route 9.9.9.10

А также удалить строку setenv opt data-ciphers AES-128-GCM:AES-256-GCM:AES-128-CBC

Важно: эти адреса в конфиге OpenVPN должны полностью совпадать с теми, которые вы указали на шаге 1. Если вы на шаге 1 использовали не 77.88.8.8 и 9.9.9.10, а, скажем, 1.1.1.1, то и тут у вас будет route 1.1.1.1

  1. Включить это только что созданное OpenVPN-подключение.

К слову, первый вариант (который с DoH) успешно продолжает работать через провайдера Дом.ру даже со старым доменом (antizapret.prostovpn.org)

Всё потому, что провайдер осуществил блокировку соединения c VPN-сервером самым примитивным способом:

  • заворачивает весь трафик по 53 порту на свой DNS, чтобы пользователи не могли использовать сторонние DNS
  • вместо реального IP-адреса домена antizapret.prostovpn.org провайдерский DNS-сервер выдаёт адрес заглушки, чтобы VPN-туннель не поднялся

Поскольку в “Системном” профиле (профиль, используемый прошивкой для своих внутренних нужд) у меня предусмотрительно используется DoH, то этот трюк провайдера не срабатывает и туннель успешно поднимается.

Спасибо, помогло

Работает ли у вас AZ совместно с удаленным доступом через KeenDNS?
У меня при включении AZ роутер становится недоступным.

У меня нет оригинальных Keenetic-ов с актуальной версией прошивки. Только пиратки, на которых KeenDNS не работает, и старый оригинал с прошивкой 2.16, до которого я в ближайшие недели вряд ли доберусь.

На 2.16, кстати, всё настраивается, как и на 3.6, за тем исключением, что опция “использовать DNS провайдера” в веб-интерфейсе отсутствует и её нужно выключать через CLI командой no ip dhcp client name-servers (на интерфейсе WAN).

Диагностика в случае возникновения проблем

  1. Добавьте в конфиг строку verb 5
    Это заставит OpenVPN выдавать в системный журнал более подробные сведения о происходящем. После этого смотрите системный журнал в разделе настроек «Диагностика».

  2. Возможно, провайдер заблокировал доступ к домену АнтиЗапрета. Особенно актуально для прошивок 3.6 и старее, где нет защиты от блокировки доступа к серверу. Скачайте актуальный файл конфигурации и убедитесь, что адрес в строке remote ... совпадает с тем, который указан в конфиге на роутере.

  3. Пройдите стандартный тест («standard test») на сайте dnsleaktest.com
    В результатах теста должен быть лишь ОДИН сервер — сервер АнтиЗапрета. Если вы видите какие-то другие серверы, возможно, на устройстве, на котором вы проходите тест, уже настроен какой-то VPN, установлено расширение для обхода блокировок в браузере, указаны вручную адреса сторонних DNS-серверов в настройках подключения к сети, либо включён «безопасный DNS» в настройках браузера или настройках операционной системы. Всё это необходимо отключить.

  4. Проверьте, в какие IP-адреса преобразуются имена заблокированных доменов.
    Самый простой способ: выполнить в консоли на клиентском устройстве (не на самом роутере) пинг заблокированного ресурса: ping rutracker.org
    При правильных настройках пинг пойдёт до адреса, начинающегося с 10., например
    Обмен пакетами с rutracker.org [10.224.0.209]

Подскажите пожалуйста, если я настрою свой Keenetic по этой инструкции, будут проксироваться все сайты или только заблокированные РК?

Только.

Понятно.Спасибо.Настроил по инструкции всё работает.

Подскажите, пожалуйста, возможно ли настроить Keenetic на одновременную работу DNS-фильтра AntiZapret (настроен по инструкции) и DNS-серверов Comss.one для работы Gemini (AI от Google)?
По отдельности два настроенных по инструкции DNS-фильтра работают:

  • включаю AntiZapret с DNS-серверами 77.88.8.8 и 9.9.9.10 - разблокируются сайты;
  • влючаю Системный с DoH и DoT от Comss.one DNS - работает Gemini (AI от Google).

Реально работает у меня на Дом.Ру. Спасибо!
Keenetic Viva, прошивка 4.1.3

Если поставить вопрос иначе:
Можно ли настроить роутер таким образом, чтобы web-страница gemini.google.com фильтровалась DNS-фильтром Системный, в то время как для всего сегмента влючен DNS-фильтр AntiZapret?

“Системный” используется для запросов, инициированных роутером. А все запросы, инициированные клиентами, резолвятся через то, что указано в профиле AntiZapret.

Если вы НЕ используете на роутере другие VPN и НЕ подключены к провайдеру по PPPoE, то можно попробовать изменить сетап.

  1. Удалить профиль DNS AntiZapret
  2. Добавить в Системный профиль DNS адреса, которые были в профиле AntiZapret
  3. В Системном профиле отключить провайдерские DNS (которые на желтом фоне, рядом с ними есть переключатель для отключения)
  4. В Системный профиль добавить DoH комсы для конкретного домена (в моём случае это bing.com для Microsoft Copilot, в вашем будет gemini.google.com или вообще google.com, а может быть понадобятся ещё какие-то адреса). Этот DoH комсы будет использоваться, чтобы резолвить именно указанный домен, поэтому он не нарушает работу АнтиЗапрета.

  1. Аналогично добавить в системный профиль ещё раз DoH комcы, но уже для домена antizapret.prostovpn.org или v.31337.lol (смотря какой у вас сервер указан в конфиге OpenVPN, старый antizapret.prostovpn.org или новый v.31337.lol). Это помогает обходить блокировку АнтиЗапрета со стороны провайдеров.

  2. В разделе “Контентный фильтр” либо выключить режим фильтрации, либо сегментам назначить Системный. Если вы выключаете режим фильтрации, то сами следите, чтобы на клиентах не были в свойствах подключения к сети указаны сторонние DNS.

Результат: при заходе на Bing AI - Suchen мне доступен Copilot. Если бы для этого домена не использовался DNS комсы, я бы получил сообщение, что Copilot мне не полагается. При этом, все остальные домены резолвятся через АнтиЗапрет, поэтому работает обход блокировок.

Было бы куда проще, если бы KeeneticOS позволяла добавлять DoH/DoT для конкретного домена не только в системный профиль. Но по какой-то причине это доступно лишь для системного.

Благодарю.
Теперь работает AntiZapret и Gemini одновременно.
PS: Copilot заработал после добавления домена copilot.microsoft.com, т.е. с доменом bing.com Copilot не захотел работать.