Маршрутизация ВПН-трафика по чёрным спискам (Часть 2)

Маршрутизация ВПН-трафика по чёрным спискам (Часть 2)

Гоша Котён-кин

Редакция 1.5 03.03.26
текст распространяется под лицензией Creative Commons (CC BY-SA).

Продолжу обзор ВПН-клиентов и рекомендации по их настройке в режиме маршрутизации трафика по "Чёрным спискам" (Часть 1) для российских пользователей.

Оглавление части 2:

Happ (Android)

V2BOX (iOS/MacOS)

Утечки DNS, что это и как не допустить


Happ-Proxy

(Android 5.0+)

Однокнопочник, умеющий в маршрутизацию и не только (видимо форк V2rayNG). Есть версия и для iOS, но с гео-файлами от runetfreedom и правилами там какой-то глюк, который разрабы устранять не собираются («и так хорошо» говорят). Для десктопов версии в процессе разработки.

Главный экран - ВПН-соединение запущено 22с и активный ключ протестирован успешно. Плюсиком можно добавлять подписку (Название и ссылка), ключ из буфера (SS, trojan, vmess, vless, WG), JSON-профиль (импорт и экспорт), профиль с ручным заполнением полей.

Настройка очень проста и удобна - жмём шестерёнку, потом выбираем «Маршрутизация...», «Включить...», три точки вверху - «Импортировать с буфера», предварительно в буфер копируем следующий профиль:
(обновлено 03.03.26)

happ://routing/add/eyJibG9ja2lwIjpbXSwiYmxvY2tzaXRlcyI6WyJnZW9zaXRlOmNhdGVnb3J5LWFkcy1hbGwiXSwiZGlyZWN0aXAiOltdLCJkaXJlY3RzaXRlcyI6W10sImRuc2hvc3RzIjp7ImNsb3VkZmxhcmUtZG5zLmNvbSI6IjEuMS4xLjEiLCJkbnMuZ29vZ2xlIjoiOC44LjguOCJ9LCJkb21haW5zdHJhdGVneSI6IklQSWZOb25NYXRjaCIsImRvbWVzdGljZG5zZG9tYWluIjoiaHR0cHM6Ly9kbnMuZ29vZ2xlL2Rucy1xdWVyeSIsImRvbWVzdGljZG5zaXAiOiI4LjguOC44IiwiZG9tZXN0aWNkbnN0eXBlIjoiRG9IIiwiZmFrZWRucyI6ZmFsc2UsImdlb2lwdXJsIjoiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3J1bmV0ZnJlZWRvbS9ydXNzaWEtYmxvY2tlZC1nZW9pcC9yZWxlYXNlL2dlb2lwLXJ1LW9ubHkuZGF0IiwiZ2Vvc2l0ZXVybCI6Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ydW5ldGZyZWVkb20vcnVzc2lhLWJsb2NrZWQtZ2Vvc2l0ZS9yZWxlYXNlL2dlb3NpdGUtcnUtb25seS5kYXQiLCJnbG9iYWxwcm94eSI6ZmFsc2UsIm5hbWUiOiJSdW5GcmVEbS1CbG9AUnUoT25seSkiLCJwcm94eWlwIjpbImdlb2lwOnJ1LWJsb2NrZWQiLCJnZW9pcDpydS1ibG9ja2VkLWNvbW11bml0eSJdLCJwcm94eXNpdGVzIjpbImdlb3NpdGU6cnUtYmxvY2tlZCIsImRvbWFpbjp1YSIsImRvbWFpbjoyaXAuaW8iXSwicmVtb3RlZG5zZG9tYWluIjoiaHR0cHM6Ly9kbnMucXVhZDkubmV0L2Rucy1xdWVyeSIsInJlbW90ZWRuc2lwIjoiOS45LjkuOSIsInJlbW90ZWRuc3R5cGUiOiJEb0giLCJyb3V0ZW9yZGVyIjoiYmxvY2stZGlyZWN0LXByb3h5In0=

Загрузятся такие правила, DNS и гео-файлы:

