DoT и DoH: в чём разница и что выбрать
DNS over TLS и DNS over HTTPS решают одну задачу: шифруют DNS-запросы. Разница в реализации.
DoT работает на порту 853. Отдельный, специализированный порт — только для DNS-трафика. Провайдер или сетевой администратор видит: вот идёт зашифрованный DNS. Заблокировать просто — достаточно закрыть 853-й порт.
DoH прячется на 443-м порту вместе со всем HTTPS-трафиком. Заблокировать без ущерба для остального интернета практически невозможно. Зато в корпоративной сети за DoH сложнее уследить.
| Параметр | DNS over TLS (DoT) | DNS over HTTPS (DoH) |
|---|---|---|
| Порт | 853 | 443 |
| Шифрование | TLS | HTTPS / TLS |
| Заметность | Отдельный порт, заметен | Сливается с HTTPS-трафиком |
| Простота блокировки | Легко (закрыть порт 853) | Сложно (нужен DPI) |
| Нативная поддержка Android | Да, с версии 9 | Только через браузер |
| Поддержка Windows | Только через сторонний софт | Нативно в Windows 11 |
| Управляемость в корпоративной сети | Лучше | Сложнее |
Для Android и Keenetic — DoT удобнее. Встроен нативно, настраивается за минуту. Если хочешь закрыть весь трафик в системе Windows — читай статью про настройку DNS over HTTPS, там DoH закрывает задачу лучше.
DNS over TLS серверы: список
Ниже — проверенные публичные серверы с поддержкой DoT. Для каждого указан хостнейм — он нужен для настройки на Android в поле «Private DNS».
| Провайдер | Hostname для DoT | IP адреса | Особенности |
|---|---|---|---|
| Cloudflare | one.one.one.one | 1.1.1.1 / 1.0.0.1 | Быстрый, минимальные логи |
| dns.google | 8.8.8.8 / 8.8.4.4 | Надёжный, хранит логи | |
| Quad9 | dns.quad9.net | 9.9.9.9 / 149.112.112.112 | Блокирует малварь и фишинг |
| AdGuard | dns.adguard.com | 94.140.14.14 / 94.140.15.15 | Блокирует рекламу и трекеры |
| AdGuard Family | dns-family.adguard.com | 94.140.14.15 / 94.140.15.16 | Блокирует взрослый контент |
| Яндекс (базовый) | common.dot.dns.yandex.net | 77.88.8.8 / 77.88.8.1 | RU-юрисдикция, без фильтров |
| Яндекс (безопасный) | safe.dot.dns.yandex.net | 77.88.8.88 / 77.88.8.2 | Блокирует вирусы |
| NextDNS | xxxxx.dns.nextdns.io | Персональный | Кастомные списки, статистика |
Cloudflare — первый выбор для скорости. Quad9 — если нужна защита от фишинга без отдельных настроек. NextDNS — если хочешь статистику и контроль над тем, что блокируется.
Порты и протоколы
| Протокол | Порт | Транспорт | Шифрование |
|---|---|---|---|
| DNS (обычный) | 53 | UDP / TCP | Нет |
| DNS over TLS (DoT) | 853 | TCP | TLS 1.2 / 1.3 |
| DNS over HTTPS (DoH) | 443 | TCP | HTTPS / TLS |
| DNS over QUIC (DoQ) | 853 | QUIC | TLS 1.3 |
DNS over TLS на Android: нативная настройка
Android 9 (Pie) и выше поддерживают DoT нативно. Называется «Частный DNS» или «Private DNS». Работает на уровне системы — все приложения, включая игры и мессенджеры, получают зашифрованный DNS автоматически.
Шаг 1. Открой настройки
Настройки — Подключения — Другие настройки — Частный DNS.
На чистом Android: Настройки — Сеть и интернет — Дополнительно — Частный DNS.
Путь зависит от оболочки. На Samsung — Настройки — Подключения — Другие настройки сети — Частный DNS. На Xiaomi — Настройки — Подключения — Другие настройки подключения — Частный DNS.
Шаг 2. Выбери режим
Три варианта:
- Выкл — обычный DNS, ничего не шифруется
- Автоматически — Android сам решает, использовать DoT или нет
- Hostname частного DNS-провайдера — вручную вводишь адрес сервера
Выбирай третий вариант.
Шаг 3. Введи hostname
Для Cloudflare:
one.one.one.one
Для Google:
dns.google
Для Quad9:
dns.quad9.net
Нажми «Сохранить». Android подключится к серверу по TLS и покажет статус «Подключено».
Проверка на Android
После сохранения настроек рядом с hostname должен появиться статус «Подключено». Если «Не подключено» — проверь интернет-соединение и правильность hostname.
Быстрая проверка через браузер:
https://1.1.1.1/help
Увидишь «Connected to 1.1.1.1» и статус DoT.
DNS over TLS Nulls Proxy: зачем и как
Nulls Proxy — популярное приложение для мобильных геймеров. Основная задача: снизить пинг в онлайн-играх типа Brawl Stars, Clash of Clans, Clash Royale. Делает это через проксирование игрового трафика.
С версии 1.6+ в Nulls Proxy появилась поддержка DNS over TLS. Логика простая: если приложение управляет сетевым трафиком — пусть и DNS шифрует заодно. Это снижает риск того, что провайдер заблокирует игровые серверы по DNS.
Как выглядит настройка DoT в Nulls Proxy
Открой приложение Nulls Proxy. Перейди в Settings или Настройки. Найди раздел DNS.
Там два поля:
- DNS Server — hostname сервера
- DNS over TLS — переключатель вкл/выкл
Включи DoT. В поле DNS Server введи hostname.
Для Cloudflare (рекомендую для игр — самый низкий пинг):
one.one.one.one
Для Google:
dns.google
Nulls Proxy для конкретных игр
Структура настройки похожа для всех игр, но есть нюансы.
Для Brawl Stars (dns over tls nulls proxy for bs):
- Регион сервера — выбери ближайший к игровым серверам Supercell
- DNS: one.one.one.one
- DoT: включено
- Протокол: TCP обычно стабильнее для мобильного интернета
Для Clash of Clans, Clash Royale — те же настройки DNS. Разница только в выборе региона прокси-сервера.
Где скачать Nulls Proxy
Официальный сайт: nulls.net. Приложение доступно для Android через APK с официального сайта. В Google Play его нет — политика Play Store не позволяет VPN-приложениям для игровых целей. На iOS ситуация аналогичная — ищи через официальный сайт.
DNS over TLS на Keenetic
На Keenetic DoT настраивается аналогично DoH — через веб-интерфейс или CLI. Разница в URL: для DoT используется hostname, а не https-адрес.
Через веб-интерфейс
Зайди в Интернет — DNS. Переключи режим на «DNS over TLS». В поле сервера введи hostname.
Для Cloudflare:
one.one.one.one
Для Quad9:
dns.quad9.net
Сохрани. Роутер переподключит DNS-службу. Все устройства в сети получат DoT автоматически.
Через CLI
Подключись через Telnet или веб-терминал Keenetic:
ip dns proxy name cloudflare dot host one.one.one.one
ip dns proxy name cloudflare dot enable
ip name-server dns-proxy
system configuration save
Проверь статус:
show ip dns proxy
Должен увидеть строку с DoT и статусом active.
DoT или DoH на Keenetic — что выбрать
Оба работают. DoT чуть проще в отладке: отдельный порт 853, легче видно в логах. DoH на 443-м порту сложнее заблокировать извне.
Если провайдер агрессивно фильтрует трафик — выбирай DoH. Если просто хочешь зашифровать DNS без лишних сложностей — DoT на Keenetic работает стабильно. Подробная инструкция по DoH на Keenetic — в статье про настройку DNS over HTTPS.
DNS over TLS на Windows через dnscrypt-proxy
Windows не поддерживает DoT нативно — ни 10-я, ни 11-я. Нужен сторонний клиент. dnscrypt-proxy умеет и DoH, и DoT.
Скачай с GitHub: dnscrypt-proxy/dnscrypt-proxy. Распакуй в удобную папку, например C:\dnscrypt-proxy.
Открой dnscrypt-proxy.toml и настрой DoT:
server_names = ['cloudflare', 'cloudflare-ipv6']
listen_addresses = ['127.0.0.1:53']
require_dnssec = true
require_nofilter = false
Для явного использования DoT-серверов укажи в server_names серверы с суффиксом -doh или используй отдельный список. В конфиге есть закомментированный пример — разкомментируй нужные строки.
Установи и запусти службу:
.\dnscrypt-proxy.exe -service install
.\dnscrypt-proxy.exe -service start
Пропиши в настройках сетевого адаптера DNS вручную:
127.0.0.1
Теперь все DNS-запросы системы идут через dnscrypt-proxy, который пересылает их по DoT или DoH — в зависимости от выбранных серверов.
Проверка через PowerShell
Resolve-DnsName -Name example.com -Server 127.0.0.1
Если получил ответ — служба работает. Для проверки что трафик не идёт напрямую:
netstat -ano | findstr :53
Должен видеть 127.0.0.1:53 в состоянии LISTENING — это локальный прокси. Никаких внешних адресов на 53-м порту быть не должно.
Системные требования
| Платформа | Минимальная версия | Нативная поддержка DoT |
|---|---|---|
| Android | 9 (Pie) | Да — Частный DNS |
| iOS / iPadOS | 14+ | Через профили конфигурации |
| Windows 10 / 11 | Любая | Нет, нужен dnscrypt-proxy |
| Linux (systemd-resolved) | Ubuntu 20.04+ | Да, через конфиг resolved.conf |
| Keenetic | Прошивка 3.1+ | Да, нативно |
| Nulls Proxy (Android) | 1.6+ | Да, в настройках DNS |
DNS over TLS на Linux через systemd-resolved
На современных Linux-дистрибутивах с systemd-resolved DoT включается правкой одного файла. Никаких сторонних демонов.
Открой конфиг:
sudo nano /etc/systemd/resolved.conf
Добавь или раскомментируй строки:
[Resolve]
DNS=1.1.1.1#one.one.one.one 1.0.0.1#one.one.one.one
DNSOverTLS=yes
DNSSEC=yes
Перезапусти службу:
sudo systemctl restart systemd-resolved
Проверь статус:
resolvectl status
В выводе должна быть строка: DNS over TLS: yes. Если нет — проверь версию systemd (нужна 239+):
systemd --version
Проверка DNS over TLS
Через браузер
Открой:
https://1.1.1.1/help
Увидишь блок с проверкой подключения. Для DoT с Cloudflare покажет «Connected to 1.1.1.1» и тип соединения.
Через kdig (Linux / macOS)
kdig умеет делать DoT-запросы напрямую:
kdig -d @1.1.1.1 +tls-ca +tls-host=one.one.one.one example.com
В выводе ищи строку: TLS connected. Если видишь — DoT работает на уровне протокола.
Через openssl
Проверь сам TLS-хендшейк с DoT-сервером:
openssl s_client -connect 1.1.1.1:853 -servername one.one.one.one
Если соединение установилось и получил сертификат — сервер доступен по DoT. Это быстрая проверка без настройки клиента.
Wireshark
Запусти захват. Фильтр:
udp.port == 53 || tcp.port == 53
При правильно настроенном DoT этот фильтр не поймает ничего. Весь DNS-трафик уйдёт на порт 853 в зашифрованном виде.
Безопасность
DoT шифрует транспорт, но не защищает от всего. Несколько вещей которые стоит знать.
DNSSEC и DoT работают вместе, но независимо. DNSSEC проверяет подпись DNS-ответа — гарантирует что ответ не подделан. DoT шифрует сам запрос в транспорте. Включай оба если сервер поддерживает.
SNI всё ещё виден. При TLS-соединении с сайтом имя домена передаётся в открытом виде в поле Server Name Indication. DoT скрывает DNS-запрос, но само соединение с сайтом может быть видно через SNI. Решается через ECH (Encrypted Client Hello) — поддерживается Cloudflare и Firefox.
Firewall для DoT прост: разреши исходящий TCP на порт 853 к нужным серверам, всё остальное на 853 — блокируй. На роутере это делается одним правилом.
Troubleshooting
Ошибка: Android показывает «Не удалось подключиться к частному DNS-серверу»
Причина: hostname неверный, или сервер недоступен, или порт 853 заблокирован провайдером.
Решение: убедись что вводишь hostname, а не IP. Проверь с другой сетью (мобильный интернет вместо Wi-Fi). Если дома Wi-Fi от провайдера, который агрессивно фильтрует — попробуй через мобильные данные. Если там работает — провайдер блокирует порт 853. Переходи на DoH.
Ошибка: dnscrypt-proxy запустился, но DNS не резолвится
Причина: другой процесс занял порт 53, или неверный конфиг.
Проверь кто занимает порт:
netstat -ano | findstr :53
Найди PID и проверь что это dnscrypt-proxy, а не DNS Client Windows:
Get-Process -Id [PID]
Если DNS Client Windows занял порт — отключи его:
Set-Service -Name Dnscache -StartupType Disabled
Stop-Service -Name Dnscache
Ошибка: Keenetic не применяет DoT после сохранения
Причина: прошивка устарела или компонент не установлен.
Проверь версию прошивки в Система — Общие сведения. Если ниже 3.1 — обнови. После обновления повтори настройку DoT заново — обновление может сбросить параметры DNS.
Ошибка: Nulls Proxy с DoT увеличивает пинг в игре
Причина: DoT добавляет задержку на TLS-хендшейк при первом DNS-запросе к новому домену.
Решение: это разовая задержка при первом подключении. Последующие запросы к тому же домену идут из кэша. Если пинг стабильно высокий — попробуй сервер Cloudflare (one.one.one.one), у него минимальные задержки среди публичных DoT-серверов. Или переключись на сервер ближайшего региона в настройках прокси.
Ошибка: systemd-resolved на Linux не поднимает DoT
Причина: старая версия systemd (нужна 239+) или синтаксическая ошибка в конфиге.
systemd-resolve --status | grep "DNS over TLS"
Если строки нет — проверь версию:
systemd --version
На Ubuntu 18.04 systemd 237 — DoT не поддерживается. Обнови систему или используй dnscrypt-proxy.
Альтернативные решения
AdGuard Home — DoT + блокировка рекламы на роутере
Если не хочешь зависеть от внешних DoT-серверов — поставь AdGuard Home локально. Он сам выступает DoT-клиентом к вышестоящему серверу и одновременно блокирует рекламу на уровне DNS для всей сети.
docker run --name adguardhome \
-v /opt/adguardhome/work:/opt/adguardhome/work \
-v /opt/adguardhome/conf:/opt/adguardhome/conf \
-p 53:53/tcp -p 53:53/udp \
-p 3000:3000/tcp \
adguard/adguardhome
В настройках апстрима укажи DoT-сервер:
tls://one.one.one.one
Stubby — минималистичный DoT-резолвер
Stubby — от разработчиков getdns. Делает ровно одно: пересылает DNS через DoT. Никаких лишних функций. Для тех кто хочет минимальный доверенный код в сетевом стеке.
sudo apt install stubby
Конфиг /etc/stubby/stubby.yml — укажи серверы:
upstream_recursive_servers:
- address_data: 1.1.1.1
tls_auth_name: "one.one.one.one"
- address_data: 1.0.0.1
tls_auth_name: "one.one.one.one"
sudo systemctl enable stubby
sudo systemctl start stubby
Профилактика
На Android после обновления системы зайди в Настройки — Частный DNS и убедись что hostname на месте. Крупные обновления иногда сбрасывают сетевые настройки к дефолтным. Проверка занимает 10 секунд.
Если используешь dnscrypt-proxy на Windows — добавь его в автозагрузку и настрой мониторинг службы. При падении службы DNS просто перестанет работать — это заметно сразу. Но лучше знать об этом до того как позвонит пользователь.
На Keenetic после обновления прошивки — проверяй настройки DNS. Команда для быстрой проверки:
show ip dns proxy
FAQ
Почему Android не подключается к частному DNS-серверу в офисной сети?
Корпоративные сети часто блокируют порт 853 на уровне firewall. DoT не работает там, где закрыт этот порт. В такой ситуации помогает DoH — он идёт через 443-й порт, который заблокировать без последствий невозможно. Подробнее о настройке DoH читай в статье про DNS over HTTPS.
Как проверить что DNS over TLS реально работает, а не просто включён?
Три способа по возрастанию надёжности. Первый: открой https://1.1.1.1/help и посмотри статус. Второй: запусти kdig с флагом +tls и проверь вывод. Третий: запусти Wireshark с фильтром udp.port == 53 — при работающем DoT этот фильтр не должен поймать ни одного пакета.
Что если DoT-сервер недоступен — Android откатится на обычный DNS?
Нет. Android при недоступном DoT-сервере не откатывается на обычный DNS — он просто не резолвит имена. Это правильное поведение с точки зрения безопасности: лучше потерять подключение, чем незаметно отправить DNS в открытом виде. Чтобы не остаться без интернета — указывай два сервера если их поддерживает интерфейс, или выбирай надёжные серверы с высоким uptime.
Nulls Proxy DoT влияет на весь трафик телефона или только на игры?
Только на трафик внутри туннеля Nulls Proxy. Приложение создаёт VPN-интерфейс и направляет через него только нужный игровой трафик. DNS остального трафика идёт через системный Частный DNS. Если хочешь DoT для всего телефона — настраивай Частный DNS в системных настройках Android, а Nulls Proxy использует свой независимо.
Чем DoT отличается от VPN с точки зрения провайдера?
VPN шифрует весь трафик. DoT шифрует только DNS-запросы. Провайдер видит: вот идёт зашифрованный трафик на порт 853 к адресу 1.1.1.1. Знает что это DNS. Не знает что ты спрашиваешь. Контент сайтов, объём трафика, IP назначения — всё это провайдер по-прежнему видит. DoT — не замена VPN, это один конкретный слой защиты.
Итог
DoT проще всего включить на Android через Частный DNS — встроено, нативно, без приложений. На Keenetic — один раз настроил на роутере, вся домашняя сеть прикрыта. На Windows нужен dnscrypt-proxy или переходи на DoH — там Windows 11 поддерживает нативно.
Nulls Proxy с DoT — нишевая штука для геймеров, которым важно чтобы провайдер не мешал DNS-запросам к игровым серверам. Работает, но это не основной сценарий использования DoT.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →



