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

Разбираем, почему обычные DNS не работают при белых списках, какие серверы доступны, как настроить обход через DNS и какие альтернативы существуют.

Как устроены белые списки и почему DNS-обход — не панацея

Белые списки — это режим фильтрации, при котором провайдер пропускает только трафик к заранее одобренным IP-адресам и доменам, а всё остальное блокируется на уровне маршрутизации. В отличие от классических чёрных списков, где запрещено конкретное, здесь по умолчанию запрещено всё, кроме разрешённого. Это принципиально меняет подход к обходу: если раньше достаточно было сменить DNS, чтобы обойти блокировку по домену, то теперь фильтрация идёт на сетевом уровне (L3) и уровне приложений (L7).

Когда вы пытаетесь открыть сайт, который не входит в белый список, пакеты просто не покидают сеть оператора — они отбрасываются на маршрутизаторе. Даже если вы укажете DNS-сервер, который вернёт IP-адрес заблокированного ресурса, соединение всё равно не установится, потому что сам IP не разрешён. Поэтому DNS-обход в чистом виде работает только в сценариях, где блокировка основана на доменных именах, а не на IP-адресах. В условиях белых списков это почти всегда не так.

Тем не менее, DNS остаётся важным элементом: он определяет, какой IP-адрес вы получите для домена. Если DNS-сервер вернёт адрес, который не в белом списке, доступ будет невозможен. Если же он вернёт адрес из разрешённого диапазона (например, через CDN или прокси), то шансы на успех появляются. Поэтому понимание того, какие DNS-серверы доступны и как они работают, критично для построения рабочей схемы обхода.

Почему стандартные DNS (8.8.8.8, 1.1.1.1) не работают при белых списках

При белых списках провайдеры часто блокируют не только HTTP/HTTPS-трафик, но и DNS-запросы к внешним серверам. Например, в ходе тестов через мобильного оператора Мегафон было обнаружено, что порт UDP:53 закрыт для всех внешних DNS-серверов: 8.8.8.8 (Google), 1.1.1.1 (Cloudflare) и 77.88.8.8 (Яндекс) — все они дают таймаут. Работает только DNS-сервер самого провайдера (в случае Мегафона — 10.233.58.133). Это означает, что даже если вы вручную пропишете DNS Google, запрос не уйдёт — он будет отброшен на уровне сети.

Такая блокировка реализована на уровне L3: UDP-пакеты к неразрешённым IP-адресам просто не маршрутизируются. Это касается не только DNS, но и других UDP-протоколов, включая QUIC (UDP:443) и WireGuard (UDP:51820). Поэтому любые попытки использовать альтернативные DNS-серверы, которые не входят в белый список, обречены на провал.

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

Какие DNS-серверы могут работать: внутренние и специальные

Если внешние DNS заблокированы, остаётся вариант использовать DNS-серверы, которые находятся в белом списке. Это могут быть:

  • DNS провайдера — как правило, работает всегда, но возвращает только разрешённые адреса. Он не поможет обойти блокировку, но обеспечивает базовую работу с разрешёнными сайтами.
  • DNS-серверы на IP-адресах из белого списка — если у вас есть свой сервер в облаке Яндекса, VK или Timeweb, вы можете поднять на нём DNS-сервер и использовать его. Поскольку IP сервера входит в белый список, UDP:53 к нему будет пропускаться. Однако нужно учитывать, что не все провайдеры разрешают произвольный UDP-трафик даже к белым IP — в тестах Мегафона UDP:53 к внешним адресам был закрыт, но к адресам из белого списка (например, к IP Яндекса) он может работать.
  • DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT) — эти протоколы работают поверх TCP (порт 443 для DoH, 853 для DoT). Если IP-адрес DNS-сервера входит в белый список, DoH-запросы могут проходить, так как они маскируются под обычный HTTPS-трафик. Например, можно использовать DoH-сервер Яндекса (https://common.dot.yandex.ru) или Cloudflare (https://cloudflare-dns.com/dns-query), но только если их IP не заблокирован.

На практике наиболее надёжный вариант — поднять собственный DNS-сервер на VPS с IP из белого списка и использовать его через DoH или обычный UDP:53. Это требует технических навыков, но даёт контроль над резолвингом и возможность возвращать адреса, которые ведут на прокси или CDN.

Как DNS-запросы взаимодействуют с фильтрацией SNI и IP

Даже если DNS-запрос успешно разрешается и вы получаете IP-адрес, это не гарантирует доступ. Фильтрация на уровне L7 проверяет SNI (Server Name Indication) в TLS-рукопожатии. Если домен, который вы запрашиваете, находится в чёрном списке SNI, соединение будет разорвано (RST), даже если IP-адрес разрешён.

Например, в тестах с IP Яндекса (77.88.55.242) SNI google.com проходил (возвращал HTTP 406), а twitter.com — блокировался. При этом через IP VK (87.240.132.78) twitter.com также блокировался, а telegram.org — нет. Это показывает, что правила SNI-фильтрации неконсистентны и зависят от конкретного IP и ASN.

Для DNS-обхода это означает, что нужно не только получить IP из белого списка, но и использовать SNI, который не в чёрном списке. Например, если вы настраиваете прокси на VPS, важно выбрать SNI, который выглядит легитимно (например, vk.com или ya.ru), чтобы DPI не заблокировал соединение. DNS-сервер в этой схеме играет роль только в том, чтобы направить клиента на правильный IP, но сам по себе не решает проблему SNI-фильтрации.

Практические схемы обхода с использованием DNS и прокси

Учитывая ограничения, DNS-обход в чистом виде неэффективен. Однако DNS можно использовать как часть более сложной схемы:

  1. Собственный DNS + прокси на VPS из белого списка. Вы поднимаете DNS-сервер на VPS (например, в Yandex Cloud) и настраиваете его так, чтобы для определённых доменов он возвращал IP вашего прокси-сервера. Прокси-сервер (например, VLESS + Reality) принимает соединения и перенаправляет трафик к целевым сайтам. Клиент использует этот DNS через DoH или UDP:53, получает IP прокси, и весь трафик идёт через него.
  1. Использование DNS-серверов, которые возвращают IP из белого списка. Некоторые публичные DNS (например, Яндекс DNS) могут возвращать адреса CDN, которые находятся в белом списке. Но это работает только для сайтов, которые используют российские CDN (например, VK, Яндекс). Для заблокированных зарубежных ресурсов это не поможет.
  1. Комбинированный подход: DNS + VPN с обфускацией. Если вы используете VPN-сервис с обфускацией (например, WireGuard с маскировкой под HTTPS), DNS-запросы могут идти через VPN-туннель. В этом случае внешний DNS становится доступен, так как трафик инкапсулирован. Но для этого VPN должен работать при белых списках, что возможно только с обфускацией и серверами в разрешённых сетях.

Настройка собственного DNS требует определённых знаний: нужно уметь работать с BIND или dnsmasq, настраивать DoH (например, через dnscrypt-proxy) и обеспечивать безопасность сервера. Но это даёт максимальную гибкость.

Инструменты и репозитории для получения актуальных списков

Для настройки обхода полезно иметь актуальные списки IP-адресов, которые входят в белый список. Сообщество openlibrecommunity ведёт репозиторий twl (The White List), который обновляется еженедельно и содержит результаты сканирования белых списков через мобильных операторов. Эти данные включают IP-адреса, ASN и домены, которые пропускаются.

Также существуют проекты, которые собирают списки разрешённых доменов для маршрутизации, например itdoginfo/allow-domains. Они полезны для настройки split-tunneling, когда часть трафика идёт напрямую, а часть — через VPN. Однако важно помнить, что списки меняются, и то, что работало вчера, может перестать работать сегодня.

При использовании таких списков нужно учитывать, что они не гарантируют 100% точность: сканирование может пропускать некоторые IP, а правила провайдеров различаются. Поэтому рекомендуется проверять доступность конкретных адресов перед настройкой.

Ограничения и риски: почему DNS-обход может не сработать

Даже при использовании собственного DNS-сервера на белом IP есть риски:

  • Блокировка UDP:53 к нестандартным портам. Некоторые провайдеры могут блокировать DNS-запросы не только к внешним IP, но и к любым IP, если порт нестандартный. В этом случае поможет только DoH/DoT.
  • Фильтрация по SNI. Если вы используете прокси, но SNI не замаскирован должным образом, DPI может заблокировать соединение.
  • Нестабильность белых списков. Списки меняются: что-то добавляют, что-то убирают. Ваш VPS может быть исключён из белого списка в любой момент.
  • Юридические риски. Обход блокировок может нарушать законодательство РФ, и использование таких методов может повлечь ответственность.

Также стоит помнить, что DNS-обход не решает проблему, если блокировка идёт на уровне IP. Если целевой сайт имеет IP, который не в белом списке, никакой DNS не поможет — нужно прокси или VPN.

Альтернативы DNS-обходу: VLESS, Shadowsocks и обфускация

Поскольку DNS-обход ограничен, более эффективными считаются методы, которые маскируют трафик под легитимный:

  • VLESS + XTLS-Reality — протокол, который имитирует TLS-соединение с реальным сайтом (например, vk.com). Сервер на VPS из белого списка принимает трафик, и DPI не может отличить его от обычного HTTPS.
  • Shadowsocks с плагинами (v2ray-plugin, simple-obfs) — маскирует трафик под HTTP/HTTPS.
  • Trojan-GFW — работает как HTTPS-сервер, но с дополнительной аутентификацией.
  • VPN с обфускацией (например, WireGuard с маскировкой) — коммерческие сервисы, такие как VPNUS, предлагают решения, которые проходят через белые списки.

Эти методы требуют наличия VPS с IP в белом списке. Хорошие варианты — Yandex Cloud (бесплатный грант 4000₽), Timeweb (бесплатный reroll IP), VK Cloud. Важно выбирать SNI, который не в чёрном списке, например storage.yandex.net или userapi.com.

Настройка таких решений сложнее, чем просто смена DNS, но они обеспечивают реальный доступ к заблокированным ресурсам.

Как проверить, работает ли ваш DNS-обход

Чтобы убедиться, что схема работает, выполните следующие шаги:

  1. Проверьте доступность DNS-сервера: используйте dig @ваш_сервер domain.com или nslookup. Если ответ приходит, DNS работает.
  2. Проверьте, какой IP возвращается для целевого домена. Он должен быть либо в белом списке, либо вести на ваш прокси.
  3. Попробуйте открыть сайт через браузер. Если соединение устанавливается, но затем рвётся, возможно, проблема в SNI.
  4. Используйте инструменты типа curl -v https://example.com для просмотра деталей TLS-рукопожатия.
  5. Проверьте, не блокируется ли UDP:53: dig @8.8.8.8 ya.ru — если таймаут, значит, внешний DNS недоступен.

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

Заключение: что выбрать для стабильного доступа

DNS-серверы — это лишь малая часть головоломки. В условиях белых списков они не решают проблему, если блокировка идёт на уровне IP. Для стабильного доступа к заблокированным ресурсам необходим комплексный подход: VPS с IP в белом списке, прокси-протокол с маскировкой (VLESS+Reality, Shadowsocks) и, возможно, собственный DNS для управления резолвингом.

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

В любом случае, DNS-обход стоит рассматривать только как вспомогательный инструмент, а не как основное решение.

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

Почему 8.8.8.8 и 1.1.1.1 не работают при белых списках?

При белых списках провайдеры блокируют UDP-трафик к неразрешённым IP-адресам, включая внешние DNS-серверы. Например, у Мегафона порт UDP:53 закрыт для всех внешних DNS, работает только DNS провайдера. Это делается на уровне маршрутизации, поэтому даже если вы вручную пропишете DNS Google, запрос не уйдёт.

Можно ли использовать DNS-over-HTTPS для обхода белых списков?

Да, если IP-адрес DoH-сервера входит в белый список. DoH работает поверх TCP:443 и маскируется под обычный HTTPS, поэтому может проходить фильтрацию. Например, можно использовать DoH-сервер Яндекса или Cloudflare, но нужно проверить доступность их IP в вашей сети.

Как поднять собственный DNS-сервер на VPS из белого списка?

Выберите VPS у провайдера, который входит в белый список (Yandex Cloud, Timeweb, VK Cloud). Установите DNS-сервер (BIND, dnsmasq) и настройте его. Для доступа через DoH можно использовать dnscrypt-proxy. Убедитесь, что IP вашего VPS разрешён, и настройте клиент на использование этого DNS.

Поможет ли смена DNS обойти блокировку YouTube?

Нет, если блокировка идёт на уровне IP. YouTube имеет множество IP-адресов, которые не входят в белый список, поэтому даже если DNS вернёт правильный IP, соединение будет заблокировано. Нужен прокси или VPN с обфускацией.

Какие DNS-серверы работают в белых списках?

Обычно работает только DNS провайдера. Если у вас есть VPS с IP в белом списке, вы можете поднять на нём DNS и использовать его. Также могут работать DoH-серверы, если их IP разрешён. Но универсального публичного DNS, который бы обходил белые списки, не существует.

Безопасно ли использовать собственный DNS-сервер для обхода?

Технически это безопасно, если вы контролируете сервер и не нарушаете закон. Однако обход блокировок может быть расценён как нарушение законодательства РФ, что влечёт риски. Также важно защитить DNS-сервер от несанкционированного доступа.