{"blockip":[],"blocksites":["geosite:category-ads-all"],"directip":[],"directsites":[],"dnshosts":{"cloudflare-dns.com":"1.1.1.1","dns.google":"8.8.8.8"},"domainstrategy":"IPIfNonMatch","domesticdnsdomain":"https://dns.google/dns-query","domesticdnsip":"8.8.8.8","domesticdnstype":"DoH","fakedns":false,"geoipurl":"https://raw.githubusercontent.com/runetfreedom/russia-blocked-geoip/release/geoip-ru-only.dat","geositeurl":"https://raw.githubusercontent.com/runetfreedom/russia-blocked-geosite/release/geosite-ru-only.dat","globalproxy":false,"name":"RunFreDm-Blo@Ru(Only)","proxyip":["geoip:ru-blocked","geoip:ru-blocked-community"],"proxysites":["geosite:ru-blocked","domain:ua","domain:2ip.io"],"remotednsdomain":"https://dns.quad9.net/dns-query","remotednsip":"9.9.9.9","remotednstype":"DoH"}

В результате получим следующее:

Профили маршрутизации Happ

Экран - Профиль маршрутизации Rf-BlackLst (открывается по стрелке >)
*теперь будет называться RunFreDm-Blo@Ru(Only):

Профиль Rf-BlackLst

Продолжение экрана - Профиль маршрутизации Rf-BlackLst
*теперь называется RunFreDm-Blo@Ru(Only):

Профиль Rf-BlackLst: DNSы (*удалённый теперь другой)

Экран «Редактировать правила»:

«Глобальный прокси» не включаем!

Правила для раздела «Прокси»:

Правила для "Проксируемые" в Happ

Маршрутизация настроена, легко и просто!
Профилей маршрутизации может быть несколько, но активный только один. Есть онлайн конфигуратор/генератор профилей.

[⚠️ Add 03.03.26 Кнопка со спидометром запускает тестирование ключей ("Пинг").
Если потянуть ключ влево, появится кнопка удалить (корзина), а вправо - кнопки "тест/пинг" и "поделиться".

"Пинг" тест настраивается (⚙️Настройки, Расширенные, Пинг). Можно выбрать методы  
"via Proxy GET" или "HEAD" для заданного тестового URL, 
"TCP" или "ICMP" для сервера ВПН, 
а также тестовый URL.

"via Proxy GET" или "HEAD" - более точные, но очень медленные; "TCP" - быстрый тест (рекомендую), но может не отражать реальной работоспособности. Хотя после подключения можно уточнить, нажав "Проверить текущее"- покажет реальную задержку по url-тесту.

Ещё в Расширенных настройках (может очень помочь!) - в разделе "Настройки VPN" стоит сделать следующее:
 включить "Анализ пакетов" если не;
 "Включить резолвинг сервера" и заполнить две следующие строки например так:
8.8.8.8
tls://dns.google

Тут можно указать любой сервер DoT или DoH, смотря что у вас лучше доступно

Всё готово!

 Жмём на Старт/ВКЛ на Главном экране (большая кнопка) и запускаем туннель. При успехе пойдёт отсчёт времени и появиться строка "Проверить текущее подключение".

Есть недостаток - в списке не отображается номер ключа. Но ключи/профили сортируются по итогам теста.

Если попадается заблокированный ресурс, ещё не включённый в "Чёрные списки", включаем ненадолго режим "Глобал" - см. предпоследний скрин. Или добавляем его в Проксируемые - последний скрин.

⁉️По сообщениям, есть одна проблема с Happ - он гонит телеметрию на свой одноимённый сайт (happ[.]su). Причём этот сайт не заблокирован и доступен напрямую! Тем самым клиент выдаёт факт своего использования ‼️

Указанная проблема упорно игнорируется разработчиками 🤦🏼‍♂️

Каринг поступает примерно так же, но его сайт заблокирован и поэтому обмен идёт только через туннель, в зашифрованном виде (или не так явно, как минимум)⚠️].

V2BOX

(iOS14+ и MacOS11+)

Простой и удобный ВПН-клиент для поклонников Apple (для Android он тоже есть, конфиг правил маршрутизации аналогичен V2rayNG, т. к. это его форк скорее всего).
/Теперь Может показывать рекламу и не всегда пробивает блокировки!/

V2BOX/HOME

Чтобы настроить правила маршрутизации, нужно перейти в раздел Routing (Маршрутизация) из главного экрана Home (Главная <upd 07.10.25>). Там активируйте переключатель Enable Routing.

V2box/Routing

Установите domainStrategy в значение IPifNonMatch!

На странице Geo Assets загрузите гео-файлы, указав имя файла в поле Name (но без расширения! /Оно добавится само/) и ссылку в поле Url (те же, что и для V2rayNG):

Name:
geosite-ru-only
Url:
https://raw.githubusercontent.com/runetfreedom/russia-blocked-geosite/release/geosite-ru-only.dat

Name:
geoip-ru-only

Url:
https://raw.githubusercontent.com/runetfreedom/russia-blocked-geoip/release/geoip-ru-only.dat

V2box/Routing/Geo Assets

Следующий набор правил (для режима «чёрного списка») можно импортировать на экране Routing через буфер обмена, нажав вверху кнопку со стрелкой внутрь:

v2box://routes?multi=W3sibWF0Y2hNb2RlIjoiZG9tYWluIiwidGFnIjoicHJveHkiLCJ0eXBlIjoiRG9tYWluIiwiaXNFbmFibGUiOnRydWUsInJlbWFyayI6IlByb3h5IFBsdXMiLCJuYW1lIjoicm91dGUuMTMwMjdBNDUtNTcxNy00OEE3LTgwNDItQkQ1NkRDRTU5QkQ0IiwibGlzdCI6WyJ3aXJlLmNvbSIsInVhIiwiMmlwLmlvIl0sImxpc3RJUCI6W119LHsibWF0Y2hNb2RlIjoia2V5d29yZCIsInRhZyI6InByb3h5IiwidHlwZSI6IklQIiwiaXNFbmFibGUiOnRydWUsInJlbWFyayI6IlJmLUJsb2NrZWQgSVBzIiwibmFtZSI6InJvdXRlLjA1OTE5QkQzLTJDNEItNDIxRS1BNzc3LTA2RkJGQzcyQUM0OSIsImxpc3QiOltdLCJsaXN0SVAiOlsiZXh0Omdlb2lwLXJ1LW9ubHkuZGF0OnJ1LWJsb2NrZWQtY29tbXVuaXR5IiwiZXh0Omdlb2lwLXJ1LW9ubHkuZGF0OnJ1LWJsb2NrZWQiXX0seyJtYXRjaE1vZGUiOiJkb21haW4iLCJ0YWciOiJwcm94eSIsInR5cGUiOiJEb21haW4iLCJpc0VuYWJsZSI6dHJ1ZSwicmVtYXJrIjoiUmYtQmxvY2tlZCBETnMiLCJuYW1lIjoicm91dGUuMzgzREY1ODYtRUJDMC00NjVELTk3REMtNzcwOUI2RjNFNDc5IiwibGlzdCI6WyJleHQ6Z2Vvc2l0ZS1ydS1vbmx5LmRhdDpydS1ibG9ja2VkIl0sImxpc3RJUCI6W119LHsibWF0Y2hNb2RlIjoia2V5d29yZCIsInRhZyI6ImRpcmVjdCIsInR5cGUiOiJJUCIsImlzRW5hYmxlIjp0cnVlLCJyZW1hcmsiOiJGaW5hbC1CeXBhc3MiLCJuYW1lIjoicm91dGUuMkYxNTQwQTktMzNGMC00OERBLTkxNUYtRjU5RURFNjI3NTMwIiwibGlzdCI6W10sImxpc3RJUCI6WyIwLjAuMC4wXC8wIiwiMDo6MFwvMCJdfV0=

Загрузятся такие правила (без блокировки рекламы, но с проксированием для wire.com, ua и 2ip.io):

{"matchMode":"domain","tag":"proxy","type":"Domain","isEnable":true,"remark":"Proxy Plus","name":"route.13027A45-5717-48A7-8042-BD56DCE59BD4","list":["wire.com","ua","2ip.io"],"listIP":[]},{"matchMode":"keyword","tag":"proxy","type":"IP","isEnable":true,"remark":"Rf-Blocked Ips","name":"route.05919BD3-2C4B-421E-A777-06FBFC72AC49","list":[],"listIP":["ext:geoip-ru-only.dat:ru-blocked-community","ext:geoip-ru-only.dat:ru-blocked"]},{"matchMode":"domain","tag":"proxy","type":"Domain","isEnable":true,"remark":"Rf-Blocked Dns","name":"route.383DF586-EBC0-465D-97DC-7709B6F3E479","list":["ext:geosite-ru-only.dat:ru-blocked"],"listIP":[]},{"matchMode":"keyword","tag":"direct","type":"IP","isEnable":true,"remark":"Final-Bypass","name":"route.2F1540A9-33F0-48DA-915F-F59EDE627530","list":[],"listIP":["0.0.0.0\/0","0::0\/0"]}

Экран V2box/Routing целиком

Правила можно выключать (и включать обратно). Если выключить правило Final-Bypass, активируется режим «Глобал» (т.е всё в Прокси).

Вот как выглядит страница редактирования правила Rf-blocked DNs:

Правило Rf-blocked DNs

[⚠️ Add 07.10.25 Выберите сервер DNS от Google с шифрованием - DoT: 8.8.8.8 на странице DNS

V2box/DNS select

На странице DNS Options рекомендуется делать такой выбор:

V2box\DNS\Options

Про утечки DNS

Очень важно, используя ВПН-клиент, правильно задавать адреса DNS-серверов. И вот почему.

Обычно при обращении к системе доменных имен трафик не шифруется (используется протокол UDP, DOU – Dns Over Udp), а значит ваш локальный провайдер (работодатель или любой перехватчик трафика) может составить список посещенных вами ресурсов и сервисов. Злоумышленники могут использовать эти сведения для организации фишинговых атак или внедрения вредоносного кода. Данные DNS-запросов иногда используют для цензуры в некоторых странах, блокируя доступ к определенным ресурсам.

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

Существуют протоколы DNS с шифрованием (и серверы/службы DNS их поддерживающие) — DOH (Dns Over Https), DOT (Dns Over Tls) и некоторые другие. Желательно использовать эти шифрованные протоколы. Для этого есть специальные настройки в основных браузерах, в новых версиях Android (начиная с 9), в некоторых роутерах, в настройках некоторых ВПН-клиентов.

В сети Интернет есть специальные ресурсы, проводящие тестирование вашего браузера на «утечки DNS». Например:

https://dnsleaktest.com (результаты теста могут блокироваться в РФ),

https://browserleaks.com/dns (может быть заблокирован в РФ),

https://whoer.net/ru/dns-leak-test (заблокирован в РФ).

Результаты тестов на этих ресурсах при использовании ВПН не должны содержать локальные DNS-серверы. В противном случае имеется утечка DNS.

Google добавил поддержку DNS через TLS (DoT) в Android, представив функцию Private DNS (Частный DNS). Он доступен в Android 9 (Pie) и выше и шифрует весь DNS-трафик на телефоне, в том числе из приложений. Можно указать Частный DNS например так:

dns.google

Исследования показали, что ВПН-клиент v2rayNG не поддерживает DOH/DOT-формат указания адреса DNS, поэтому если указать в его настройках такое:

https://8.8.8.8/dns-query
или
tls://8.8.8.8

он не поймёт, но проглотит и даст утечку DNS (если браузер или роутер не настроен на шифрование dns и/или не установлен Частный DNS в Android). Т.е. будут использоваться сервера DNS, полученные от вашего локального провайдера!

Правильным будет задать ему адреса DNS без указания протокола или урл. Неизвестно, использует ли при этом клиент и его форки шифрованные протоколы DNS, но утечки перестанут фиксироваться.

============

Технически тестирование вашего браузера на «утечки DNS» на вышеуказанных сайтах происходит так:

- Когда вы заходите на такой сайт, он инициирует ряд DNS-запросов с вашего устройства к разным доменным именам, специально подготовленным для теста.

- Сайт затем анализирует, с каких DNS-серверов пришли ответы на эти запросы, то есть какие DNS-серверы использовались вашим устройством для разрешения доменных имён.


К статьям
"Выбор, установка и настройка VPN-клиентов на разных устройствах"

Report Page