DNS over HTTPS (DoH)

DNS over HTTPS (DoH) — способ отправлять DNS-запросы зашифрованными внутри HTTPS, чтобы их не видели посторонние узлы сети.

Обновлено · Редакция Prokso

Прежде чем открыть сайт, программа спрашивает у DNS, какой IP-адрес стоит за доменом. Обычный DNS-запрос идёт открытым текстом, поэтому его видит провайдер и любой узел на пути. DNS over HTTPS заворачивает такой запрос в HTTPS-соединение с DNS-сервером, и снаружи он выглядит как обычный веб-трафик.

Есть похожий способ — DNS over TLS (DoT). Он тоже шифрует запросы, но использует отдельный порт 853, поэтому его проще заметить и отфильтровать в сети. DoH работает через порт 443, как и большинство сайтов.

С прокси DoH связан через утечку DNS. Это ситуация, когда страницы идут через прокси, а запросы имён — напрямую через вашего провайдера. Тогда DNS-сервер видит, какие сайты вы открываете и из какой сети.

Где именно определяется имя, зависит от типа прокси. Для HTTPS через HTTP CONNECT клиент передаёт прокси имя хоста, и адрес ищет уже прокси. В SOCKS5 есть два варианта: клиент может сам найти IP и передать его или передать имя, чтобы его определил прокси. В curl это разница между socks5:// и socks5h://: с буквой h имя определяет прокси.

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

В браузерах DoH включается в настройках безопасности, пункт обычно называется «Безопасный DNS» или «Использовать защищённый DNS». Имейте в виду: при работе через прокси браузер может обращаться с DoH по-разному, в зависимости от версии и настроек. Поэтому после изменений проверяйте результат, а не полагайтесь на название опции.

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

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

Защищает ли DoH от утечки DNS при работе через прокси?

Он шифрует запросы, но они могут идти мимо прокси. Надёжнее, чтобы имена определял сам прокси: для HTTP CONNECT это происходит автоматически, для SOCKS5 нужен соответствующий режим клиента, например socks5h в curl.

Чем DoH отличается от DoT?

Оба шифруют DNS-запросы. DoH идёт через HTTPS на порту 443 и похож на обычный веб-трафик, DoT использует отдельный порт 853.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт