DNS over HTTPS (DoH) — это протокол, который оборачивает DNS-запросы в зашифрованный HTTPS-трафик. Звучит красиво, работает… почти всегда. Но когда DoH ломается, разобраться в причинах бывает непросто: стек включает сеть, TLS, HTTP/2 и сам DNS — и любой из этих слоёв может устроить вам весёлый вечер.
Ошибка doh server connection error — один из самых частых симптомов. Она встречается на MikroTik RouterOS, в Linux-системах, браузерах и других окружениях, где DoH настраивается вручную. Если у вас DoH «просто не работает» — добро пожаловать, вы не одни 🙂
В этой статье разберём все основные типы ошибок, их причины, способы диагностики и практические решения. Особое внимание уделим MikroTik — он требует к себе особого подхода.
2. Что означает ошибка DoH Server Connection Error
DNS over HTTPS — это три технологии в одной: DNS (резолвинг имён), TLS (шифрование) и HTTP/2 (транспорт). Когда возникает doh server connection error, это значит, что где-то в этой цепочке произошёл сбой.
Возможные точки отказа:
- Сеть — нет маршрута до DoH-сервера, заблокирован провайдером или файрволом.
- TLS — проблемы с сертификатом, несинхронизированное время, неизвестный CA.
- DNS-резолвинг — устройство не может получить IP-адрес DoH-сервера при старте (bootstrap DNS).
- HTTP/2 — таймауты, потеря пакетов, ответ сервера не приходит вовремя.
Важно понимать: DoH-клиент сначала должен определить IP-адрес DoH-сервера по имени (например, cloudflare-dns.com). Этот первый шаг называется bootstrap DNS, и его сбой сразу порождает каскад ошибок.
3. Основные типы ошибок
3.1 doh server connection error network unreachable
Эта ошибка означает одно: пакет физически не может дойти до DoH-сервера. Устройство не знает, как туда добраться.
Причины:
- Нет маршрута по умолчанию (default route) или он указывает не туда.
- Неправильно настроен gateway — пакеты уходят в никуда.
- Файрвол блокирует исходящий HTTPS (порт 443) к внешним IP.
- Проблемы с физическим каналом или PPPoE/VPN-соединением.
Диагностика:
ping 1.1.1.1
traceroute 1.1.1.1
ip route show # Linux
3.2 doh server connection error resolving error
Resolving error — сбой на этапе bootstrap DNS. Клиент пытается получить IP-адрес DoH-сервера по имени (например, cloudflare-dns.com), но не может этого сделать.
Причины:
- Bootstrap DNS не задан или указывает на недоступный сервер.
- Конфликт DNS-настроек: система использует старый или нерабочий резолвер.
- Кривой upstream DNS, который не отвечает или возвращает NXDOMAIN.
- На MikroTik: DoH активирован, но нет резервного IP для первичного резолвинга.
Решение: прописать bootstrap DNS явно. На Linux — в конфигурации systemd-resolved или вашего DoH-клиента. На MikroTik — указать IP bootstrap-сервера напрямую в настройках.
3.3 doh server connection error ssl
SSL/TLS-ошибки — классика жанра. TLS handshake не прошёл, соединение не установлено.
Причины:
- Сертификат DoH-сервера не может быть проверен: отсутствует root CA.
- Неправильное системное время — сертификат «ещё не действует» или уже истёк.
- TLS handshake fail из-за устаревших cipher suites на старом оборудовании.
- На MikroTik:
verify-doh-cert=yes, но корневые сертификаты не загружены.
Самая частая причина на MikroTik: устройство работает с завода без root CA. Вы включаете DoH с verify-doh-cert=yes — и получаете SSL error, потому что роутер не доверяет никому в цепочке сертификатов.
3.4 doh server connection error timeout waiting data
Timeout — ситуация, когда соединение формально установилось, но данные не пришли в отведённое время.
Причины:
- Провайдер блокирует или троттлит трафик к популярным DoH-серверам.
- Высокий packet loss на маршруте до сервера.
- DoH-сервер перегружен или медленно отвечает.
- Слишком маленький таймаут в настройках клиента.
В случае timeout стоит первым делом сменить DoH-сервер и проверить latency с помощью ping или curl.
4. MikroTik: doh server connection error — особый случай
RouterOS — отличная платформа, но DoH там потребует чуть больше внимания, чем обычно. Ну конечно, всё работало… пока не включили DoH 😄
Типичные проблемы MikroTik и DoH:
- Отсутствие root CA: RouterOS по умолчанию не содержит цепочку доверенных центров сертификации.
- Проблемы со временем: если NTP не настроен, системные часы сбиты — TLS-сертификаты будут невалидны.
- Правила firewall: исходящий трафик по порту 443 к внешним DNS-серверам может быть заблокирован.
- Маршрутизация: в сложных топологиях пакеты DoH могут уходить не через тот интерфейс.
Настройка DoH на MikroTik:
/ip dns set use-doh-server=https://cloudflare-dns.com/dns-query verify-doh-cert=yes
Диагностика:
/ip dns print
/log print
/tool fetch url=https://cloudflare-dns.com/dns-query
Загрузка корневых сертификатов (обязательно при verify-doh-cert=yes):
/certificate import file-name=cacert.pem
Если сертификаты недоступны для скачивания, временно можно использовать verify-doh-cert=no — но это снижает безопасность и подходит только для тестирования.
5. Практические примеры: проблема → диагностика → решение
Пример 1. MikroTik не резолвит DoH (SSL error)
Проблема: после включения DoH на MikroTik в логах появляется SSL error, интернет перестаёт работать.
Диагностика:
/log print where topics~"dns"
/certificate print
В логах ошибка вида: doh server connection error ssl — значит, сертификат не прошёл проверку.
Решение:
- Убедиться, что системное время корректно:
/system clock print - Настроить NTP:
/system ntp client set enabled=yes servers=pool.ntp.org - Скачать cacert.pem с curl.se/ca/cacert.pem и импортировать:
/certificate import file-name=cacert.pem - Повторно применить настройку DoH с
verify-doh-cert=yes.
Пример 2. Network unreachable — нет маршрута
Проблема: doh server connection error network unreachable сразу после перезагрузки роутера.
Диагностика:
ping 1.1.1.1 # Linux/Windows
/tool ping 1.1.1.1 # MikroTik
/ip route print # MikroTik
Если пинг не проходит — проблема в маршрутизации, не в DoH.
Решение:
- Проверить наличие default route: должен быть маршрут
0.0.0.0/0. - Убедиться, что WAN-интерфейс поднят и получил IP.
- Проверить firewall: нет ли правила, блокирующего output на порт 443.
Пример 3. SSL error из-за неправильного времени
Проблема: DoH работал, после отключения питания перестал — ошибка doh server connection error ssl.
Диагностика:
date # Linux
/system clock print # MikroTik
openssl s_client -connect cloudflare-dns.com:443
Если дата в прошлом или будущем — TLS-сертификаты будут невалидны.
Решение:
- Настроить NTP-синхронизацию.
- На MikroTik:
/system ntp client set enabled=yes primary-ntp=pool.ntp.org - После синхронизации времени DoH обычно начинает работать без дополнительных действий.
Пример 4. Timeout waiting data — провайдер блокирует
Проблема: doh server connection error timeout waiting data на Cloudflare DNS, но к другим серверам подключение идёт нормально.
Диагностика:
curl -v --max-time 5 https://cloudflare-dns.com/dns-query
curl -v --max-time 5 https://dns.google/dns-query
Если один сервер таймаутит, а другой отвечает — провайдер блокирует конкретный endpoint.
Решение:
- Сменить DoH-сервер: попробовать Google (
dns.google) или Quad9 (dns.quad9.net). - Использовать DoH по IP вместо имени хоста, если провайдер блокирует только DNS-запросы.
- Рассмотреть использование VPN или DoT как альтернативы.
Пример 5. Resolving error — не работает bootstrap DNS
Проблема: doh server connection error resolving error при старте системы, хотя сеть доступна.
Диагностика:
dig cloudflare-dns.com @8.8.8.8 # Linux
/tool dns-lookup cloudflare-dns.com server=8.8.8.8 # MikroTik
Если DNS по 8.8.8.8 работает, а системный — нет, проблема в bootstrap.
Решение:
- Прописать bootstrap DNS явно в настройках DoH-клиента.
- На MikroTik:
/ip dns set servers=1.1.1.1— это позволит резолвить имя DoH-сервера при старте. - Добавить статическую запись для DoH-сервера как fallback.
6. Диагностика: от простого к сложному
Универсальные команды (Linux / macOS)
Проверка доступности сети:
ping 1.1.1.1
traceroute 1.1.1.1
Проверка TLS:
openssl s_client -connect cloudflare-dns.com:443 -showcerts
Полный тест DoH-запроса:
curl -v -H 'accept: application/dns-json' \
'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Проверка срока действия сертификата:
echo | openssl s_client -connect cloudflare-dns.com:443 2>/dev/null \
| openssl x509 -noout -dates
Команды MikroTik
Статус DNS и DoH:
/ip dns print
Логи, связанные с DNS:
/log print where topics~"dns"
Тест HTTP-запроса (аналог curl):
/tool fetch url=https://cloudflare-dns.com/dns-query mode=https
Проверка маршрутизации:
/ip route print
/tool traceroute 1.1.1.1
Проверка сертификатов:
/certificate print
7. Лучшие DoH-серверы
Не все DoH-серверы одинаково полезны — разные провайдеры, разная latency, разные политики логирования.
Cloudflare — 1.1.1.1
Endpoint: https://cloudflare-dns.com/dns-query
- Очень быстрый, низкая latency по всему миру.
- Политика: не передаёт данные рекламным сетям, логи удаляются через 24 часа.
- Поддерживает DNS over HTTPS и DNS over TLS.
Google — 8.8.8.8 / 8.8.4.4
Endpoint: https://dns.google/dns-query
- Отличная доступность, хорошо работает в корпоративных сетях.
- Логирует запросы согласно политике конфиденциальности Google.
- Хороший вариант, если Cloudflare заблокирован провайдером.
Quad9 — 9.9.9.9
Endpoint: https://dns.quad9.net/dns-query
- Фокус на безопасности: блокирует вредоносные домены по базе данных угроз.
- Не логирует IP-адреса пользователей.
- Хорош для сред, где важна защита от фишинга и малвари.
Совет: держите под рукой несколько DoH-серверов. Если один недоступен (провайдер, технические работы), другой подхватит.
8. Вывод
DoH — это не магия и не серебряная пуля. Это просто стек технологий: DNS поверх TLS поверх HTTP/2. А значит, каждый из слоёв может сломаться по собственным причинам.
90% всех проблем укладываются в четыре сценария:
- Сеть не доходит — проверяй маршруты и файрвол.
- TLS не устанавливается — проверяй время и сертификаты.
- Bootstrap не работает — прописывай явный резолвер.
- Таймаут — меняй DoH-сервер или смотри на провайдера.
MikroTik требует особого внимания: убедитесь, что NTP настроен, root CA импортированы, а параметры use-doh-server и verify-doh-cert выставлены корректно. Без этого даже правильно написанная конфигурация не заработает.
И главное: doh server connection error — это не приговор. Это просто сообщение от стека, которое говорит: «где-то что-то пошло не так». Диагностируй послойно, и найдёшь причину быстрее, чем думаешь.
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.
Подписаться на IT-Аптеку →



