Обычные DNS-запросы передаются по UDP в открытом виде — провайдер, корпоративная сеть или злоумышленник может видеть, какие сайты вы посещаете. DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT) решают эту проблему, шифруя DNS-трафик.
Сравнение: обычный DNS vs DoH vs DoT
| Параметр | DNS | DoH | DoT |
|---|---|---|---|
| Порт | 53/UDP | 443/TCP | 853/TCP |
| Шифрование | Нет | HTTPS/TLS | TLS |
| Приватность | Низкая | Высокая | Высокая |
| Обход блокировок | Нет | Да (порт 443) | Частично |
| Поддержка браузерами | Всегда | Chrome, Firefox | Только системно |
Публичные DoH-серверы
| Провайдер | URL | Политика логов |
|---|---|---|
| Cloudflare | https://1.1.1.1/dns-query | Без логов |
| https://dns.google/dns-query | Логи 48 ч | |
| Quad9 | https://dns.quad9.net/dns-query | Без логов, блокирует малварь |
| NextDNS | Индивидуальный URL | Настраиваемые логи |
Включение DoH в Firefox
- Настройки → Конфиденциальность и защита
- Прокрутите до «DNS через HTTPS»
- Включите → выберите провайдера (Cloudflare/NextDNS)
Включение DoH в Chrome
- Настройки → Конфиденциальность и безопасность
- Безопасность → Использовать безопасный DNS
- Выберите провайдера или введите свой DoH-URL
Настройка DoH на Linux (systemd-resolved)
# /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1
FallbackDNS=8.8.8.8
DNSOverTLS=yes
systemctl restart systemd-resolved
💡 Для повышенной приватности: Используйте Cloudflare 1.1.1.1 (обязуется не продавать данные) или Quad9 (блокирует вредоносные домены автоматически). Избегайте провайдеров, которые монетизируют DNS-запросы.
Частые ошибки при настройке DoH
| Симптом | Причина | Решение |
|---|---|---|
| Firefox пишет «Секьюрный DNS недоступен» (Secure DNS unavailable) | DoH-провайдер заблокирован файрволом сети или корпоративным прокси на порту 443 по SNI-фильтру | Переключиться на другого DoH-провайдера в настройках или временно отключить DoH в этой сети |
| Chrome показывает предупреждение «Не удалось найти безопасный DNS-сервер» | Chrome проверяет, поддерживает ли текущий системный DNS протокол DoH через auto-upgrade, и не находит соответствия | Выбрать провайдера DoH вручную вместо режима «С текущим поставщиком» |
systemd-resolved: DNSOverTLS=yes, но resolvectl status показывает «not supported» | Резолвер, указанный в DNS=, не поддерживает TLS на порту 853 или сертификат не совпадает с именем в DNSOverTLS-конфигурации | Указать явный сертификат через параметр # перед IP или сменить резолвер на подтверждённо поддерживающий DoT (1.1.1.1, 8.8.8.8) |
| Сайты во внутренней сети (intranet) перестали открываться после включения DoH | Внутренние DNS-записи существуют только на корпоративном резолвере, а DoH обращается к публичному серверу, который о них не знает | Добавить домены intranet в список исключений DoH (Firefox: network.trr.excluded-domains) или отключить DoH в этой сети |
| Родительский контроль/DNS-фильтрация провайдера перестала действовать | DoH обходит DNS сервера провайдера, поэтому DNS-based фильтры (в том числе антивирусные и родительские) перестают видеть запросы | Использовать DoH-провайдера со встроенной фильтрацией (например, CleanBrowsing или AdGuard DNS) вместо отключения фильтрации совсем |
Проверка, что DoH действительно работает
# Firefox: страница диагностики
about:networking#dns
# Проверка через curl напрямую к DoH-эндпоинту
curl -s -H 'accept: application/dns-json' \
'https://1.1.1.1/dns-query?name=example.com&type=A'
# Проверка утечки DNS вне DoH (должен остаться пуст список обычных резолверов)
# https://www.dnsleaktest.com
Если curl-запрос вернул JSON с полем "Status": 0 и массивом Answer — DoH-эндпоинт отвечает корректно. Код "Status": 2 означает SERVFAIL на стороне DoH-резолвера, а не проблему в вашей настройке.
- В Firefox:
about:networking#dns— колонка TRR (Trusted Recursive Resolver) должна быть отмечена для доменов, идущих через DoH - В Chrome:
chrome://net-internals/#dns— секция «DNS over HTTPS» показывает статистику успешных запросов - DNS-leak тест не должен показывать резолвер вашего провайдера — только выбранный DoH/DoT-сервер
Когда DoH не подходит
- Корпоративная сеть с собственной DNS-зоной для внутренних сервисов — DoH-провайдер не резолвит intranet-имена, сайты и сервисы за VPN перестанут открываться без явных исключений
- Нужна DNS-based фильтрация на уровне сети (родительский контроль, антивирус, блокировка рекламы через pfBlockerNG/Pi-hole) — DoH в браузере обходит эти фильтры, если явно не указать тот же фильтрующий DNS как DoH-провайдера
- Диагностика сетевых проблем —
tcpdumpи обычные DNS-снифферы не видят содержимое DoH-запросов, они зашифрованы как обычный HTTPS-трафик - Устаревшие роутеры и IoT-устройства почти никогда не поддерживают DoH/DoT — включать его имеет смысл на уровне ОС или браузера, а не как единственную защиту сети