Private DNS на Android или DoH-приложение

Private DNS в Android шифрует запросы через DNS over TLS без приложения. Когда DoH-приложение лучше, как они конфликтуют и чего не исправит ни одно.

Если вы искали «зашифрованный DNS на Android», то наверняка встречали два ответа. Одни говорят: приложение не нужно, просто включите Private DNS. Другие говорят: установите приложение с DNS over HTTPS. Оба совета разумны. Они решают одну задачу разными способами и ломаются в разных местах. В этом руководстве объясняется, как работает каждый вариант, где у каждого слабые места и как выбрать. GreenTunnel, в котором есть DoH-клиент, делаем мы, так что учитывайте это при чтении.

Что такое Private DNS на самом деле

Google добавила Private DNS в Android 9. Обычно настройка находится в разделе Настройки → Сеть и интернет → Персональный DNS-сервер, хотя точный путь отличается у разных производителей. Вариантов три:

  • Отключено: запросы идут открытым текстом на тот DNS-сервер, который выдаёт текущая сеть.
  • Автоматический режим: вариант по умолчанию. Android пробует DNS over TLS с DNS-сервером самой сети и использует его, если сервер это поддерживает. Если нет, запросы остаются открытыми. Это часто называют оппортунистическим режимом, и в большинстве домашних и мобильных сетей он означает отсутствие шифрования.
  • Имя хоста поставщика: вы вводите имя хоста провайдера, например dns.google для Google Public DNS. Тогда Android использует только этот сервер. Если до него не достучаться, система не переключается молча на обычный DNS. В анонсе Google сказано, что вместо этого Android помечает сеть как не имеющую доступа в интернет.

DNS over TLS описан в стандарте RFC 7858 и использует собственный порт 853. Отдельный порт — одновременно сила и слабость: это чисто и экономно, но сети такой трафик легко распознать и заблокировать.

А что с DNS over HTTPS в Android?

Есть нюанс, который многие руководства упускают. В июле 2022 года Google объявила, что после системного обновления Google Play устройства на Android 11 и новее используют DNS over HTTP/3 вместо DNS over TLS для известных DNS-серверов, которые это поддерживают. На старте это касалось Google и Cloudflare. В публикации Google подчёркивается, что меняется только транспорт, а не сам DNS-сервис. Вы по-прежнему вводите имя хоста в то же поле Private DNS. Поля для произвольного адреса DoH нет, а для других провайдеров Private DNS остаётся DNS over TLS.

Чем отличается DoH-приложение

DoH-приложение или VPN-приложение с DoH-клиентом берёт на себя DNS всего устройства через слот VPN в Android. Каждый запрос передаётся внутри HTTPS на DoH-сервер, например https://cloudflare-dns.com/dns-query, как описано в RFC 8484.

  • Оно использует порт 443. Для сети это выглядит почти как любое другое HTTPS-соединение. Сеть, которая блокирует порт 853, чтобы остановить DNS over TLS, обычно его не трогает.
  • Вы выбираете сервер и протокол. Приложения могут предлагать DoH- и DoT-провайдеров рядом и переключаться между ними.
  • Оно может полностью обходить DNS-резолвер сети. Хороший клиент подключается к фиксированным начальным (bootstrap) IP-адресам DoH-сервера, так что даже поиск DNS-сервера не зависит от DNS сети.
  • Оно занимает слот VPN. Android допускает только один VPN одновременно. DoH-приложение не может работать параллельно с другим VPN-приложением.

Сравнение

Private DNS (имя хоста)DoH-приложение
Нужно отдельное приложениеНетДа
ПротоколDNS over TLS или DNS over HTTP/3 для некоторых известных провайдеров на Android 11+DNS over HTTPS (некоторые приложения предлагают и DoT)
Порт853 для DoT443
Если сервер заблокированСеть показывает «нет доступа в интернет», пока вы не измените настройкуЗависит от приложения. Некоторые переключаются на другого провайдера
Занимает слот VPNНетДа
Работает с другим VPN-приложениемДа, с конфликтами, описанными нижеНет, только один VPN одновременно
Помогает против фильтрации по имени в HTTPSНетТолько если приложение умеет и это

Где у Private DNS проблемы

  • Сети, блокирующие порт 853. Некоторые офисы, учебные заведения и публичные Wi-Fi его блокируют. В режиме имени хоста сеть тогда выглядит сломанной. Как это проявляется, см. в статье Сайт открывается через мобильный интернет, но не через Wi-Fi?
  • Особенности отдельных сетей. Настройка глобальная, а сети разные. Имя хоста, которое работает через мобильный интернет, может не работать в каком-то конкретном Wi-Fi.
  • Страницы входа в публичном Wi-Fi. Сети отелей и кафе со страницей входа могут сбоить с фиксированным именем хоста, пока вы не завершите вход. Обычно помогает ненадолго переключиться на автоматический режим.
  • Автоматический режим часто не шифрует. Большинство DNS-серверов провайдеров не поддерживают DNS over TLS, поэтому автоматический режим молча остаётся на обычном DNS.

Где у DoH-приложения проблемы

  • Оно должно постоянно работать. Если Android остановит приложение ради экономии батареи, защита DNS тоже остановится. См. как не дать Android отключать VPN.
  • Оно блокирует другие VPN. Его нельзя совместить с рабочим VPN на том же телефоне.
  • Его сервер можно заблокировать по IP-адресу. Порт 443 не поможет, если сеть блокирует адрес DoH-сервера. Клиенты, умеющие переключаться на другого провайдера, справляются с этим лучше.

Конфликт: Private DNS и VPN-приложение

Начиная с Android 10, имя хоста Private DNS действует и тогда, когда работает VPN-приложение. В инструкциях самого Google Public DNS отмечено, что в Android 9 VPN перекрывал Private DNS и что в Android 10 это исправили. На практике это значит: если вы задали имя хоста, а затем включили VPN-приложение со своим DNS, Android будет отправлять запросы вашему провайдеру Private DNS. Зашифрованный DNS VPN-приложения и его список блокировки эти имена не увидят. Если этот провайдер заблокирован в текущей сети, не откроется ни один сайт.

При использовании GreenTunnel ставьте Private DNS в положение Отключено или Автоматический режим. Это одна из первых проверок в статье Сайт всё ещё заблокирован?

Как GreenTunnel работает с DNS

GreenTunnel — локальный VPN со встроенным клиентом зашифрованного DNS. В разделе Настройки → DNS вы выбираете одного из трёх провайдеров или Автоматически:

  • Cloudflare, DoH, https://cloudflare-dns.com/dns-query
  • Google, DoH, https://dns.google/dns-query
  • Quad9, DoT, dns.quad9.net:853

В режиме «Автоматически» приложение пробует Cloudflare, затем Google, затем Quad9 и продолжает пользоваться тем, кто ответил. К каждому провайдеру оно подключается через встроенные начальные IP-адреса, поэтому DNS провайдера интернета вообще не запрашивается. DoQ не поддерживается. Полное описание — в статье DoH и DoT простыми словами.

Отличие от приложения, которое занимается только DNS, в том, что происходит после запроса. GreenTunnel также изменяет форму первого пакета HTTPS-соединений, чтобы обходить простую фильтрацию по имени, показывает соединения по приложениям в Requester и может проверить сайт с помощью Проверки URL. Мы никогда не собираем домены, которые вы запрашиваете.

Честные ограничения зашифрованного DNS

Зашифрованный DNS, каким бы способом вы его ни получили, устраняет один вид блокировки: сеть, которая подделывает или отбрасывает ответы DNS. Он не мешает сети читать имя сайта в HTTPS-рукопожатии — для этого нужно изменение пакетов или ECH. Он не обходит блокировку по IP. Он не скрывает ваш IP-адрес, и провайдер по-прежнему видит, к каким адресам вы подключаетесь. Ваши запросы вместо провайдера будет видеть выбранный DNS-провайдер, поэтому выбирайте того, чьей политике доверяете. GreenTunnel тоже не является средством анонимности.

Что выбрать?

  • Нужно просто шифровать запросы в нормально работающих сетях? Private DNS с именем хоста провайдера — это просто и не требует приложения.
  • Ваша сеть блокирует порт 853, подделывает DNS или фильтрует имена сайтов? Лучше подойдёт DoH-приложение, в идеале такое, которое справляется и с фильтрацией по имени. Переключите Private DNS в положение «Отключено» или «Автоматический режим».
  • Вы уже пользуетесь рабочим VPN? Оставайтесь на Private DNS, потому что одновременно может работать только одно VPN-приложение.

GreenTunnel бесплатен на Android и iPhone, Premium — по желанию. Как он работает, смотрите на главной странице.

Часто задаваемые вопросы

Private DNS в Android использует DoH или DoT?

DNS over TLS на порту 853. После системного обновления Google Play в 2022 году Android 11 и новее вместо этого используют DNS over HTTP/3 для некоторых известных провайдеров, которые его поддерживают, начиная с Google и Cloudflare. Ввести собственный адрес DoH нельзя.

Оставлять ли Private DNS включённым при использовании GreenTunnel?

Поставьте «Отключено» или «Автоматический режим». С именем хоста провайдера Android отправляет запросы напрямую этому провайдеру, и зашифрованный DNS GreenTunnel вместе с вашим списком блокировки остаётся в стороне.

DoH приватнее, чем DoT?

Оба одинаково хорошо шифруют запрос. Разница в том, насколько легко его заметить и заблокировать. DoT использует отдельный порт, а DoH сливается с HTTPS на порту 443.

Разблокирует ли зашифрованный DNS любой сайт?

Нет. Он устраняет только блокировки через DNS. Сайтам, заблокированным фильтрацией по имени, нужно больше, а сайтам, заблокированным по IP-адресу, нужен совсем другой маршрут.

Источники

← Все статьи