Список доменов для VPN: как настроить выборочную маршрутизацию трафика

Разбираем, зачем нужны списки доменов для VPN, как они работают, какие бывают виды (белые, черные, для обхода блокировок), как составить свой список и настроить маршрутизацию на роутере или устройстве.

Зачем нужен список доменов для VPN

При использовании VPN-сервиса весь трафик устройства обычно направляется через зашифрованный туннель. Это обеспечивает конфиденциальность и доступ к заблокированным ресурсам, но создает проблемы: российские сайты, такие как Ozon, Avito или госуслуги, могут блокировать подключения из-за рубежа или работать медленно из-за дополнительного прыжка. Решение — настроить выборочную маршрутизацию, при которой только определенные домены или IP-адреса идут через VPN, а остальной трафик — напрямую.

Список доменов для VPN — это перечень адресов, которые нужно направить через туннель (или, наоборот, исключить из него). Такой подход позволяет одновременно пользоваться заблокированными сервисами и сохранять быстрый доступ к локальным ресурсам. Например, можно включить VPN только для YouTube, Discord или Instagram, а все остальное оставить на прямом подключении.

Ключевая задача — правильно составить и поддерживать этот список, так как IP-адреса и домены могут меняться. Готовые списки, такие как Re:filter или allow-domains от itdoginfo, решают эту проблему, но требуют понимания их структуры и ограничений.

Как работает маршрутизация по доменам и IP

Маршрутизация трафика в VPN может осуществляться на разных уровнях. Самый простой способ — указать в конфигурации WireGuard параметр AllowedIPs. Если там стоит 0.0.0.0/0, весь трафик идет через туннель. Заменив это значение на конкретные IP-адреса или подсети, вы ограничите туннель только нужными сервисами. Например, AllowedIPs = 8.8.8.8, 1.1.1.1 направит через VPN только запросы к DNS-серверам Google и Cloudflare.

Однако IP-адреса могут меняться, и для крупных сервисов их сотни. Поэтому более гибкий подход — маршрутизация по доменам. Она доступна в некоторых VPN-клиентах (например, VLESS с NekoRay) или на роутерах с OpenWRT. В этом случае вы указываете домен или маску, например *.yandex.ru, и весь трафик к этому домену и его поддоменам идет через туннель.

На уровне роутера можно использовать ipset и iptables для создания списков IP-адресов, которые будут направляться в туннель. Это требует некоторых знаний Linux, но дает полный контроль. Альтернатива — готовые пакеты для OpenWRT, такие как Podkop или PBR, которые автоматически обновляют списки и управляют маршрутизацией.

Виды списков: белые, черные и для обхода блокировок

Списки доменов для VPN можно разделить на несколько категорий в зависимости от цели.

Белые списки (allow-lists) содержат домены, которые должны идти через VPN. Это удобно, когда нужно обходить блокировки только для конкретных сервисов, например YouTube или Discord. Пример — список Russia outside от itdoginfo, который включает домены российских сервисов, к которым нужно подключаться из-за рубежа.

Черные списки (block-lists) наоборот, перечисляют адреса, которые должны идти напрямую, минуя VPN. Это полезно, если вы хотите, чтобы весь трафик шел через туннель, кроме, скажем, банковских сайтов или госуслуг, которые могут блокировать иностранные IP.

Списки для обхода блокировок — это, по сути, белые списки, но сфокусированные на ресурсах, заблокированных в конкретной стране. Например, Re:filter содержит 42 662 домена, которые были отфильтрованы из реестра РКН и дополнены данными OONI. Такие списки позволяют обходить блокировки, не отправляя через VPN весь трафик.

Готовые списки: обзор популярных решений

Существует несколько готовых списков, которые можно использовать для настройки VPN.

Re:filter — проект, который очищает реестр РКН от мусора (казино, зеркал и т.п.) и оставляет только реально полезные ресурсы. На октябрь 2024 года список содержит 42 662 домена и 23 434 IP-адреса. Он доступен на GitHub и используется для сборки geoip.dat и geosite.dat для Xray и Sing-box.

allow-domains от itdoginfo — популярный список, который включает как общий список Russia inside (домены, которые нужно открывать через VPN), так и отдельные списки по заблокированным сервисам. Пользователи отмечают, что он хорошо работает и регулярно обновляется.

Antifilter.download и Antifilter.network — более старые проекты, которые предоставляют списки IP-адресов для обхода блокировок. Однако они содержат много лишнего, так как основаны на полном реестре РКН, включая мусорные домены.

При выборе списка важно учитывать, что он должен обновляться автоматически, так как IP-адреса и домены меняются. Некоторые проекты предлагают BGP-серверы, которые раздают списки напрямую на роутер, что упрощает обновление.

Как составить собственный список доменов

Если готовые списки не подходят, можно составить свой. Для этого нужно определить, какие сервисы вы хотите открывать через VPN, и найти их IP-адреса.

Самый простой способ — использовать расширение браузера IPvFoo. Оно показывает все домены и IP-адреса, к которым обращается сайт. Включите VPN, откройте нужный ресурс и посмотрите, какие адреса используются. Затем проверьте их через whois-сервис (например, 2ip.ru) и добавьте подсети, принадлежащие нужному сервису.

Для сервисов, использующих UDP (например, голосовые каналы Discord), можно использовать инструменты разработчика в браузере. Откройте консоль (F12), введите фильтр "RTC connected to media server:" и зайдите в голосовой канал. Вы увидите IP-адреса медиасерверов, которые нужно добавить в список.

Если ни один из способов не подходит, можно проанализировать трафик с помощью netstat -aon в Windows или Wireshark. Это более сложный метод, но он позволяет точно определить, к каким адресам обращается конкретное приложение.

Настройка маршрутизации на роутере

Маршрутизация на уровне роутера — самый эффективный способ, так как она применяется ко всем устройствам в сети. Для этого подойдут роутеры с OpenWRT или MikroTik.

В OpenWRT можно использовать пакеты Podkop или PBR, которые автоматически загружают списки доменов и IP-адресов и настраивают маршрутизацию. Они поддерживают как белые, так и черные списки, а также обновление по расписанию.

В MikroTik можно вручную создать Address List и правила маршрутизации. Например, добавить подсети Discord или YouTube в список и указать, что трафик к ним должен идти через VPN-интерфейс.

Если у вас обычный роутер от провайдера, можно поднять VPN-сервер на отдельном устройстве (например, Raspberry Pi или старом ПК) и настроить маршрутизацию через iptables. Это требует больше усилий, но дает полный контроль. Пользователи отмечают, что такой подход надежнее, чем использование сторонних прошивок.

Проблемы и ограничения при использовании списков

Главная проблема — динамичность IP-адресов. Крупные сервисы, такие как Google или Discord, используют тысячи адресов, которые могут меняться. Если список не обновляется, часть трафика может пойти напрямую и заблокироваться.

Еще одна сложность — суммаризация подсетей. Если добавить слишком широкую подсеть, например /16, через VPN могут пойти посторонние ресурсы, которые находятся в той же сети. Это особенно актуально для хостингов, таких как Fastly или Cloudflare. Поэтому для хостингов лучше использовать только точные DNS-записи, а не ASN-подсети.

Также стоит учитывать, что некоторые сервисы блокируют трафик из недружественных стран. Например, российские маркетплейсы могут не работать через VPN, если сервер находится за рубежом. В этом случае нужно либо использовать прокси с российским IP, либо исключить эти домены из VPN-маршрутизации.

Практические примеры: списки для YouTube, Discord и Instagram

Для популярных сервисов можно использовать готовые списки IP-адресов, которые публикуются в открытом доступе.

YouTube: список включает подсети Google, такие как 74.125.0.0/16, 172.217.0.0/16, 173.194.0.0/16 и другие. Однако он может быть неполным для разных регионов, поэтому лучше использовать доменную маршрутизацию для .googlevideo.com и .youtube.com.

Discord: список включает подсети Discord (66.22.196.0/22 и другие) и большие подсети Google и Cloudflare, которые используются для медиасерверов. Это может привести к тому, что через VPN пойдет лишний трафик, но для полной разблокировки Discord это необходимо.

Instagram и Facebook: список включает подсети Meta, такие как 31.13.24.0/21, 157.240.0.0/16 и другие. Эти адреса можно добавить в конфигурацию WireGuard или в Address List роутера.

Важно помнить, что эти списки могут устаревать, поэтому рекомендуется использовать автоматические обновления или проверять актуальность перед использованием.

Автоматизация обновления списков

Ручное обновление списков — трудоемкий процесс, поэтому лучше автоматизировать его. Многие проекты, такие как Re:filter, предоставляют скрипты для автоматической сборки списков на основе данных РКН, OONI и community-доменов.

Для роутеров с OpenWRT можно настроить cron-задание, которое будет периодически загружать свежие списки с GitHub и обновлять ipset. Например, скрипт может скачивать файл с IP-адресами и заменять содержимое ipset.

Для WireGuard можно использовать скрипты, которые генерируют конфигурацию с актуальными AllowedIPs. Это удобно, если вы часто меняете список сервисов.

Также существуют BGP-серверы, которые раздают списки напрямую. Например, Re:filter запустил BGP-сервер 165.22.127.207 (AS 65412), который можно использовать для автоматического получения списка ipsum.lst. Это позволяет роутеру автоматически обновлять маршруты без участия пользователя.

Безопасность и конфиденциальность при использовании списков

Использование списков доменов для VPN не только улучшает скорость, но и повышает безопасность. Выборочная маршрутизация снижает риск утечки данных, так как через VPN идет только необходимый трафик, а остальной — напрямую. Однако важно следить, чтобы в списки не попадали подозрительные домены, которые могут быть использованы для фишинга.

Также стоит учитывать, что некоторые VPN-сервисы могут логировать трафик. Если вы используете собственный сервер, вы контролируете логи. При использовании сторонних сервисов выбирайте те, которые имеют политику отсутствия логов.

Наконец, не забывайте, что списки доменов — это лишь инструмент. Для полной анонимности необходимо использовать другие меры, такие как шифрование DNS и отключение WebRTC в браузере.

Вопросы и ответы

Что такое белый список доменов для VPN?

Белый список доменов — это перечень адресов, которые должны направляться через VPN-туннель. Все остальные домены и IP-адреса идут напрямую через вашего интернет-провайдера. Такой подход позволяет обходить блокировки только для нужных сервисов, сохраняя высокую скорость для остального трафика. Например, вы можете включить в белый список YouTube и Discord, а все остальное оставить на прямом подключении.

Как найти IP-адреса для списка доменов?

Самый простой способ — использовать расширение браузера IPvFoo. Оно показывает все домены и IP-адреса, к которым обращается сайт. Включите VPN, откройте нужный ресурс и посмотрите, какие адреса используются. Затем проверьте их через whois-сервис (например, 2ip.ru) и добавьте подсети, принадлежащие нужному сервису. Для сервисов, использующих UDP (например, голосовые каналы Discord), можно использовать инструменты разработчика в браузере: откройте консоль (F12), введите фильтр "RTC connected to media server:" и зайдите в голосовой канал.

Какие готовые списки доменов для VPN существуют?

Популярные готовые списки:

  • Re:filter — очищенный список заблокированных в РФ ресурсов, содержит 42 662 домена и 23 434 IP-адреса.
  • allow-domains от itdoginfo — включает списки Russia inside и Russia outside, а также отдельные списки по сервисам.
  • Antifilter.download и Antifilter.network — более старые списки, основанные на полном реестре РКН.

Эти списки регулярно обновляются и могут использоваться для настройки VPN на роутере или устройстве.

Можно ли настроить маршрутизацию по доменам в WireGuard?

В WireGuard маршрутизация осуществляется только по IP-адресам, а не по доменам. Однако вы можете использовать скрипты, которые резолвят домены в IP-адреса и обновляют конфигурацию. Например, можно создать скрипт, который периодически проверяет DNS-записи для нужных доменов и генерирует новый AllowedIPs. Для маршрутизации по доменам лучше использовать VLESS с клиентом NekoRay или роутер с OpenWRT и пакетом PBR.

Почему российские сайты не открываются через VPN?

Российские сайты, такие как Ozon или Avito, могут блокировать трафик из-за рубежа, чтобы защититься от мошенничества или соблюдать требования законодательства. Когда вы подключаетесь через VPN с зарубежным IP, сайт может отказать в доступе. Решение — исключить эти домены из VPN-маршрутизации, чтобы они открывались напрямую. Для этого можно использовать черный список или настроить маршрутизацию по доменам.

Как часто нужно обновлять список доменов для VPN?

IP-адреса и домены могут меняться довольно часто, особенно у крупных сервисов. Рекомендуется обновлять списки не реже одного раза в неделю. Для автоматизации можно использовать скрипты, которые загружают свежие списки с GitHub или BGP-серверов. Например, Re:filter предоставляет BGP-сервер, который автоматически раздает актуальные списки на роутер.

Что делать, если список доменов не работает?

Если список не работает, проверьте несколько моментов:

  • Убедитесь, что список актуален и содержит правильные IP-адреса.
  • Проверьте, что маршрутизация настроена правильно (например, AllowedIPs в WireGuard).
  • Убедитесь, что VPN-сервер доступен и не блокируется провайдером.
  • Попробуйте использовать другой список или составить свой с помощью IPvFoo.

Если проблема сохраняется, возможно, сервис использует динамические IP-адреса, и нужно обновить список.