"Быстрый
</p>
<ul>
<li><strong>Windows 11</strong> — Параметры — Сеть и Интернет — свойства подключения — DNS вручную (1.1.1.1) — выбери "Только зашифрованное (DoH)"</li>
<li><strong>Chrome</strong> — chrome://settings/security — "Использовать безопасный DNS" — включи и выбери провайдера явно</li>
<li><strong>Firefox</strong> — about:config — network.trr.mode = 3, network.trr.uri = https://cloudflare-dns.com/dns-query</li>
<li><strong>Keenetic</strong> — Система — установи компонент "DNS-over-HTTPS прокси" — Интернет — <a class="wpil_keyword_link" title="DNS" href="https://it-apteka.com/tag/dns/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2306">DNS</a> — переключи на DoH</li>
<li><strong><a class="wpil_keyword_link" title="Windows Server" href="https://it-apteka.com/category/windows-server/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2307">Windows</a> 10</strong> нативно не поддерживает DoH — используй dnscrypt-proxy или настрой браузер</li>
</ul>
<p>
<h2>Что происходит с твоими DNS-запросами прямо сейчас</h2>
<p>DNS over HTTPS настройка нужна потому, что прямо сейчас твой компьютер сливает список сайтов провайдеру. Открываешь браузер, вводишь адрес — до того как загрузится первый байт страницы, компьютер отправляет DNS-запрос: «какой IP у этого домена?». Запрос летит в открытом тексте на порт 53. Провайдер его видит. Системный администратор на работе — видит. Любой в одной <a class="wpil_keyword_link" title="Сети" href="https://it-apteka.com/category/networks/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2304">сети</a> с тобой в кафе — тоже.</p>
<p>HTTPS шифрует содержимое страниц. Но DNS-запрос уходит ещё до установки HTTPS-соединения. Вот здесь и живёт дыра в приватности, которую закрывает DNS over HTTPS.</p>
<p>DoH оборачивает запросы в HTTPS-туннель на порт 443 — тот же, что у обычного веб-трафика. Провайдер видит соединение с сервером Cloudflare или Google. Какие домены ты резолвишь — нет.</p>
<p>За 5-10 минут настройки. Без платного софта.</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Браузер"] --> B["Обычный DNS порт 53"]
A --> C["DNS over HTTPS порт 443"]
B --> D["Открытый текст - виден провайдеру"]
C --> E["HTTPS туннель - зашифровано"]
E --> F["DoH-сервер Cloudflare / Google / Quad9"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#991b1b
style C fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style D fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#991b1b
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style F fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
</pre>
<h2>Что тебе понадобится и что будет в статье</h2>
<p>Разберём <a title="GLPI установка и настройка: HTTPS, LDAP, inventory, заявки и GLPI Agent" href="https://it-apteka.com/glpi-ustanovka-i-nastrojka-https-ldap-inventory-zajavki-i-glpi-agent/" target="_blank" rel="noopener" data-wpil-monitor-id="2310">настройку DNS over HTTPS</a> на всех основных платформах: Windows 11 нативно, Windows 10 через dnscrypt-proxy, Chrome, Firefox, Opera, роутер Keenetic. Плюс Android и iOS вкратце, подробный разбор DoH-провайдеров, корпоративные сценарии, troubleshooting типичных ошибок и несколько способов проверить что DoH реально работает, а не просто «вроде включён».</p>
<p>Статья структурирована по принципу «проблема — решение — детали». Быстрый ответ в начале. Подробности дальше. Можешь остановиться после нужного раздела — каждый самодостаточен.</p>
<p>Структура статьи по платформам: Windows 11 нативный DoH, Windows 10 через dnscrypt-proxy, Chrome, Firefox, Opera, Edge, роутер Keenetic для всей домашней сети. Плюс Android, iOS, подробное сравнение DoH-провайдеров, корпоративные сценарии, troubleshooting и <a class="wpil_keyword_link" title="Мониторинг" href="https://it-apteka.com/category/monitoring/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2300">мониторинг</a>.</p>
<p>Каждый раздел самодостаточен. Можешь прыгнуть прямо к нужной платформе — не нужно читать всё с начала. Если что-то не заработало — смотри секцию Troubleshooting или чек-лист ошибок перед ней.</p>
<p>Что нужно заранее:</p>
<ul>
<li>Права <a title="Ansible для системного администратора" href="https://it-apteka.com/ansible-dlja-sistemnogo-administratora/" target="_blank" rel="noopener" data-wpil-monitor-id="2311">администратора на Windows — для системных</a> настроек</li>
<li>Доступ в веб-интерфейс роутера — для Keenetic</li>
<li>10 минут на основную настройку</li>
<li>Сторонний платный софт не нужен ни для одного из описанных способов</li>
</ul>
<p>Единственное исключение: Windows 10 для системного DoH потребует dnscrypt-proxy — бесплатная open source утилита с GitHub.</p>
<h2>Какой способ настройки выбрать: быстрый выбор</h2>
<p>Четыре сценария — четыре ответа без лишних слов.</p>
<p><strong>Сценарий 1: хочу DoH только в браузере, быстро, без прав администратора.</strong> Открой настройки Chrome, Firefox или Opera — включи безопасный DNS с Cloudflare. Готово. Работает для браузера, не закрывает системный DNS.</p>
<p><strong>Сценарий 2: хочу DoH для всей системы на Windows 11.</strong> Параметры — Сеть и Интернет — свойства адаптера — DNS вручную 1.1.1.1 — только зашифрованное. 5 минут, нужны права администратора. Закрывает DNS от всех программ.</p>
<p><strong>Сценарий 3: Windows 10, хочу DoH для всей системы.</strong> Скачай dnscrypt-proxy с GitHub, распакуй, установи как службу, пропиши 127.0.0.1 как DNS в настройках адаптера. 15-20 минут, нужны права администратора.</p>
<p><strong>Сценарий 4: хочу DoH для всех устройств в <a title="10 ошибок при настройке домашнего Wi-Fi, из-за которых тормозит интернет" href="https://it-apteka.com/10-oshibok-pri-nastrojke-domashnego-wi-fi-iz-za-kotoryh-tormozit-internet/" target="_blank" rel="noopener" data-wpil-monitor-id="2312">домашней сети без настройки</a> каждого устройства.</strong> Keenetic с NDMS 3.1+, установи компонент DoH прокси, настрой Cloudflare URL. Один раз — все устройства получают DoH автоматически. Включая смартфоны и Smart TV.</p>
<p>Оптимальная комбинация для дома: DoH на Keenetic (все устройства) + Firefox с network.trr.mode=3 (Firefox игнорирует системный DNS, нужно настроить явно).</p>
<h3>Сколько устройств в сети и где настраивать DoH</h3>
<p>Одно устройство — Windows 11 или браузер. Быстро, просто, без роутерного доступа.</p>
<p>2-4 устройства — роутер Keenetic если есть поддержка DoH (NDMS 3.1+). Настроил один раз — все получают. Плюс Firefox на каждом настроить отдельно: он игнорирует роутерный DNS.</p>
<p>5+ устройств, IoT, Smart TV, гости — только роутер. Настраивать каждое устройство отдельно невозможно и бессмысленно. <a title="MikroTik hAP: обзор всех моделей, характеристики и настройка роутера" href="https://it-apteka.com/mikrotik-hap-obzor-vseh-modelej-harakteristiki-i-nastrojka-routera/" target="_blank" rel="noopener" data-wpil-monitor-id="2318">Роутер закрывает всю сеть одной настройкой</a>. На Keenetic это занимает 10 минут включая установку компонента.</p>
<p>Корпоративная сеть или рабочая группа — корпоративный DoH-сервер (см. соответствующий раздел). Или блокировка внешнего DoH и управление через групповые политики. Зависит от политики безопасности.</p>
<h2>Три минуты диагностики: проверь свою ситуацию прямо сейчас</h2>
<p>Прежде чем читать дальше — открой в браузере:</p>
<pre><code class="language-text">
https://1.1.1.1/help
</code></pre>
<p>Если DoH: No — у тебя открытый DNS. Провайдер видит что ты читаешь. Эта статья объяснит как исправить.</p>
<p>Если DoH: Yes — DoH уже работает, возможно через автоматическую настройку браузера. Но это проверяет только конкретный браузер. Другие программы на компьютере — мессенджеры, игровые клиенты, обновления — могут всё ещё использовать незашифрованный DNS. Читай раздел про системную настройку.</p>
<p>Если страница не загружается — возможно Cloudflare заблокирован провайдером. Попробуй Google DNS check: открой https://dns.google/resolve?name=example.com&type=A. Если ответил JSON — Google DoH доступен.</p>
<h2>Откуда берётся проблема: почему обычный DNS небезопасен</h2>
<p>DNS придумали в 1983 году. Тогда интернет состоял из нескольких университетских сетей и о приватности никто не думал. DNS работает на UDP порт 53 — без шифрования, без аутентификации. Любой кто видит твой трафик — видит и список сайтов, которые ты посещаешь.</p>
<p>С тех пор ничего принципиально не изменилось в базовом протоколе. Провайдеры строят логи DNS-запросов — это данные для таргетированной рекламы, инструмент для выполнения требований регуляторов и просто побочный эффект того как работает маршрутизация. Добавь к этому публичные точки Wi-Fi, где в одной подсети может сидеть кто угодно с Wireshark.</p>
<p>HTTPS решил проблему содержимого страниц. DNS остался открытым. DoH закрывает этот пробел — и делает это элегантно: прячет DNS внутрь обычного HTTPS-трафика.</p>
<p>Важно понимать что именно DoH скрывает: сами DNS-запросы — то есть список доменов которые ты резолвишь. Это не полная анонимность. IP-адрес назначения и SNI при установке TLS-соединения провайдер всё ещё видит. Но убрать самый дешёвый способ наблюдения за трафиком — уже хорошо.</p>
<h3>Как DoH работает изнутри</h3>
<p>Обычный DNS-запрос выглядит так: UDP-пакет летит на порт 53 с открытым текстом «дай мне IP для example.com». Ответ — тоже открытый текст. Без шифрования, без проверки что отвечает именно нужный сервер. На этом строятся DNS-спуфинг и DNS-отравление кэша.</p>
<p>DoH упаковывает DNS-запрос иначе. Запрос кодируется либо в DNS wireformat (application/dns-message) через POST, либо в JSON (application/dns-json) через GET. Всё это идёт по обычному HTTPS-соединению на порт 443. TLS обеспечивает шифрование и аутентификацию сервера — нельзя подменить ответ как при классическом DNS-спуфинге.</p>
<p>DoH-сервер Cloudflare на 1.1.1.1 выглядит для провайдера как обычный веб-сервер на 443-м порту. Единственный способ отличить DoH-трафик от HTTPS — это DPI (Deep Packet Inspection) по SNI или анализ паттернов запросов. Без DPI — невозможно.</p>
<p>Технически POST-запрос выглядит так:</p>
<pre><code class="language-text">
POST /dns-query HTTP/2
Host: cloudflare-dns.com
Content-Type: application/dns-message
Accept: application/dns-message
[бинарные данные DNS-запроса в wireformat]
</code></pre>
<p>Для отладки удобнее JSON API через GET:</p>
<pre><code class="language-bash">
curl -H 'accept: application/dns-json' \
'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
</code></pre>
<p>Ответ JSON:</p>
<pre><code class="language-text">
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [{"name": "example.com.", "type": 1}],
"Answer": [
{"name": "example.com.", "type": 1, "TTL": 86400, "data": "93.184.216.34"}
]
}
</code></pre>
<p>Поле AD: true — DNSSEC-валидация прошла. Status: 0 — запрос успешен (NOERROR). Это стандартный RFC 8484 — спецификация DNS over HTTPS, опубликованная в 2018 году.</p>
<h3>Угрозы которые закрывает DoH</h3>
<p>Без DoH против тебя работает несколько векторов атаки. Разберём каждый коротко.</p>
<p>Пассивный перехват: провайдер или кто угодно на пути трафика логирует DNS-запросы. Получает полный список сайтов которые ты посещаешь, с таймстампами. Продаёт рекламщикам или отдаёт по требованию. DoH закрывает полностью.</p>
<p>DNS-спуфинг: атакующий в той же сети перехватывает твой UDP 53-й запрос и отвечает поддельным IP. Ты думаешь что идёшь на bank.example.com — а попадаешь на клон. DoH с TLS-аутентификацией сервера делает этот вектор нерабочим — нельзя подделать ответ от сервера с валидным сертификатом.</p>
<p>DNS-кэш отравление: атакующий подсовывает поддельные записи в кэш DNS-сервера провайдера. Все пользователи этого сервера получают неправильный IP. DoH + DNSSEC закрывает этот вектор: DNSSEC подписывает DNS-записи криптографически.</p>
<p>Блокировка по DNS: провайдер блокирует сайты на уровне DNS — возвращает пустой ответ или IP-адрес блокировочной страницы. DoH использует сторонний сервер который не знает о блокировках провайдера.</p>
<p>Последнее — отдельная тема со своими нюансами и юридическими аспектами. Просто фиксируем факт.</p>
<h2>DoH vs DoT: в чём разница и что выбрать</h2>
<p><a title="DNS over TLS: настройка DoT на Android, Keenetic и в Nulls Proxy" href="https://it-apteka.com/dns-over-tls-nastrojka-dot-na-android-keenetic-i-v-nulls-proxy/" target="_blank" rel="noopener" data-wpil-monitor-id="2308">DNS over TLS</a> (DoT) тоже шифрует DNS-запросы — но работает на отдельном порту 853. Его легко заблокировать: закрываешь один порт на файрволе — DoT умер. DoH идёт по 443-му вместе со всем HTTPS-трафиком. Чтобы заблокировать DoH, провайдеру придётся заблокировать весь HTTPS — это ядерный вариант, который никто не применяет.</p>
<p>Есть ещё DNS over QUIC (DoQ) — следующее поколение, работает на UDP с QUIC-транспортом. Пока экспериментальный, поддержка ограничена.</p>
<p>Для домашнего пользователя DoH удобнее и живучее. Для корпоративной сети где нужен централизованный контроль DNS-трафика — DoT управляемее: отдельный порт проще мониторить и фильтровать.</p>
<table>
<thead>
<tr>
<th>Параметр</th>
<th>DNS over HTTPS (DoH)</th>
<th>DNS over TLS (DoT)</th>
<th>Обычный DNS</th>
</tr>
</thead>
<tbody>
<tr>
<td>Порт</td>
<td>443</td>
<td>853</td>
<td>53</td>
</tr>
<tr>
<td>Шифрование</td>
<td>HTTPS / TLS</td>
<td>TLS</td>
<td>Нет</td>
</tr>
<tr>
<td>Сложность блокировки</td>
<td>Высокая</td>
<td>Средняя</td>
<td>Низкая</td>
</tr>
<tr>
<td>Нативная поддержка Windows</td>
<td>Windows 11</td>
<td>Только сторонний софт</td>
<td>Все версии</td>
</tr>
<tr>
<td>Поддержка браузерами</td>
<td>Chrome, Firefox, Opera, Edge</td>
<td>Нет нативной</td>
<td>Нативно</td>
</tr>
<tr>
<td>Задержка Cloudflare (медиана)</td>
<td>~11 мс</td>
<td>~20-30 мс</td>
<td>50-150 мс провайдер</td>
</tr>
</tbody>
</table>
<h2>Какой DoH-сервер выбрать</h2>
<p>Когда включаешь DoH — ты не избавляешься от посредника, ты его меняешь. Вместо провайдера твои DNS-запросы видит DoH-сервер. Разница в том, кто это, где хранятся данные и по каким законам.</p>
<table>
<thead>
<tr>
<th>Провайдер</th>
<th>DoH URL</th>
<th>IP-адреса</th>
<th>Логи</th>
<th>Фильтрация</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cloudflare</td>
<td>https://cloudflare-dns.com/dns-query</td>
<td>1.1.1.1 / 1.0.0.1</td>
<td>Не хранит постоянно</td>
<td>Нет</td>
</tr>
<tr>
<td>Google</td>
<td>https://dns.google/dns-query</td>
<td>8.8.8.8 / 8.8.4.4</td>
<td>Хранит временно</td>
<td>Нет</td>
</tr>
<tr>
<td>Quad9</td>
<td>https://dns.quad9.net/dns-query</td>
<td>9.9.9.9</td>
<td>Не хранит</td>
<td>Малварь и фишинг</td>
</tr>
<tr>
<td>AdGuard</td>
<td>https://dns.adguard.com/dns-query</td>
<td>94.140.14.14</td>
<td>Не хранит</td>
<td>Реклама и трекеры</td>
</tr>
<tr>
<td>NextDNS</td>
<td>https://dns.nextdns.io/ВАШ_ID</td>
<td>Персональный</td>
<td>Опционально</td>
<td>Кастомные списки</td>
</tr>
<tr>
<td>Яндекс (базовый)</td>
<td>https://common.dot.dns.yandex.net/dns-query</td>
<td>77.88.8.8 / 77.88.8.1</td>
<td>Хранит</td>
<td>Нет</td>
</tr>
</tbody>
</table>
<p>Cloudflare — первый выбор для большинства. Самые низкие задержки среди публичных DoH-серверов, серверы по всему миру, аудит политики приватности проводил KPMG. Google стабилен и быстр, но данные обрабатываются внутри Google-экосистемы. Quad9 — если нужна блокировка вредоносных доменов на уровне DNS без отдельного Pi-hole. Яндекс — российская юрисдикция, быстрые серверы на территории РФ, логи хранятся.</p>
<h2>Подробное сравнение DoH-провайдеров: что за каждым стоит</h2>
<p>Выбор DoH-сервера — это выбор кому доверяешь свои DNS-запросы. Разберём основных провайдеров подробнее.</p>
<h3>Cloudflare 1.1.1.1</h3>
<p>Cloudflare запустил 1.1.1.1 в 2018 году. Аудит политики приватности проводил KPMG — независимая проверка что Cloudflare реально не хранит запросы дольше 25 часов и не использует их для рекламного профилирования. Для параноиков есть аудиторский отчёт на сайте Cloudflare.</p>
<p>Инфраструктура Cloudflare — одна из крупнейших CDN в мире. Серверы есть практически в каждой крупной точке обмена трафиком. Для большинства пользователей в России — задержка 5-15 мс. Это быстрее большинства провайдерских DNS.</p>
<p>У Cloudflare есть три варианта DoH:</p>
<pre><code class="language-text">
https://cloudflare-dns.com/dns-query - базовый, без фильтрации
https://security.cloudflare-dns.com/dns-query - блокирует малварь и фишинг
https://family.cloudflare-dns.com/dns-query - блокирует малварь + взрослый контент
</code></pre>
<p>IP-адреса для 1.1.1.1 также дают разные уровни фильтрации: 1.1.1.2 (только малварь), 1.1.1.3 (малварь + взрослый контент).</p>
<h3>Google Public DNS</h3>
<p>Google DNS работает с 2009 года. Самый известный публичный DNS в мире. Стабильность — исключительная, downtime практически нулевой. Инфраструктура Google охватывает весь мир.</p>
<p>Политика приватности: Google хранит полные IP-адреса запросов около 24-48 часов «в целях диагностики». Анонимизированные данные — дольше. Для рекламного профилирования DNS-данные не используются, согласно политике. Но Google — рекламная компания, и это стоит держать в голове при выборе.</p>
<p>Для пользователей которые и так используют Chrome, Android и Gmail — дополнительного риска от Google DNS немного: Google уже знает о тебе больше чем из DNS-логов.</p>
<h3>Quad9</h3>
<p>Quad9 — некоммерческий провайдер, зарегистрирован в Швейцарии. Финансируется IBM Security и рядом других организаций. Швейцарская юрисдикция — строгие законы о приватности данных.</p>
<p>Ключевая особенность: Quad9 блокирует вредоносные домены используя списки от 20+ организаций по кибербезопасности. IBM X-Force, Anti-Phishing Working Group, Abuse.ch и другие. Домены, распространяющие малварь, командные серверы ботнетов, фишинговые сайты — Quad9 блокирует их на уровне DNS.</p>
<p>Для домашней сети с детьми или если нужна дополнительная защита без отдельного Pi-hole — Quad9 хороший выбор. Лоного срабатываний на легитимные сайты — Quad9 обновляет списки несколько раз в день.</p>
<h3>AdGuard DNS</h3>
<p>AdGuard DNS — продукт компании AdGuard, известной своим блокировщиком рекламы. Серверы в разных регионах, включая Россию.</p>
<p>Базовый вариант (94.140.14.14) блокирует рекламу и трекеры на уровне DNS — не только для браузеров, но для всех приложений. Если на телефоне стоит AdGuard DNS — реклама в мобильных приложениях тоже блокируется (в пределах DNS-блокировки).</p>
<p>Есть Family Protection вариант с блокировкой взрослого контента: 94.140.14.15. И вариант без фильтрации для тех кто хочет только шифрование: 94.140.15.15.</p>
<h3>NextDNS — персональный DoH</h3>
<p>NextDNS отличается от остальных: ты получаешь персональный DoH-эндпоинт с уникальным ID. Через веб-интерфейс настраиваешь списки блокировки (из нескольких десятков готовых — от рекламы до трекеров разных категорий), белые списки, родительский контроль по времени суток.</p>
<p>Статистика показывает все DNS-запросы по устройствам — видишь что именно запрашивает каждое устройство в доме. Телевизор Samsung ходит к серверам аналитики 200 раз в день? Видно и блокируется одной кнопкой.</p>
<p>Бесплатный план — 300 000 запросов в месяц. Среднестатистическая семья из 4 человек с IoT-устройствами укладывается в это с запасом. При превышении лимита DoH продолжает работать, но без фильтрации — до следующего месяца.</p>
<p>Регистрация: nextdns.io. После регистрации получаешь ID вида abc123. URL будет: https://dns.nextdns.io/abc123</p>
<h2>Системные требования</h2>
<p>На момент публикации актуальны: Windows 11 23H2, Chrome 124, Firefox 126, Opera 109, Keenetic NDMS 3.10. Перед настройкой проверь актуальные релизы.</p>
<table>
<thead>
<tr>
<th>Платформа</th>
<th>Минимальная версия</th>
<th>Нативная поддержка DoH</th>
<th>Охват трафика</th>
</tr>
</thead>
<tbody>
<tr>
<td>Windows 11</td>
<td>Любая</td>
<td>Да, в параметрах сети</td>
<td>Вся система</td>
</tr>
<tr>
<td>Windows 10</td>
<td>20H1 (Preview)</td>
<td>Нет — только через dnscrypt-proxy</td>
<td>Вся система через прокси</td>
</tr>
<tr>
<td>Chrome</td>
<td>83+</td>
<td>Да</td>
<td>Только браузер</td>
</tr>
<tr>
<td>Firefox</td>
<td>62+</td>
<td>Да</td>
<td>Только браузер</td>
</tr>
<tr>
<td>Opera</td>
<td>70+</td>
<td>Да</td>
<td>Только браузер</td>
</tr>
<tr>
<td>Edge</td>
<td>85+</td>
<td>Да</td>
<td>Только браузер</td>
</tr>
<tr>
<td>Keenetic</td>
<td>NDMS 3.1+</td>
<td>Да, компонент DoH прокси</td>
<td>Вся домашняя сеть</td>
</tr>
<tr>
<td>Android</td>
<td>9 (Pie)</td>
<td>DNS over TLS нативно, DoH — через браузер</td>
<td>Зависит от способа</td>
</tr>
<tr>
<td>iOS</td>
<td>14+</td>
<td>Через профили конфигурации</td>
<td>Вся система</td>
</tr>
</tbody>
</table>
<h2>Порты и протоколы</h2>
<table>
<thead>
<tr>
<th>Протокол</th>
<th>Порт</th>
<th>Транспорт</th>
<th>Шифрование</th>
<th>Доступен снаружи</th>
</tr>
</thead>
<tbody>
<tr>
<td>DNS (обычный)</td>
<td>53</td>
<td>UDP / TCP</td>
<td>Нет</td>
<td>Да, открытый текст</td>
</tr>
<tr>
<td>DNS over TLS (DoT)</td>
<td>853</td>
<td>TCP</td>
<td>TLS</td>
<td>Да, легко блокируется</td>
</tr>
<tr>
<td>DNS over HTTPS (DoH)</td>
<td>443</td>
<td>TCP</td>
<td>HTTPS / TLS</td>
<td>Неотличим от HTTPS</td>
</tr>
<tr>
<td>DNS over QUIC (DoQ)</td>
<td>853</td>
<td>QUIC</td>
<td>TLS 1.3</td>
<td>Экспериментально</td>
</tr>
</tbody>
</table>
<h2>Как настроить DNS over HTTPS в Windows 11</h2>
<p>В Windows 11 DoH встроен нативно с самого начала. Настраивается через параметры сети без сторонних утилит. Работает на уровне всей системы — закрывает DNS-трафик от всех приложений, не только браузера.</p>
<h3>Разбор параметров DoH в Windows 11: что означает каждая настройка</h3>
<p>Когда ты выбираешь «Только зашифрованное (DNS over HTTPS)» — Windows устанавливает несколько внутренних параметров. Разберём что за ними стоит.</p>
<p>В Windows 11 три варианта шифрования DNS:</p>
<ul>
<li><strong>Без шифрования</strong> — обычный DNS на 53-й порт. Всё открыто.</li>
<li><strong>Предпочтительно зашифрованное</strong> — Windows сначала пробует DoH. Если DoH недоступен — откатывается на обычный DNS. Удобно для случаев когда DoH-сервер может быть недоступен, но минус — если DoH не работает, DNS продолжит работать незашифрованно без предупреждений.</li>
<li><strong>Только зашифрованное (DNS over HTTPS)</strong> — строгий режим. Если DoH недоступен — DNS не работает вообще. Максимальная защита, минимальная толерантность к сбоям.</li>
</ul>
<p>Какой выбрать: для домашнего использования — «Только зашифрованное». Интернет достаточно стабилен, DoH-серверы Cloudflare крайне редко падают. Для ноутбука который используется в разных сетях включая потенциально проблемные — «Предпочтительно зашифрованное» если хочешь чтобы DNS работал всегда.</p>
<p>Параметр AutoUpgrade в PowerShell-команде Add-DnsClientDohServerAddress означает: Windows автоматически обновит URL DoH-сервера если провайдер опубликует новый. Полезно для будущих изменений — ставь $True.</p>
<p>AllowFallbackToUdp $False — жёсткий запрет на откат к обычному UDP DNS 53. Именно этот параметр делает настройку «только зашифрованной». При $True — система откатится на обычный DNS при недоступности DoH-сервера.</p>
<h3>Как работает Windows DNS-резолвер в режиме DoH</h3>
<p>Когда настроен DoH в Windows 11, процесс резолвинга выглядит так:</p>
<ol>
<li>Приложение вызывает getaddrinfo() с именем домена</li>
<li>DNS Client Service (Dnscache) получает запрос</li>
<li>Проверяет локальный кэш — если есть свежая запись, отвечает сразу</li>
<li>Если нет — отправляет DoH-запрос на HTTPS-сервер (1.1.1.1 на порту 443)</li>
<li>Получает ответ, кэширует, возвращает приложению</li>
</ol>
<p>Весь этот процесс прозрачен для приложений. Они вызывают стандартные API, не зная что под капотом DNS-запросы идут через DoH. Именно поэтому системный DoH в Windows 11 закрывает трафик от всех программ — не только браузеров.</p>
<p>Проверить кэш DNS Windows:</p>
<pre><code class="language-powershell">
# Просмотр кэша
Get-DnsClientCache | Select-Object Entry, RecordType, TimeToLive, Data
# Очистка кэша (иногда нужно при диагностике)
Clear-DnsClientCache
</code></pre>
<p>После очистки кэша следующие DNS-запросы пойдут напрямую к DoH-серверу — удобно для отладки задержек.</p>
<h3>Шаг 1. Открой настройки сетевого адаптера</h3>
<p>Нажми Win + I. В открывшихся Параметрах перейди в раздел «Сеть и Интернет». Выбери своё подключение — Ethernet или Wi-Fi. Нажми «Свойства оборудования». Это другой экран, не просто «Свойства» подключения — ищи именно «Свойства оборудования».</p>
<h3>Шаг 2. Переключи DNS на ручное управление</h3>
<p>В разделе «Назначение DNS-сервера» нажми «Изменить». Переключи выпадающий список с «Автоматически (DHCP)» на «Вручную». Включи переключатель IPv4.</p>
<p>Введи адреса DoH-сервера. Для Cloudflare:</p>
<pre><code class="language-text">
Основной DNS: 1.1.1.1
Альтернативный DNS: 1.0.0.1
</code></pre>
<p>Для Google DNS:</p>
<pre><code class="language-text">
Основной DNS: 8.8.8.8
Альтернативный DNS: 8.8.4.4
</code></pre>
<p>Если используешь IPv6 — включи переключатель IPv6 и добавь адреса Cloudflare:</p>
<pre><code class="language-text">
Основной DNS: 2606:4700:4700::1111
Альтернативный DNS: 2606:4700:4700::1001
</code></pre>
<h3>Шаг 3. Включи шифрование для каждого адреса</h3>
<p>Рядом с каждым DNS-адресом появился выпадающий список «Предпочтительное шифрование DNS». Раскрой его и выбери «Только зашифрованное (DNS over HTTPS)». Повтори для основного и альтернативного адреса.</p>
<p>Нажми «Сохранить». Всё — Windows теперь шифрует DNS-запросы на уровне всей системы.</p>
"Список
<br />
Windows 11 проверяет введённый IP по встроенному списку Known DoH Servers. Cloudflare, Google, Quad9 — в нём есть. Если введёшь нестандартный IP — Windows молча откатится на обычный DNS без предупреждения. Для нестандартных серверов нужно добавлять их явно через PowerShell.<br />
<h3>Шаг 4. Проверь через PowerShell</h3>
<p>Открой PowerShell от имени администратора:</p>
<pre><code class="language-powershell">
Get-DnsClientDohServerAddress
</code></pre>
<p>Ожидаемый вывод — список серверов с заполненным полем DohTemplate:</p>
<pre><code class="language-text">
ServerAddress AllowFallbackToUdp AutoUpgrade DohTemplate
1.1.1.1 False True https://cloudflare-dns.com/dns-query
1.0.0.1 False True https://cloudflare-dns.com/dns-query
</code></pre>
<p>Если список пустой или DohTemplate пустой — настройки не применились. Добавь сервер вручную:</p>
<pre><code class="language-powershell">
Add-DnsClientDohServerAddress `
-ServerAddress "1.1.1.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
</code></pre>
<p>Параметр AllowFallbackToUdp $False: если DoH недоступен — DNS не работает вообще. Для максимальной защиты. Если хочешь работающий DNS даже при недоступном DoH-сервере — ставь $True.</p>
<p>Добавь сразу и альтернативный адрес:</p>
<pre><code class="language-powershell">
Add-DnsClientDohServerAddress `
-ServerAddress "1.0.0.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
</code></pre>
<h3>Что делать если DoH слетел после обновления Windows</h3>
<p>Крупные обновления Windows — 22H2, 23H2 — могут сбросить настройки DNS к дефолтным. DNS продолжит работать через провайдерский сервер, просто незашифрованно. Никакой ошибки не будет — просто тихо перестал работать DoH.</p>
<p>Быстро проверь текущий DNS:</p>
<pre><code class="language-powershell">
Get-DnsClientServerAddress | Where-Object AddressFamily -eq 2 | Select-Object InterfaceAlias, ServerAddresses
</code></pre>
<p>Если видишь IP вида 192.168.x.x (роутер) или адреса провайдера — DoH настроен либо на роутере, либо слетел. Проверь на 1.1.1.1/help. Если No — пройди по шагам из раздела настройки выше заново. Занимает 2 минуты.</p>
<p>Чтобы не повторять это вручную — можно зафиксировать нужные DNS через PowerShell <a class="wpil_keyword_link" title="Скрипты" href="https://it-apteka.com/category/scripts/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2301">скрипт</a> и добавить его в автозапуск после обновлений. Создай файл set-doh-dns.<a class="wpil_keyword_link" title="PowerShell" href="https://it-apteka.com/tag/powershell/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2303">ps1</a>:</p>
<pre><code class="language-powershell">
# Получаем все активные сетевые адаптеры с IPv4
$adapters = Get-NetAdapter | Where-Object Status -eq "Up"
foreach ($adapter in $adapters) {
# Проверяем что адаптер использует DHCP для DNS
$dns = Get-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4
# Устанавливаем Cloudflare DoH
Set-DnsClientServerAddress `
-InterfaceIndex $adapter.InterfaceIndex `
-ServerAddresses ("1.1.1.1","1.0.0.1")
Write-Host "DNS настроен для $($adapter.Name): 1.1.1.1, 1.0.0.1"
}
</code></pre>
<p>Запускай этот скрипт от имени администратора после каждого крупного обновления <a title="Запуск bash скриптов в Linux: через терминал, cron, Python, Windows и Raspberry Pi" href="https://it-apteka.com/zapusk-bash-skriptov-v-linux-cherez-terminal-cron-python-windows-i-raspberry-pi/" target="_blank" rel="noopener" data-wpil-monitor-id="2319">Windows</a> — или добавь в Планировщик заданий по триггеру «После обновления системы.</p>
<h3>Групповая политика для DoH в Windows 11 (для организаций)</h3>
<p>Если настраиваешь DoH на нескольких машинах в домене — используй групповую политику. Открой gpedit.msc — Computer Configuration — Administrative Templates — Network — DNS Client.</p>
<p>Найди политику «Configure DNS over HTTPS (DoH)». Включи и выбери режим:</p>
<ul>
<li>0 — DoH выключен принудительно</li>
<li>1 — DoH включён если доступен (opportunistic)</li>
<li>2 — Только DoH, обычный DNS заблокирован</li>
</ul>
<p>Для принудительного DoH на всех машинах в домене — режим 2. Для домашнего использования gpedit.msc работает только в Pro и выше. В Home — только через Settings GUI из шагов выше.</p>
<h2>DNS over HTTPS в Windows 10</h2>
<p>Microsoft добавила нативный DoH только в Windows 11. В Windows 10 три пути — выбирай по задаче.</p>
<h3>Путь 1. Настроить DoH в браузере</h3>
<p>Самый быстрый способ. Работает только для конкретного браузера — системный DNS остаётся незашифрованным. Подходит если важен только браузерный трафик. Настройка для Chrome, Firefox и Opera — в разделах ниже.</p>
<h3>Путь 2. dnscrypt-proxy — DoH для всей системы</h3>
<p>Лёгкий проксирующий сервис. Перехватывает все системные DNS-запросы и пересылает через DoH. Работает как Windows-служба, запускается автоматически. Этот вариант закрывает DNS-трафик от всех программ, не только браузера.</p>
<p>Скачай актуальный релиз с GitHub: https://github.com/DNSCrypt/dnscrypt-proxy/releases</p>
<p>Бери версию dnscrypt-proxy-win64-*.zip (или win32 если система 32-бит). Распакуй в удобное место, например:</p>
<pre><code class="language-text">
C:\dnscrypt-proxy\
</code></pre>
<p>Открой файл dnscrypt-proxy.toml в любом текстовом редакторе. Найди и измени эти строки:</p>
<pre><code class="language-text">
## Выбор серверов - Cloudflare по умолчанию
server_names = ['cloudflare', 'cloudflare-ipv6']
## Адрес прослушивания - 127.0.0.1 порт 53
listen_addresses = ['127.0.0.1:53']
</code></pre>
<p>Если хочешь Quad9 с блокировкой малвари:</p>
<pre><code class="language-text">
server_names = ['quad9-dnscrypt-ip4-filter-pri']
</code></pre>
<p>Если хочешь несколько серверов для отказоустойчивости:</p>
<pre><code class="language-text">
server_names = ['cloudflare', 'quad9-dnscrypt-ip4-filter-pri']
</code></pre>
<p>Установи и запусти как службу — выполни от имени администратора в PowerShell:</p>
<pre><code class="language-powershell">
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -service install
.\dnscrypt-proxy.exe -service start
</code></pre>
<p>Проверь что служба запустилась:</p>
<pre><code class="language-powershell">
Get-Service dnscrypt-proxy
</code></pre>
<p>Статус должен быть Running. Теперь в настройках сетевого адаптера пропиши DNS вручную. Нажми Win + R, введи ncpa.cpl, Enter. Правой кнопкой на активном адаптере — Свойства — Протокол интернета версии 4 (TCP/IPv4) — Свойства. Выбери «Использовать следующие адреса DNS-серверов»:</p>
<pre><code class="language-text">
Предпочитаемый DNS-сервер: 127.0.0.1
Альтернативный DNS-сервер: (оставь пустым)
</code></pre>
<p>Нажми OK. Все DNS-запросы от всех программ пойдут через dnscrypt-proxy, который отправит их в Cloudflare или Quad9 через DoH.</p>
"Конфликт
<br />
Если после установки dnscrypt-proxy <a href="https://it-apteka.com/ustanovka-i-nastrojka-kerio-control-poshagovoe-rukovodstvo-ot-nulja-do-rabochego-shljuza/" target="_blank" rel="noopener" data-wpil-monitor-id="2412">DNS перестал работать — служба Windows</a> DNS Client (Dnscache) может занимать порт 53. Проверь: netstat -ano | findstr ":53 " в PowerShell. Если порт занят Dnscache — останови службу и поставь ручной запуск: Stop-Service Dnscache, Set-Service Dnscache -StartupType Manual. Затем перезапусти dnscrypt-proxy.<br />
<h3>Проверка работы dnscrypt-proxy</h3>
<p>Запусти диагностику встроенным инструментом:</p>
<pre><code class="language-powershell">
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -resolve cloudflare.com
</code></pre>
<p>Должен вернуться IP-адрес Cloudflare. Если ошибка — смотри лог: он пишется в dnscrypt-proxy.log в той же папке.</p>
<h3>Расширенная настройка dnscrypt-proxy</h3>
<p>После базовой установки dnscrypt-proxy можно настроить под себя. Открой dnscrypt-proxy.toml и разберём ключевые параметры.</p>
<p>Логирование — по умолчанию отключено для приватности. Включи если нужна диагностика:</p>
<pre><code class="language-text">
## Файл лога (оставь пустым чтобы не логировать)
log_file = 'dnscrypt-proxy.log'
log_level = 2
## Лог DNS-запросов (для отладки - потом отключи)
[query_log]
file = 'query.log'
</code></pre>
<p>Кэширование — ускоряет повторные запросы:</p>
<pre><code class="language-text">
## Включить кэш
cache = true
cache_size = 4096
cache_min_ttl = 2400
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600
</code></pre>
<p>Блокировка рекламных доменов прямо в dnscrypt-proxy. Создай файл blocked-names.txt и добавь домены:</p>
<pre><code class="language-text">
ads.example.com
tracker.example.com
</code></pre>
<p>В toml-конфиге:</p>
<pre><code class="language-text">
[blocked_names]
blocked_names_file = 'blocked-names.txt'
log_file = 'blocked-names.log'
log_format = 'tsv'
</code></pre>
<p>Или используй готовые списки — dnscrypt-proxy поддерживает автоматическое скачивание:</p>
<pre><code class="language-text">
[blocked_names]
blocked_names_file = 'blocked-names.txt'
[sources]
[sources.public-resolvers]
urls = ['https://raw.githubusercontent.com/nicehash/dnscrypt-proxy-acl/master/blocked-names.txt']
cache_file = 'blocked-names.txt'
minisign_key = ''
refresh_delay = 72
prefix = ''
</code></pre>
<p>Балансировка между несколькими DoH-серверами для отказоустойчивости:</p>
<pre><code class="language-text">
## Список серверов - dnscrypt-proxy выберет самый быстрый
server_names = ['cloudflare', 'cloudflare-ipv6', 'quad9-dnscrypt-ip4-filter-pri']
## Балансировка нагрузки - fastest выбирает сервер с минимальной задержкой
lb_strategy = 'fastest'
lb_estimator = true
</code></pre>
<p>После изменений конфига перезапусти службу:</p>
<pre><code class="language-powershell">
Restart-Service dnscrypt-proxy
</code></pre>
<h3>Проверка dnscrypt-proxy с подробным выводом</h3>
<p>Запусти dnscrypt-proxy напрямую (не как службу) для диагностики:</p>
<pre><code class="language-powershell">
# Останови службу
Stop-Service dnscrypt-proxy
# Запусти напрямую с verbose выводом
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -check
</code></pre>
<p>Команда -check проверяет конфиг и доступность <a title="Linux SIP прокси сервер: полное руководство по Kamailio, OpenSIPS и Asterisk" href="https://it-apteka.com/linux-sip-proksi-server-polnoe-rukovodstvo-po-kamailio-opensips-i-asterisk/" target="_blank" rel="noopener" data-wpil-monitor-id="2313">серверов без запуска прокси</a>. Покажет какие серверы доступны, задержки, поддерживаемые протоколы.</p>
<pre><code class="language-powershell">
# Тест конкретного резолвинга
.\dnscrypt-proxy.exe -resolve cloudflare.com
</code></pre>
<p>Вывод покажет IP-адрес, через какой сервер прошёл запрос, задержку. Если ошибка — смотри подробнее:</p>
<pre><code class="language-powershell">
.\dnscrypt-proxy.exe -loglevel 0 -check
</code></pre>
<p>Уровень 0 — максимально подробный вывод. Помогает найти что именно идёт не так.</p>
<h3>Путь 3. Настроить на роутере Keenetic</h3>
<p>Один раз настроил роутер — все устройства в сети получают DoH автоматически: Windows 10, Android, Smart TV, IoT-мусор. Не надо лезть в настройки каждого устройства. Раздел про Keenetic ниже.</p>
<h2>DNS over HTTPS в Google Chrome</h2>
<p>Chrome проверяет текущий системный DNS. Если находит его в списке поддерживаемых DoH-серверов — переключается автоматически. Но полагаться на автоматику не стоит — лучше настроить явно.</p>
<p>Открой в адресной строке:</p>
<pre><code class="language-text">
chrome://settings/security
</code></pre>
<p>Прокрути до раздела «Дополнительно». Найди переключатель «Использовать безопасный DNS». Включи его.</p>
<p>Под переключателем появятся два варианта. «С вашим текущим поставщиком» — Chrome ищет DoH-версию твоего системного DNS. Не всегда срабатывает. «С другим поставщиком» — выбери из списка или вставь URL вручную. Это надёжнее.</p>
<p>Для Cloudflare — выбери из списка или вставь:</p>
<pre><code class="language-text">
https://cloudflare-dns.com/dns-query
</code></pre>
<p>Для Google Public DNS:</p>
<pre><code class="language-text">
https://dns.google/dns-query
</code></pre>
<p>Для AdGuard:</p>
<pre><code class="language-text">
https://dns.adguard.com/dns-query
</code></pre>
<p>Проверь сразу: открой https://1.1.1.1/help в новой вкладке. Должно показать «Using DNS over HTTPS (DoH): Yes».</p>
"Chrome
<br />
Если системный DNS — сервер провайдера без DoH, а в Chrome выбрано "С вашим текущим поставщиком" — Chrome молча не переключится на DoH. Всё будет выглядеть как будто настройка применена, но DoH не работает. Всегда выбирай провайдера явно. Не доверяй автоматике в вопросах приватности.<br />
<h2>DNS over HTTPS в Firefox</h2>
<p>Firefox был одним из первых браузеров с поддержкой DoH — реализовали в 2018 году. Здесь настройка через about:config даёт полный контроль, включая режим «только DoH без fallback».</p>
<h3>Быстрый способ через настройки</h3>
<p>Открой меню (три горизонтальных полоски) — Настройки. Прокрути до раздела «Сеть». Нажми «Настройки…». В нижней части окна найди «Включить DNS over HTTPS». Поставь галку. Выбери провайдера из списка — Cloudflare или NextDNS — или выбери «Другой» и вставь свой URL.</p>
<h3>Точная настройка через about:config</h3>
<p>Введи в адресную строку:</p>
<pre><code class="language-text">
about:config
</code></pre>
<p>Согласись с предупреждением. Найди параметр network.trr.mode и установи значение:</p>
<pre><code class="language-text">
network.trr.mode = 3
</code></pre>
<p>Значения режима:</p>
<ul>
<li>0 — DoH выключен, используется системный DNS</li>
<li>2 — DoH с fallback: если DoH недоступен — используется обычный DNS</li>
<li>3 — только DoH, без fallback. Если DoH недоступен — DNS не резолвится</li>
<li>5 — DoH принудительно выключен, используется системный DNS</li>
</ul>
<p>Режим 3 — максимальная защита. Никакого случайного fallback на открытый DNS. Если DoH-сервер лежит — DNS не работает. Для домашнего использования с надёжным интернетом — нормально.</p>
<p>Теперь укажи URL сервера. Найди параметр network.trr.uri:</p>
<pre><code class="language-text">
network.trr.uri = https://cloudflare-dns.com/dns-query
</code></pre>
<p>Перезапускать Firefox не нужно — настройки применяются сразу. Проверь на https://1.1.1.1/help.</p>
"Firefox
<br />
Firefox проверяет canary-домен use-application-dns.net. Если он недоступен — Firefox автоматически отключает DoH. Сделано специально чтобы не ломать корпоративные DNS-фильтры и фильтры родительского контроля. Дома не мешает. Если хочешь DoH принудительно — ставь network.trr.mode = 3, этот режим игнорирует canary-домен.<br />
<h2>DNS over HTTPS в Opera</h2>
<p>Opera на движке Chromium — настройка аналогична Chrome. Есть нюанс: встроенный VPN Opera меняет DNS. Если он включён — проверь оба места.</p>
<p>Открой:</p>
<pre><code class="language-text">
opera://settings/privacy
</code></pre>
<p>Найди раздел «Безопасность». Включи «Использовать DNS over HTTPS вместо системных настроек DNS». Выбери провайдера из списка или вставь URL вручную.</p>
<p>Если встроенный VPN Opera включён — DNS-запросы идут через серверы Opera. DoH при включённом VPN добавляет ещё один уровень, но DNS резолвит VPN-сервер Opera. Cloudflare при этом видит запросы с IP VPN-сервера, а не с твоего. Реши сам, кому больше доверяешь — Opera или Cloudflare.</p>
<h2>DNS over HTTPS в Microsoft Edge</h2>
<p>Edge на базе Chromium — настройка почти идентична Chrome. Но Edge добавляет несколько корпоративно-ориентированных опций.</p>
<p>Открой в адресной строке:</p>
<pre><code class="language-text">
edge://settings/privacy
</code></pre>
<p>Найди раздел «Безопасность». Включи «Использовать безопасный DNS для указания способа поиска сетевого адреса для веб-сайтов». Выбери провайдера из списка или вставь URL вручную.</p>
<p>Edge поставляется с готовым списком DoH-провайдеров: Cloudflare, Google, Quad9, OpenDNS и другие. Для каждого можно выбрать конкретный вариант — например у Cloudflare доступны базовый, с блокировкой малвари и семейный.</p>
<p>Через URL вручную — те же адреса что и в Chrome:</p>
<pre><code class="language-text">
https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
https://dns.quad9.net/dns-query
</code></pre>
<p>Для корпоративного управления Edge — групповые политики через Intune или GPO. Политика называется «Configure DNS-over-HTTPS (DoH)» в разделе Microsoft Edge. Настройки аналогичны Chrome GPO, но с отдельным пространством имён Microsoft Edge.</p>
<p>Проверка: открой https://1.1.1.1/help в Edge после настройки. Должно показать DoH: Yes если выбрал Cloudflare. Если выбрал другого провайдера — страница всё равно покажет что DNS-запросы идут через DoH, просто не через Cloudflare.</p>
<h3>Opera VPN и DoH: как они взаимодействуют</h3>
<p>Opera — единственный популярный браузер со встроенным бесплатным VPN. Когда VPN включён, весь браузерный трафик идёт через серверы Opera. DNS при включённом VPN резолвится Opera-серверами.</p>
<p>Если одновременно включить DoH в Opera при активном VPN — браузер сначала отправляет DoH-запрос на Cloudflare, но этот запрос уже идёт через VPN-туннель Opera. Cloudflare видит соединение с IP VPN-сервера Opera, не твоего. Для приватности от провайдера — избыточно (VPN уже скрывает трафик). Для приватности от самой Opera — нет (Opera видит весь VPN-трафик включая DNS).</p>
<p>Практический вывод: если используешь Opera VPN — DoH в браузере мало что добавляет. Если Opera VPN выключен — DoH работает стандартно как в Chrome.</p>
<h2>DNS over HTTPS на Keenetic</h2>
<p>Настройка на роутере — лучшее решение для домашней сети. Один раз настроил — и все устройства получают зашифрованный DNS автоматически. Смартфоны, Smart TV, планшеты, Xbox, IoT-лампочки, гостевые устройства — всё. Не надо лезть в настройки каждого устройства.</p>
<p>Keenetic поддерживает DoH начиная с прошивки NDMS 3.1.</p>
<pre class="mermaid">%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Смартфон"] --> E["Keenetic роутер"]
B["ПК Windows 10"] --> E
C["Smart TV"] --> E
D["IoT устройства"] --> E
E --> F["DoH прокси на роутере"]
F --> G["Cloudflare / Quad9"]
style E fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style F fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style G fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
</pre>
<h3>Шаг 1. Проверь версию прошивки</h3>
<p>Зайди в веб-интерфейс Keenetic — обычно это 192.168.1.1 или my.keenetic.net. Перейди в Система — О системе. Посмотри версию NDMS. Если ниже 3.1 — обнови через Система — Обновить прошивку.</p>
<h3>Шаг 2. Установи компонент DNS-over-HTTPS прокси</h3>
<p>Система — Параметры компонентов. В строке поиска введи «DNS». Найди «DNS-over-HTTPS прокси». Нажми «Установить». Роутер скачает и установит компонент — может попросить перезагрузку.</p>
<h3>Шаг 3. Настрой DoH-сервер</h3>
<p>Перейди в Интернет — DNS. Найди раздел «DNS-over-HTTPS». Переключи в «Включено». В поле URL вставь адрес DoH-сервера.</p>
<p>Для Cloudflare:</p>
<pre><code class="language-text">
https://cloudflare-dns.com/dns-query
</code></pre>
<p>Для Quad9:</p>
<pre><code class="language-text">
https://dns.quad9.net/dns-query
</code></pre>
<p>Нажми «Применить». Роутер перезапустит DNS-службу. Все новые DNS-запросы от устройств в сети пойдут через DoH.</p>
<h3>Настройка Keenetic через CLI</h3>
<p>Если удобнее командная строка — подключись через веб-терминал (Система — Веб-терминал) или по Telnet:</p>
<pre><code class="language-bash">
ip dns proxy name cloudflare doh url https://cloudflare-dns.com/dns-query
ip dns proxy name cloudflare doh enable
ip name-server dns-proxy
system configuration save
</code></pre>
<p>Проверь статус:</p>
<pre><code class="language-bash">
show ip dns proxy
</code></pre>
<p>Вывод должен содержать строку с твоим URL и статусом enabled. Если статус disabled — повтори команду enable и сохрани конфиг.</p>
<h3>Дополнительные возможности DoH на Keenetic</h3>
<p>Keenetic позволяет настроить несколько DoH-серверов для отказоустойчивости. Если первый недоступен — роутер автоматически переключается на второй.</p>
<pre><code class="language-bash">
# Добавляем второй DoH-сервер
ip dns proxy name quad9 doh url https://dns.quad9.net/dns-query
ip dns proxy name quad9 doh enable
# Назначаем оба как DNS-серверы
ip name-server dns-proxy
system configuration save
</code></pre>
<p>Приоритет серверов определяется порядком добавления. Первый добавленный — основной, остальные — резервные.</p>
<p>Если хочешь разные DoH-серверы для разных сегментов сети — например основной сегмент через Cloudflare, гостевая сеть через Quad9 с фильтрацией малвари — это настраивается через раздельные DNS-профили для каждого интерфейса. Конфигурация сложнее, описана в документации Keenetic на help.keenetic.com.</p>
<p>Для проверки работы DoH на Keenetic через внешний тест: подключись к сети роутера с устройства где нет своих DoH-настроек (например смартфон с заводскими настройками DNS). Открой https://1.1.1.1/help — должно показать DoH: Yes если роутер использует Cloudflare.</p>
<h3>Резервное копирование конфига Keenetic</h3>
<p>После настройки DoH сохрани конфигурацию роутера. Система — Управление конфигурацией — Сохранить конфигурацию. Скачай файл на компьютер. Если роутер сбросится или придётся менять — восстановишь за минуту.</p>
<p>Через CLI:</p>
<pre><code class="language-bash">
system configuration save
</code></pre>
<p>Файл конфигурации хранится в /opt/etc/ndm/netconf. Периодически копируй его при изменениях.</p>
<h3>Экспорт и импорт настроек DoH Windows через PowerShell</h3>
<p>Если настроил DoH на одной машине и хочешь применить те же настройки на других — экспортируй список DoH-серверов:</p>
<pre><code class="language-powershell">
# Экспорт
Get-DnsClientDohServerAddress | Export-Csv -Path C:\doh-servers.csv -NoTypeInformation
</code></pre>
<p>На другой машине импортируй:</p>
<pre><code class="language-powershell">
# Импорт
$servers = Import-Csv -Path C:\doh-servers.csv
foreach ($s in $servers) {
Add-DnsClientDohServerAddress `
-ServerAddress $s.ServerAddress `
-DohTemplate $s.DohTemplate `
-AllowFallbackToUdp ([bool]$s.AllowFallbackToUdp) `
-AutoUpgrade ([bool]$s.AutoUpgrade)
}
</code></pre>
<p>Это удобно при переустановке системы или развёртывании на нескольких рабочих станциях.</p>
<h3>Обновление прошивки Keenetic не сломает DoH</h3>
<p>Штатное обновление прошивки Keenetic через веб-интерфейс сохраняет конфигурацию включая DoH-настройки. Роутер скачивает образ, перезагружается, применяет конфиг. Обычно DoH продолжает работать без каких-либо действий с твоей стороны.</p>
<p>Но если ты делаешь полный сброс к заводским настройкам или меняешь роутер — конфиг слетит. Поэтому делай резервную копию перед любым сбросом. В веб-интерфейсе: Система — Управление конфигурацией — Сохранить конфигурацию. Скачай файл .ndm на компьютер.</p>
<p>Восстановление из резервной копии: Система — Управление конфигурацией — Загрузить конфигурацию. Загрузи .ndm файл. Роутер применит все настройки включая DoH.</p>
<p>После восстановления проверь через CLI:</p>
<pre><code class="language-bash">
show ip dns proxy
</code></pre>
<p>Должен увидеть DoH-сервер в статусе enabled. Если статус disabled — выполни enable заново:</p>
<pre><code class="language-bash">
ip dns proxy name cloudflare doh enable
system configuration save
</code></pre>
<h2>Яндекс DNS over HTTPS</h2>
<p>Яндекс предоставляет три варианта DoH-серверов:</p>
<table>
<thead>
<tr>
<th>Тип</th>
<th>DoH URL</th>
<th>IP</th>
<th>Особенности</th>
</tr>
</thead>
<tbody>
<tr>
<td>Базовый</td>
<td>https://common.dot.dns.yandex.net/dns-query</td>
<td>77.88.8.8 / 77.88.8.1</td>
<td>Без фильтрации</td>
</tr>
<tr>
<td>Безопасный</td>
<td>https://safe.dot.dns.yandex.net/dns-query</td>
<td>77.88.8.88 / 77.88.8.2</td>
<td>Блокирует вирусы и фишинг</td>
</tr>
<tr>
<td>Семейный</td>
<td>https://family.dot.dns.yandex.net/dns-query</td>
<td>77.88.8.7 / 77.88.8.3</td>
<td>Фильтрует взрослый контент</td>
</tr>
</tbody>
</table>
<p>Серверы Яндекса физически в России — быстрые для пользователей на территории РФ. Данные обрабатываются по российскому законодательству и хранятся Яндексом. Если ты в России и тебя устраивает российская юрисдикция вместо юрисдикции провайдера — нормальный выбор. Если нужна юрисдикция за пределами России — Cloudflare (США) или Quad9 (Швейцария).</p>
<h2>DoH на Android</h2>
<p>Android 9 и новее поддерживает Private DNS — это DNS over TLS, не DoH. Для большинства задач защита аналогичная: DNS-запросы шифруются, провайдер их не видит. Разница в протоколе и порту, а не в уровне защиты.</p>
<p>Настройки — Сеть и Интернет — Расширенные настройки — Частный DNS. Выбери «Имя хоста частного DNS-провайдера». Введи:</p>
<pre><code class="language-text">
cloudflare-dns.com
</code></pre>
<p>Для Quad9:</p>
<pre><code class="language-text">
dns.quad9.net
</code></pre>
<p>Нажми Сохранить. Android теперь шифрует DNS через DoT для всех приложений. Иконка замка в статусной строке Private DNS появится в разделе Wi-Fi если провайдер доступен.</p>
<p>Если нужен именно DoH — настрой его в браузере Chrome или Firefox на Android: настройки абсолютно те же что в десктопной версии, разделы называются одинаково.</p>
<p>Проверка на Android: через браузер Chrome открой https://1.1.1.1/help. Если Private DNS включён — должно показать DoH или DoT в зависимости от того что настроено в браузере.</p>
<h2>DoH на iOS</h2>
<p>iOS 14 и новее поддерживает шифрованный DNS системно через профили конфигурации. Профиль — это XML-файл с расширением .mobileconfig, который устанавливает DNS-настройки на уровне всей системы. Все приложения, не только браузер, используют настроенный DoH.</p>
<p>Самый простой способ: приложение 1.1.1.1 от Cloudflare в App Store. Скачай, открой, включи переключатель. Приложение создаёт VPN-профиль или конфигурационный профиль — зависит от версии. Проверь что профиль установлен: Настройки — Основные — VPN и управление устройством.</p>
<p>Для ручной установки без приложения — Cloudflare публикует готовые .mobileconfig файлы:</p>
<pre><code class="language-text">
https://1.1.1.1/family/setting - с защитой от малвари
https://1.1.1.1/privacy/setting - только шифрование, без фильтрации
</code></pre>
<p>Открой URL в Safari на iPhone — Safari скачает файл и предложит его установить. Перейди в Настройки — Основные — VPN и управление устройством — найди скачанный профиль — Установить. Введи пароль устройства. После установки iPhone использует Cloudflare DoH для всего DNS-трафика.</p>
<p>AdGuard предоставляет аналогичные профили на своём сайте. Quad9 тоже. Найди на сайте провайдера раздел «iOS» или «Configuration profile».</p>
<p>Для удаления профиля: Настройки — Основные — VPN и управление устройством — выбери профиль — Удалить профиль. DNS вернётся к системным настройкам (провайдерский DNS по DHCP).</p>
<p>Проверка: открой https://1.1.1.1/help в Safari. Должно показать DoH: Yes если профиль Cloudflare установлен и активен.</p>
<h2>Как проверить что DNS over HTTPS работает</h2>
<p>Включил — проверь. Не верь настройкам на слово. Видел слишком много «включил DoH» которое тихо fallback-нулось на обычный DNS.</p>
<h3>Проверка через браузер — 30 секунд</h3>
<p>Открой в браузере, который настраивал:</p>
<pre><code class="language-text">
https://1.1.1.1/help
</code></pre>
<p>Cloudflare покажет статус: «Using DNS over HTTPS (DoH) — Yes» или «No». Самая простая проверка.</p>
<p>Расширенная проверка — DoH, DNSSEC, TLS 1.3 и Encrypted SNI одним запросом:</p>
<pre><code class="language-text">
https://www.cloudflare.com/ssl/encrypted-sni/
</code></pre>
<h3>Проверка через PowerShell — Windows</h3>
<p>Текущие DNS-адреса системы:</p>
<pre><code class="language-powershell">
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
</code></pre>
<p>Если видишь адреса провайдера вместо 1.1.1.1 — настройки не применились.</p>
<p>Статус DoH-серверов Windows:</p>
<pre><code class="language-powershell">
Get-DnsClientDohServerAddress | Select-Object ServerAddress, DohTemplate
</code></pre>
<p>Резолвинг через конкретный сервер:</p>
<pre><code class="language-powershell">
Resolve-DnsName -Name cloudflare.com -Type A -Server 1.1.1.1
</code></pre>
<h3>Проверка через curl — Linux или WSL</h3>
<p>Явный запрос к DoH-серверу:</p>
<pre><code class="language-bash">
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
</code></pre>
<p>Если вернулся JSON с полем «Answer» и IP-адресами — DoH работает и доступен.</p>
<h3>Проверка DoH через nslookup</h3>
<p>nslookup — встроенный инструмент Windows. Не показывает DoH напрямую, но позволяет убедиться что DNS резолвится через нужный сервер:</p>
<pre><code class="language-powershell">
nslookup cloudflare.com 1.1.1.1
</code></pre>
<p>Вывод должен содержать Server: 1.1.1.1 и IP-адрес cloudflare.com. Это подтверждает что ты можешь достучаться до 1.1.1.1 и он отвечает. Но nslookup не проверяет шифрование — он сам делает обычный UDP DNS-запрос на 53-й порт.</p>
<p>Для проверки именно DoH — curl или браузер точнее. nslookup полезен для диагностики сетевой доступности DoH-серверов.</p>
<h3>Что означают результаты на 1.1.1.1/help</h3>
<p>Страница показывает несколько параметров:</p>
<ul>
<li><strong>Connected to 1.1.1.1: Yes</strong> — ты подключён к Cloudflare DNS</li>
<li><strong>Using DNS over HTTPS (DoH): Yes / No</strong> — зашифрован ли DNS-запрос</li>
<li><strong>Using DNS over TLS (DoT): Yes / No</strong> — альтернативный протокол шифрования</li>
<li><strong>AS Name</strong> — название автономной системы откуда пришёл запрос</li>
<li><strong>IP</strong> — твой внешний IP-адрес (или IP VPN если он включён)</li>
</ul>
<p>Если DoH: No, но Connected to 1.1.1.1: Yes — ты обращаешься к Cloudflare, но по обычному незашифрованному DNS. Нужно включить DoH в настройках браузера или системы.</p>
<p>Если Connected to 1.1.1.1: No — браузер использует другой DoH-сервер (Google, Quad9 и т.д.) или обычный провайдерский DNS. Для проверки DoH у другого провайдера используй его собственную страницу диагностики — или curl к JSON API.</p>
<h3>Wireshark — убедиться что 53-й порт молчит</h3>
<p>Запусти захват трафика на активном сетевом интерфейсе. Фильтр:</p>
<pre><code class="language-text">
udp.port == 53
</code></pre>
<p>Открой несколько сайтов. Если DoH настроен правильно — трафик на порту 53 отсутствует. Все DNS-запросы растворились в HTTPS-потоке на 443-м порту и стали неотличимы от обычного браузинга. Ради этого всё и затевалось.</p>
<h2>Безопасность: что DoH не решает</h2>
<h3>DNSSEC: дополнительный уровень защиты поверх DoH</h3>
<p>DoH шифрует транспорт. DNSSEC аутентифицирует данные — подписывает DNS-записи криптографически на стороне владельца домена. Даже если атакующий каким-то образом перехватит DoH-соединение или скомпрометирует промежуточный сервер — DNSSEC-подписи позволят обнаружить подмену.</p>
<p>Cloudflare, Google и Quad9 делают DNSSEC-валидацию. Это означает: если запись подписана DNSSEC и подпись не совпадает — сервер вернёт ошибку SERVFAIL вместо поддельного ответа.</p>
<p>Проверить что домен подписан DNSSEC:</p>
<pre><code class="language-bash">
# Через dig на Linux / WSL
dig +dnssec cloudflare.com A
</code></pre>
<p>В ответе ищи строку с RRSIG — это цифровая подпись записи. Если RRSIG есть — домен подписан. В выводе curl к DoH JSON API смотри поле AD: true — Authenticated Data, DNSSEC-валидация прошла.</p>
<p>Проверка онлайн:</p>
<pre><code class="language-text">
https://dnssec-analyzer.verisignlabs.com/cloudflare.com
</code></pre>
<p>DoH + DNSSEC — нормальный уровень защиты DNS для домашней сети. Транспорт зашифрован, данные аутентифицированы.</p>
<h3>Encrypted Client Hello: следующий шаг после DoH</h3>
<p>DoH прячет DNS-запрос. Но при TLS-рукопожатии браузер отправляет SNI — имя сайта в открытом тексте. Провайдер видит к какому домену ты подключаешься даже при включённом DoH.</p>
<p>ECH (Encrypted Client Hello) шифрует SNI. Браузер отправляет зашифрованное приветствие — имя сайта скрыто. Cloudflare развернул инфраструктуру для ECH в 2023 году. Firefox поддерживает ECH начиная с версии 118, Chrome с 117.</p>
<p>Проверить поддержку ECH:</p>
<pre><code class="language-text">
https://www.cloudflare.com/ssl/encrypted-sni/
</code></pre>
<p>Там покажет статус ECH отдельной строкой. Если «Encrypted ClientHello: Yes» — приватность на уровень выше.</p>
<p>ECH требует поддержки со стороны сервера. Пока покрытие ограничено — в основном Cloudflare-проксированные сайты. Но вектор правильный: DoH + ECH + DNSSEC закрывают большинство DNS-связанных угроз приватности.</p>
<p>DoH скрывает DNS-запросы. Но есть вещи, которые он не закрывает — и важно это понимать, чтобы не переоценивать защиту.</p>
<p>SNI (Server Name Indication) — расширение TLS, передающее имя сайта в открытом виде при установке HTTPS-соединения. Провайдер видит к какому домену ты подключаешься, даже если DNS-запрос зашифрован. Частичное решение — ECH (Encrypted Client Hello), но поддержка пока не повсеместная.</p>
<p>IP-адрес назначения виден всегда. Если сайт живёт на выделенном IP — провайдер вычисляет домен по IP без DNS-логов.</p>
<p>DoH — один слой защиты, не магическая кнопка анонимности. Для полной приватности нужен VPN или Tor. DoH и VPN хорошо дополняют друг друга: DoH защищает DNS-запросы которые идут до установки VPN-туннеля, VPN скрывает весь остальной трафик.</p>
"Firewall
<br />
Если настроен локальный DNS-сервер и нужно принудительно гнать трафик через него — заблокируй исходящий UDP/TCP порт 53 для всех хостов кроме своего DNS-сервера. DoH на 443-м порту без DPI заблокировать практически невозможно. Учти это при проектировании корпоративной сети: пользователи с DoH в браузере обходят локальный DNS-резолвер и твои DNS-политики.<br />
<h3>Реальный уровень приватности с DoH</h3>
<p>Давай честно. Что провайдер видит с DoH и без него.</p>
<p>Без DoH провайдер видит: все DNS-запросы с именами доменов и временем, IP-адреса назначений, объём трафика по каждому соединению, SNI при TLS-рукопожатии.</p>
<p>С DoH провайдер видит: IP-адреса назначений, объём трафика, SNI. DNS-запросы — нет.</p>
<p>С DoH + ECH провайдер видит: IP-адреса назначений, объём трафика. DNS-запросы и SNI — нет.</p>
<p>С DoH + ECH + VPN провайдер видит: IP VPN-сервера, объём трафика до VPN. Содержимое — нет.</p>
<p>DoH убирает один из самых простых векторов — DNS-лог. Это не ядерная приватность, но существенный шаг. Настраивается за 10 минут. Не замедляет интернет. Использует бесплатные серверы. Соотношение усилий и результата — отличное.</p>
<h2>DoH в корпоративной среде: что нужно знать администратору</h2>
<p>DoH удобен для домашних пользователей. Для корпоративной сети он создаёт головную боль для сетевого администратора — и вот почему.</p>
<p>Корпоративная сеть обычно использует внутренний DNS-сервер. Через него резолвятся внутренние домены — интранет, корпоративные сервисы, VPN-хосты. Если пользователь включает DoH в браузере с Cloudflare как upstream — браузер перестаёт видеть внутренние домены. Попытка открыть внутренний сайт company.local завершится ошибкой: Cloudflare не знает про company.local.</p>
<p>Вторая проблема — DNS-фильтрация. Многие корпоративные сети фильтруют нежелательные категории сайтов через DNS. DoH с внешним сервером обходит эту фильтрацию.</p>
<p>Третья — видимость трафика для SOC. Часть мониторинга безопасности строится на анализе DNS-трафика. DoH делает его невидимым для внутренних инструментов.</p>
<h3>Как заблокировать DoH в корпоративной сети</h3>
<p>Полностью заблокировать DoH без DPI практически невозможно — он идёт на 443-й порт. Но есть несколько рычагов.</p>
<p>Firefox проверяет canary-домен use-application-dns.net. Если он недоступен или возвращает NXDOMAIN — Firefox отключает DoH. Добавь в корпоративный DNS запись:</p>
<pre><code class="language-text">
use-application-dns.net A 0.0.0.0
</code></pre>
<p>Или заблокируй через DNS-фильтр. Firefox увидит недоступность canary-домена и отключит DoH. Для Chrome и Edge такого механизма нет — работают через групповые политики.</p>
<p>Для Chrome через GPO (Group Policy Object). Найди политику: Computer Configuration — Administrative Templates — Google Chrome — DNS-over-HTTPS mode. Установи «off» или «automatic» (automatic разрешает DoH только если совпадает с настроенным DNS).</p>
<p>Для Edge: Computer Configuration — Administrative Templates — Microsoft Edge — Built-in DNS client — DNS-over-HTTPS.</p>
<p>На уровне сети — заблокируй IP-адреса популярных DoH-серверов. Это частичная мера (серверов много), но снижает процент пользователей с работающим DoH:</p>
<pre><code class="language-text">
# Cloudflare DoH
1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
# Google DoH
8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844
# Quad9 DoH
9.9.9.9, 149.112.112.112
</code></pre>
<h3>Корпоративный DoH: DNS-over-HTTPS с внутренним сервером</h3>
<p>Правильное решение для корпоративной сети — не блокировать DoH, а настроить корпоративный DoH-сервер. Тогда браузеры используют зашифрованный DNS, но резолвинг идёт через корпоративный сервер с доступом к внутренним зонам.</p>
<p>На Windows Server DNS добавь DoH-прокси через IIS или nginx. Или разверни отдельный DoH-прокси — например coredns с плагином forward и tls.</p>
<p>Простой вариант через nginx — проксируй HTTPS на 443 к внутреннему DNS:</p>
<pre><code class="language-text">
server {
listen 443 ssl http2;
server_name dns.company.local;
ssl_certificate /etc/ssl/company.crt;
ssl_certificate_key /etc/ssl/company.key;
location /dns-query {
proxy_pass http://127.0.0.1:8053;
proxy_set_header Content-Type application/dns-message;
}
}
</code></pre>
<p>После настройки разверни через GPO URL корпоративного DoH-сервера https://dns.company.local/dns-query как единственный разрешённый DoH-эндпоинт. Пользователи получают зашифрованный DNS, но через корпоративный сервер с полным контролем.</p>
<h2>Troubleshooting: типичные ошибки при настройке DoH</h2>
<h3>DNS не резолвится после включения DoH в Windows 11</h3>
<p>Причина: Windows не распознала IP-адрес как DoH-совместимый — его нет в списке Known DoH Servers, и Windows не знает какой URL использовать.</p>
"Диагноз"
<br />
Открываешь сайты — ошибка DNS_PROBE_FINISHED_NXDOMAIN или "Адрес сайта не найден". При этом в настройках сети DoH включён и адреса прописаны.<br />
<p>Проверь список:</p>
<pre><code class="language-powershell">
Get-DnsClientDohServerAddress | Select-Object ServerAddress, DohTemplate
</code></pre>
<p>Если DohTemplate пустой — добавь сервер вручную:</p>
<pre><code class="language-powershell">
Add-DnsClientDohServerAddress `
-ServerAddress "1.1.1.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
</code></pre>
<h3>Chrome включён, но 1.1.1.1/help показывает «No»</h3>
<p>Причина: в Chrome выбрано «С вашим текущим поставщиком», а системный DNS — сервер провайдера без DoH. Chrome искал DoH-версию, не нашёл и не переключился.</p>
<p>Решение: зайди в chrome://settings/security, переключи на «С другим поставщиком», выбери Cloudflare или Google явно. Обнови страницу на 1.1.1.1/help.</p>
<h3>Firefox игнорирует настройки DoH</h3>
<p>Причина 1: canary-домен use-application-dns.net недоступен — Firefox отключил DoH автоматически.</p>
<p>Установи в about:config:</p>
<pre><code class="language-text">
network.trr.mode = 3
</code></pre>
<p>Причина 2: применена групповая политика. Проверь:</p>
<pre><code class="language-text">
about:policies
</code></pre>
<p>Если там есть DoH-политика — она приоритетнее about:config. В корпоративной сети обратись к администратору.</p>
<h3>Keenetic не сохраняет настройки DoH после перезагрузки</h3>
<p>Причина: конфигурация не сохранена явно, или компонент «DNS-over-HTTPS прокси» не установлен.</p>
<p>Проверь компонент: Система — Параметры компонентов — «DNS-over-HTTPS прокси» должен быть в статусе «Установлен». После настройки сохрани конфигурацию:</p>
<pre><code class="language-bash">
system configuration save
</code></pre>
<h3>Сайты открываются медленнее после включения DoH</h3>
<p>Причина: DoH-сервер далеко или перегружен. HTTPS handshake добавляет задержку на первый запрос к каждому домену.</p>
<p>Решение: переключись на Cloudflare 1.1.1.1 — медианная задержка около 11 мс, быстрее большинства провайдерских серверов. Или подними локальный кэширующий резолвер с DoH-апстримом — повторные запросы к популярным доменам будут отвечать из кэша мгновенно.</p>
<h3>dnscrypt-proxy не запускается в Windows 10</h3>
<p>Причина: порт 53 занят службой DNS Client (Dnscache).</p>
<p>Проверь что занимает порт:</p>
<pre><code class="language-powershell">
netstat -ano | findstr ":53 "
</code></pre>
<p>Найди PID и определи процесс:</p>
<pre><code class="language-powershell">
Get-Process -Id НОМЕР_PID
</code></pre>
<p>Если это Dnscache — останови и поставь ручной запуск:</p>
<pre><code class="language-powershell">
Stop-Service Dnscache
Set-Service Dnscache -StartupType Manual
Restart-Service dnscrypt-proxy
</code></pre>
<h3>DoH включён, но DNSSEC не проходит</h3>
<p>Причина: не все DoH-серверы делают DNSSEC-валидацию по умолчанию.</p>
<p>Cloudflare, Quad9 и Google делают DNSSEC. Проверь свой сервер:</p>
<pre><code class="language-text">
https://dnssec-analyzer.verisignlabs.com/
</code></pre>
<p>Если используешь нестандартный сервер — смотри его документацию на предмет DNSSEC-валидации.</p>
<h3>После настройки DoH появились проблемы с внутренними доменами в корпоративной сети</h3>
<p>Это классическая проблема DoH в корпоративной среде. Ты настроил DoH с Cloudflare. Теперь внутренние домены типа <a class="wpil_keyword_link" title="mail" href="https://it-apteka.com/tag/mail/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2302">mail</a>.company.local или intranet.corp не резолвятся — Cloudflare о них ничего не знает.</p>
<p>Решения в порядке возрастания сложности:</p>
<p>Первое — отключи DoH на уровне системы, оставь только в браузере. Браузер использует DoH для интернет-сайтов, а ОС резолвит внутренние домены через корпоративный DNS. Работает если корпоративный DNS назначается через DHCP или VPN.</p>
<p>Второе — в Windows 11 есть механизм «Split DNS»: укажи корпоративный DNS-сервер дополнительно с режимом «Без шифрования» только для конкретного сетевого профиля. Это сложнее настроить, но даёт оба DNS одновременно.</p>
<p>Третье — лучшее решение: корпоративный DoH-сервер. <a title="nslookup и dig — диагностика DNS для системного администратора" href="https://it-apteka.com/nslookup-i-dig-diagnostika-dns-dlja-sistemnogo-administratora/" target="_blank" rel="noopener" data-wpil-monitor-id="2309">Системный администратор настраивает DoH-прокси на корпоративном DNS</a>. Ты подключаешься к нему — и получаешь и внутренние зоны, и шифрование DNS. Адрес такого сервера обычно выдаётся через VPN-профиль.</p>
<h3>DoH включён, но dnsleaktest.com всё равно показывает провайдерские серверы</h3>
<p>dnsleaktest.com тестирует откуда реально пришли DNS-ответы на их тестовые домены. Если там провайдерские серверы — одна из причин:</p>
<p>В Windows DoH настроен в браузере, но dnsleaktest запущен из другого браузера или из системы. Системный DNS при этом всё ещё провайдерский. Для теста используй тот же браузер где настроен DoH.</p>
<p>Включён <a href="https://it-apteka.com/kakoj-vpn-server-ustanovit-na-ubuntu-dlja-nativnogo-podkljuchenija/" title="Настройка IKEv2 VPN сервера на Ubuntu 24.04: StrongSwan без лишних клиентов" target="_blank" rel="noopener" data-wpil-monitor-id="2751">VPN с настройкой</a> «использовать DNS VPN-сервера. VPN перебивает системный DoH. Отключи VPN для теста или настрой DoH внутри VPN-клиента.</p>
<p>dnscrypt-proxy слушает на 127.0.0.1:53, но в настройках адаптера не прописан 127.0.0.1 как DNS. Результат: запросы идут мимо dnscrypt-proxy напрямую к провайдерскому серверу. Проверь что DNS в настройках адаптера == 127.0.0.1.</p>
<h2>Когда DoH особенно важен: реальные сценарии</h2>
<p>DoH полезен всегда. Но есть ситуации где он критичен.</p>
<h3>Публичный Wi-Fi — кафе, аэропорт, гостиница</h3>
<p>В публичной Wi-Fi сети кто угодно может запустить Wireshark и смотреть трафик. Обычный DNS на 53-м порту — открытый текст. За 5 минут у соседа по кофейне будет список всех сайтов которые ты открывал. Плюс DNS-спуфинг: злоумышленник в той же сети отвечает на DNS-запросы поддельными IP.</p>
<p>DoH с TLS устраняет обе угрозы. Запросы зашифрованы, сервер аутентифицирован через TLS-сертификат — подменить ответ невозможно.</p>
<p>В публичной сети включай DoH в браузере перед тем как открывать что-либо важное. Пять секунд — chrome://settings/security — включить безопасный DNS — Cloudflare. Лучше VPN, но DoH это минимальная гигиена.</p>
<h3>Работа из дома — ISP видит рабочий трафик</h3>
<p>Провайдер домашнего интернета может видеть DNS-запросы к корпоративным ресурсам: какие внутренние инструменты используешь, с какими сервисами работаешь. Для большинства сценариев это не проблема — но если политика компании требует приватности трафика, DoH на домашней машине закрывает хотя бы DNS-слой.</p>
<p>Правильное решение в этом случае — корпоративный VPN, который обычно включает и DoH или DoT для DNS. Но если VPN нет — DoH лучше чем ничего.</p>
<h3>Путешествия — нестабильные и потенциально враждебные сети</h3>
<p>В некоторых странах провайдеры блокируют сайты на уровне DNS. Обычный DNS резолвинг возвращает заглушку или пустой ответ. DoH использует внешний сервер — Cloudflare или Google — который не знает о местных блокировках.</p>
<p>Это работает пока провайдер не блокирует сами DoH-серверы по IP. Cloudflare 1.1.1.1 заблокировать сложно — он хостится на огромной CDN-инфраструктуре, которая перекрывается с множеством легитимных сайтов.</p>
<h3>Умный дом и IoT — устройства которые не настраиваются</h3>
<p>Умные лампочки, телевизоры, колонки, термостаты — всё это постоянно делает DNS-запросы. К своим облачным серверам, к серверам обновлений, к аналитике производителя. Настроить DoH на каждом IoT-устройстве невозможно.</p>
<p>Решение — роутер Keenetic с DoH. Все устройства в сети получают зашифрованный DNS автоматически. Не надо трогать каждое устройство отдельно.</p>
<h2>Типичные ошибки при настройке DoH: чек-лист</h2>
<p>Собрал самые частые ошибки в одном месте. Пройдись по списку если что-то не работает.</p>
<table>
<thead>
<tr>
<th>Симптом</th>
<th>Вероятная причина</th>
<th>Быстрая проверка</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.1.1.1/help показывает DoH: No</td>
<td>DoH не применился или применился с fallback</td>
<td>Проверь Get-DnsClientDohServerAddress</td>
</tr>
<tr>
<td>Сайты не открываются после включения DoH</td>
<td>Сервер фильтрует домен или недоступен</td>
<td>Переключись на Cloudflare 1.1.1.1</td>
</tr>
<tr>
<td>Chrome DoH включён, но провайдерский DNS в логах</td>
<td>Chrome использует «текущего поставщика» без DoH</td>
<td>Выбери провайдера явно в настройках Chrome</td>
</tr>
<tr>
<td>Firefox игнорирует about:config</td>
<td>Групповая политика или canary-домен</td>
<td>Проверь about:policies</td>
</tr>
<tr>
<td>Keenetic слетает после перезагрузки</td>
<td>Конфиг не сохранён</td>
<td>system configuration save</td>
</tr>
<tr>
<td>dnscrypt-proxy не стартует</td>
<td>Порт 53 занят Dnscache</td>
<td>netstat -ano | findstr «:53 «</td>
</tr>
<tr>
<td>DoH работает, но медленно</td>
<td>Далёкий DoH-сервер или нет кэша</td>
<td>Переключись на Cloudflare, включи cache в dnscrypt-proxy</td>
</tr>
<tr>
<td>DNSSEC не проходит</td>
<td>DoH-сервер не делает DNSSEC-валидацию</td>
<td>Используй Cloudflare, Quad9 или Google</td>
</tr>
</tbody>
</table>
<h2>Мониторинг: как убедиться что DoH работает стабильно</h2>
<p>DoH настроил — хорошо. Но «настроил один раз» не означает «работает всегда». Windows обновляется. Роутер перезагружается. Прошивка Keenetic меняется. Всё это может тихо сломать DoH без каких-либо ошибок — DNS продолжит работать через обычный 53-й порт, просто незашифрованно.</p>
<p>Несколько способов держать DoH под контролем.</p>
<h3>Периодическая ручная проверка</h3>
<p>Самый простой способ — раз в месяц открывать https://1.1.1.1/help и смотреть. Три секунды. Если DoH: Yes — всё хорошо. Если No — разбираться почему.</p>
<p>Для Windows — добавь задачу в Планировщик заданий которая раз в неделю проверяет текущие DNS-адреса. Создай файл check-doh.ps1:</p>
<pre><code class="language-powershell">
$dns = Get-DnsClientServerAddress | Where-Object AddressFamily -eq 2
$expected = @("1.1.1.1", "1.0.0.1", "8.8.8.8", "8.8.4.4", "9.9.9.9")
$current = $dns.ServerAddresses
$ok = $current | Where-Object { $expected -contains $_ }
if ($ok.Count -gt 0) {
Add-Content C:\Logs\doh-check.log "$(Get-Date) - DoH DNS OK: $($current -join ', ')"
} else {
Add-Content C:\Logs\doh-check.log "$(Get-Date) - ВНИМАНИЕ: DoH не настроен. Текущий DNS: $($current -join ', ')"
}
</code></pre>
<p>Создай директорию для логов:</p>
<pre><code class="language-powershell">
New-Item -ItemType Directory -Path C:\Logs -Force
</code></pre>
<p>Добавь скрипт в Планировщик заданий: Win + R — taskschd.msc — Создать задачу — Триггеры: еженедельно — Действия: запустить PowerShell.exe с аргументом -File C:\check-doh.ps1.</p>
<h3>Мониторинг через dnscrypt-proxy на Windows 10</h3>
<p>dnscrypt-proxy пишет подробный лог. Смотри его:</p>
<pre><code class="language-powershell">
Get-Content C:\dnscrypt-proxy\dnscrypt-proxy.log -Tail 50
</code></pre>
<p>Строки с «OK» — успешные DoH-запросы. Строки с «timeout» или «no server» — проблемы с DoH-сервером. Проверь что служба работает:</p>
<pre><code class="language-powershell">
Get-Service dnscrypt-proxy | Select-Object Status, StartType
</code></pre>
<h3>Мониторинг на Keenetic</h3>
<p>Через веб-терминал Keenetic:</p>
<pre><code class="language-bash">
show ip dns proxy
show ip name-server
</code></pre>
<p>Посмотри системный лог на предмет DNS-ошибок:</p>
<pre><code class="language-bash">
show log | grep doh
</code></pre>
<p>Строки с «connected» подтверждают активное DoH-соединение. Ошибки «connection refused» к DoH-серверу — проблема с доступностью, роутер не может достучаться до Cloudflare или Quad9.</p>
<h2>Альтернативные решения</h2>
<h3>NextDNS — DoH с личной статистикой и фильтрами</h3>
<p>NextDNS даёт персональный DoH-эндпоинт с кастомными списками блокировки, подробной статистикой запросов и управлением через веб-интерфейс. Видишь какие домены резолвируют устройства, блокируешь нужное, настраиваешь свои white/blacklist. Бесплатный план — 300 000 запросов в месяц, обычно хватает на домашнюю сеть. Хорошо подходит для семейной сети с детьми.</p>
<p>URL выглядит так:</p>
<pre><code class="language-text">
https://dns.nextdns.io/ВАШ_ID
</code></pre>
<p>Получи ID после регистрации на nextdns.io.</p>
<h3>Pi-hole + cloudflared на Raspberry Pi</h3>
<p>Если есть Raspberry Pi или старый мини-ПК — поставь Pi-hole для блокировки рекламы и cloudflared как DoH-клиент. Pi-hole принимает DNS-запросы от устройств в сети на обычный 53-й порт, cloudflared пересылает их в Cloudflare через DoH. Провайдер не видит DNS, реклама режется для всей сети.</p>
<p>Установка cloudflared на Raspberry Pi (arm64):</p>
<pre><code class="language-bash">
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb
sudo dpkg -i cloudflared-linux-arm64.deb
cloudflared --version
</code></pre>
<p>Создай пользователя для сервиса:</p>
<pre><code class="language-bash">
sudo useradd -s /usr/sbin/nologin -r -M cloudflared
</code></pre>
<p>Создай файл /etc/systemd/system/cloudflared.service:</p>
<pre><code class="language-text">
[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target
[Service]
Type=simple
User=cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns --port 5053 --upstream https://cloudflare-dns.com/dns-query
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
</code></pre>
<pre><code class="language-bash">
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared
</code></pre>
<p>В настройках Pi-hole (Settings — DNS) укажи кастомный upstream: 127.0.0.1#5053. Выставь IP Raspberry Pi как DNS на роутере.</p>
<h3>AdGuard Home через Docker</h3>
<p>Аналог Pi-hole с нативной поддержкой DoH и DoT без дополнительных компонентов. Ставится как <a class="wpil_keyword_link" title="Docker" href="https://it-apteka.com/tag/docker/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="2305">Docker</a>-контейнер:</p>
<pre><code class="language-bash">
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 \
--restart unless-stopped \
adguard/adguardhome
</code></pre>
<p>После установки открой http://IP_СЕРВЕРА:3000. В мастере настройки на шаге «Upstream DNS servers» вставь DoH-адрес Cloudflare. В <a title="VPN на MikroTik: полный гайд 2026 — WireGuard, L2TP/IPsec, IKEv2, настройка сервера и клиента" href="https://it-apteka.com/vpn-na-mikrotik-polnyj-gajd-2026-wireguard-l2tp-ipsec-ikev2-nastrojka-servera-i-klienta/" target="_blank" rel="noopener" data-wpil-monitor-id="2314">настройках роутера выставь IP сервера</a> с AdGuard Home как DNS. Все устройства сети получают DoH плюс блокировку рекламы.</p>
<h3>Задержка DNS с DoH: реальные цифры</h3>
<p>Часто спрашивают: DoH медленнее обычного DNS? Разберём с цифрами.</p>
<p>Обычный UDP DNS-запрос: пакет улетел, пришёл ответ. На провайдерский сервер — 5-50 мс в зависимости от расстояния и загрузки сервера.</p>
<p>DoH первый запрос к домену: TLS handshake (10-20 мс, выполняется один раз) + HTTPS-запрос + ответ. Итого 15-30 мс к Cloudflare. Последующие запросы в рамках существующего TLS-соединения: только HTTPS-запрос + ответ, 5-15 мс.</p>
<p>На практике после нескольких секунд работы браузера задержки DoH неотличимы от обычного DNS. TLS keep-alive держит соединение открытым — каждый раз заново рукопожатие не делается.</p>
<p>DNS-кэш браузера и ОС дополнительно сглаживает разницу. Повторный запрос к tому же домену (в пределах TTL) отвечает из кэша мгновенно — без обращения к DoH-серверу вообще.</p>
<p>Если интернет замедлился после включения DoH — вероятнее всего DoH-сервер далеко или перегружен, а не сам протокол виноват. Переключись на Cloudflare 1.1.1.1 и сравни. Cloudflare — самая распределённая сеть DoH-серверов в мире, с узлами в большинстве крупных городов России и соседних стран.</p>
<h2>Профилактика: как не потерять DoH при обновлениях</h2>
<p>DoH — тихая настройка. Включил и забыл. Но три момента стоит держать в голове.</p>
<p>После крупных обновлений Windows (22H2, 23H2 и подобных) проверяй настройки DNS. Обновления иногда сбрасывают параметры сети к дефолтным — это задокументированное поведение, не баг. Команда для быстрой проверки:</p>
<pre><code class="language-powershell">
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
</code></pre>
<p>Если видишь адреса провайдера вместо 1.1.1.1 или 8.8.8.8 — настройки слетели, переназначь вручную через GUI или PowerShell.</p>
<p>После смены провайдера или замены роутера DNS автоматически переключается на <a title="DHCP Snooping — что это такое и как защитить сеть от Rogue DHCP сервера" href="https://it-apteka.com/dhcp-snooping-chto-jeto-takoe-i-kak-zashhitit-set-ot-rogue-dhcp-servera-2/" target="_blank" rel="noopener" data-wpil-monitor-id="2315">сервер нового провайдера по DHCP</a>. Зафиксируй DNS вручную в настройках адаптера — не через автоматическое получение. Это занимает две минуты, но потом не придётся вспоминать почему DoH перестал работать после смены тарифа или переезда.</p>
<p>После обновления прошивки Keenetic — проверь DoH через CLI:</p>
<pre><code class="language-bash">
show ip dns proxy
</code></pre>
<p>Штатные обновления конфиг сохраняют. Но при крупных обновлениях с изменением архитектуры (например переход на новое поколение NDMS) — иногда слетает. Резервная копия конфига перед обновлением — хорошая практика.</p>
<p>Один раз в несколько месяцев заходи на 1.1.1.1/help и проверяй. Три секунды. Зато точно знаешь что всё на месте. Видел конфиги которые «работали» три года, а потом оказывалось что DoH слетел через неделю после включения и всё это время DNS шёл через провайдера в открытом тексте.</p>
<p>Если используешь dnscrypt-proxy на Windows 10 — раз в несколько месяцев проверяй что служба работает и версия актуальная. Команда:</p>
<pre><code class="language-powershell">
Get-Service dnscrypt-proxy
.\dnscrypt-proxy.exe --version
</code></pre>
<p>Актуальную версию смотри на github.com/DNSCrypt/dnscrypt-proxy/releases. Обновление простое: останови службу, замени .exe, запусти.</p>
<h2>Обновление и откат</h2>
<p>DoH не требует обновлений — это настройка, не отдельная программа. Но dnscrypt-proxy обновляется:</p>
<pre><code class="language-powershell">
# Останови службу
Stop-Service dnscrypt-proxy
# Скачай новую версию с GitHub, замени dnscrypt-proxy.exe
# Конфиг dnscrypt-proxy.toml не трогай - он сохраняется
# Запусти
Start-Service dnscrypt-proxy
Get-Service dnscrypt-proxy
</code></pre>
<p>Откат DoH к обычному DNS — просто смени настройки DNS обратно на автоматические (DHCP) или пропиши адрес провайдера. Никаких следов не остаётся.</p>
<p>Для отката dnscrypt-proxy:</p>
<pre><code class="language-powershell">
.\dnscrypt-proxy.exe -service stop
.\dnscrypt-proxy.exe -service uninstall
</code></pre>
<p>Потом верни DNS-настройки адаптера в «Получать адрес DNS-сервера автоматически».</p>
<h3>Обновление dnscrypt-proxy до новой версии</h3>
<p>Новые <a title="Windows 12 — дата выхода, версии, 64 bit и что известно в 2026 году" href="https://it-apteka.com/windows-12-data-vyhoda-versii-64-bit-i-chto-izvestno-v-2026-godu/" target="_blank" rel="noopener" data-wpil-monitor-id="2316">версии dnscrypt-proxy выходят</a> несколько раз в год. В них исправления безопасности и новые DoH-серверы в списках. Обновление занимает 3 минуты.</p>
<p>Скачай новую версию с github.com/DNSCrypt/dnscrypt-proxy/releases. Распакуй архив. Открой директорию с текущей установкой (C:\dnscrypt-proxy\). Останови службу:</p>
<pre><code class="language-powershell">
Stop-Service dnscrypt-proxy
</code></pre>
<p>Замени только файл dnscrypt-proxy.exe — файл конфигурации dnscrypt-proxy.toml не трогай, он сохраняется между версиями и обратно совместим.</p>
<p>Запусти:</p>
<pre><code class="language-powershell">
Start-Service dnscrypt-proxy
Get-Service dnscrypt-proxy
</code></pre>
<p>Если служба не запустилась после обновления — проверь лог dnscrypt-proxy.log. Иногда в новых версиях меняется синтаксис конфига — смотри CHANGELOG в архиве с новой версией. Обычно это одна-две строки для изменения.</p>
<p>Откат к старой версии: останови службу, верни старый .exe — и всё. Конфиг совместим в обе стороны.</p>
<h2>FAQ</h2>
<h3>Почему после включения DoH некоторые сайты перестали открываться?</h3>
<p>Скорее всего DoH-сервер фильтрует домен. Quad9 и AdGuard DNS блокируют вредоносные и фишинговые сайты — иногда легитимные домены попадают в списки ошибочно. Временная проверка: отключи DoH, если сайт открылся — проблема в фильтрации. Переключись на Cloudflare 1.1.1.1 или Google 8.8.8.8 — они не фильтруют контент. Если важна блокировка малвари — Quad9, просто держи в голове что иногда бывают ложные срабатывания.</p>
<h3>Как проверить работает ли DNS over HTTPS прямо сейчас?</h3>
<p>Самый быстрый способ: открой https://1.1.1.1/help в браузере. Там прямо написано «Using DNS over HTTPS: Yes» или «No». Расширенная проверка с DNSSEC и TLS 1.3: https://www.cloudflare.com/ssl/encrypted-sni/. Для системных настроек Windows: Get-DnsClientDohServerAddress в PowerShell — смотри поле DohTemplate.</p>
<h3>DNS over HTTPS или DNS over TLS — что лучше?</h3>
<p>Для дома: DoH. Работает в браузере без дополнительного ПО, идёт на 443-м порту и практически не блокируется. DoT работает на отдельном порту 853 — его легко закрыть на файрволе. Для корпоративной <a title="SNMP: что это такое, как работает и как настроить мониторинг сети" href="https://it-apteka.com/snmp-chto-jeto-takoe-kak-rabotaet-i-kak-nastroit-monitoring-seti/" target="_blank" rel="noopener" data-wpil-monitor-id="2317">сети где нужен контроль и мониторинг</a> DNS-трафика — DoT управляемее. Для дома вопрос закрыт: DoH.</p>
<h3>Что делать если провайдер блокирует DoH серверы по IP?</h3>
<p>На практике заблокировать IP Cloudflare 1.1.1.1 означает заблокировать огромный кусок интернета — это нереально для рядового провайдера. Если всё же столкнулся — используй dnscrypt-proxy с несколькими серверами в конфиге, он автоматически переключается на доступный. Или NextDNS — у него уникальный персональный URL, заблокировать сложнее.</p>
<h3>DoH и VPN — нужно ли включать оба?</h3>
<p>При включённом VPN DNS-запросы обычно идут через VPN-сервер. DoH в браузере поверх VPN — двойное шифрование, не вредит. Смысла немного: VPN уже скрывает DNS от провайдера. Исключение: если VPN-клиент имеет утечки DNS (DNS leak) — DoH их не закроет. Проверь утечки на dnsleaktest.com и исправляй настройки VPN.</p>
<h3>Нужно ли настраивать DoH в каждом браузере отдельно?</h3>
<p>Если настроил DoH на уровне Windows 11 — большинство браузеров подхватят его автоматически. Firefox всегда использует собственные настройки DoH независимо от системы. Chrome при явно выбранном провайдере тоже игнорирует системный DNS. Для полного покрытия: настрой на уровне системы или роутера и отдельно в Firefox.</p>
<h3>Влияет ли DoH на скорость интернета?</h3>
<p>Практически нет. Добавляет задержку на TLS handshake при первом DNS-запросе к домену. Последующие запросы используют keep-alive и работают быстро. Cloudflare 1.1.1.1 показывает медианную задержку DNS около 11 мс — быстрее большинства провайдерских серверов. Скорость загрузки страниц на практике не меняется заметно.</p>
<h3>Почему DNS over HTTPS не работает после настройки в Windows 11?</h3>
<p>Самая частая причина: IP-адрес введённого сервера отсутствует в списке Known DoH Servers Windows. Windows не знает какой URL использовать для этого IP и молча откатывается на обычный DNS. Проверь через Get-DnsClientDohServerAddress — если поле DohTemplate пустое, добавь сервер через Add-DnsClientDohServerAddress с явным указанием DohTemplate.</p>
<h3>Что такое DNS leak и как он связан с DoH?</h3>
<p>DNS leak — утечка DNS-запросов за пределы настроенного канала. Например: включил VPN, но браузер всё равно резолвит DNS через системный сервер провайдера — VPN-туннель для DNS не работает. Результат: VPN скрывает содержимое трафика, но провайдер видит какие сайты ты посещаешь по DNS.</p>
<p>DoH может быть частью защиты от DNS leak: если настроен DoH на уровне системы и браузер использует системный DNS — запросы пойдут через DoH даже без VPN. Но если VPN-клиент имеет собственный DNS который перебивает системный — DoH не поможет. Проверь утечки на dnsleaktest.com при включённом VPN. Там показывает через какие серверы реально идут DNS-запросы.</p>
<h3>Можно ли настроить свой DoH-сервер дома?</h3>
<p>Да. AdGuard Home и Pi-hole с cloudflared — это локальные DoH-прокси. Но локальный сервер дома не решает проблему приватности от провайдера: трафик от локального сервера до upstream DoH-сервера (Cloudflare) всё равно идёт через провайдера — но уже зашифрованный через DoH. То есть схема работает: устройства резолвят у тебя на Pi-hole, Pi-hole спрашивает у Cloudflare через DoH. Провайдер видит только зашифрованный HTTPS-трафик до 1.1.1.1.</p>
<p>Для полностью автономного DoH-сервера без внешних зависимостей понадобится ещё и свой рекурсивный резолвер (unbound). Это уже отдельная история с настройкой DNSSEC-валидации. Для домашней сети избыточно, но если интересно — гугли «Pi-hole unbound recursive DNS».</p>
<h3>Почему у меня разные результаты на 1.1.1.1/help в разных браузерах?</h3>
<p>Каждый браузер управляет DNS независимо. Firefox с network.trr.mode=3 всегда использует свои DoH-настройки, игнорируя системный DNS. Chrome при явно выбранном DoH-провайдере тоже. Edge и Opera — аналогично.</p>
<p>При этом другие программы — мессенджеры, торрент-клиенты, игровые клиенты — используют системный DNS. Если DoH настроен только в браузере — трафик этих программ идёт через провайдерский DNS в открытом тексте.</p>
<p>Для полного покрытия: настрой DoH на уровне Windows 11 (системный) или роутера (для всех устройств). Тогда все программы получают DoH независимо от браузерных настроек.</p>
<h3>Есть ли бесплатные DoH-серверы в России?</h3>
<p>Яндекс предоставляет бесплатный DoH — адреса описаны в разделе «Яндекс DNS over HTTPS». Российская юрисдикция, быстрые серверы для пользователей в РФ.</p>
<p>SkyDNS и некоторые другие российские провайдеры DNS также поддерживают DoH. Проверь конкретного провайдера на их сайте — ищи раздел «DNS over HTTPS» или «DoH».</p>
<p>Cloudflare и Google тоже бесплатны и работают из России — с небольшой большей задержкой чем Яндекс, но с лучшей политикой приватности.</p>
<h3>Можно ли использовать DoH на роутере и в браузере одновременно?</h3>
<p>Да, это работает. Если на Keenetic настроен DoH с Cloudflare, а в Firefox отдельно настроен DoH с Google — Firefox использует Google DoH, все остальные устройства в сети используют Cloudflare DoH через роутер. Конфликта нет — каждый сам управляет своим DNS-трафиком.</p>
<p>Дублирование DoH не даёт дополнительной безопасности, но и не вредит. Если хочешь единообразие — настрой на роутере и отключи в браузерах (кроме Firefox — его лучше настроить явно т.к. он игнорирует системный DNS).</p>
<h2>Итог</h2>
<p>Если читал всю статью — у тебя теперь полное понимание DoH: что это, почему нужно, как работает изнутри, как настроить на любой платформе дома и что делать когда что-то идёт не так.</p>
<p>Если пришёл за конкретным разделом — надеюсь нашёл нужное. Навигация по заголовкам работает с любого места.</p>
<p>Ты настроил DNS over HTTPS. Запросы идут в зашифрованном HTTPS-туннеле на 443-й порт. Провайдер видит соединения с Cloudflare или Google — неотличимые от обычного браузинга. Никакого открытого 53-го порта, никаких логов на стороне провайдера о том, какие домены ты резолвишь.</p>
<p>Что реально получил: DNS-запросы зашифрованы, DNS-спуфинг не работает, блокировки по DNS через провайдерский сервер больше не применяются. Что по-прежнему видно провайдеру: SNI при TLS-рукопожатии, IP-адреса назначения, объём трафика.</p>
<p>Слои защиты поверх DoH — ECH (Encrypted Client Hello) скрывает SNI, уже работает в Firefox и Chrome для Cloudflare-сайтов. VPN скрывает IP-адрес назначения и весь трафик. Tor — максимальный уровень, но ценой скорости.</p>
<p>DoH — нормальный и достаточный уровень защиты DNS для домашней сети. Настраивается один раз, работает тихо, не тормозит интернет. Это не магия и не полная анонимность — просто убираем самый дешёвый и распространённый способ наблюдения за трафиком.</p>
<p>Три слоя для максимальной приватности DNS и трафика в порядке нарастания сложности: DoH (убирает DNS-лог у провайдера, настройка 10 минут) — ECH (убирает SNI, включается само в Firefox и Chrome для поддерживающих сайтов) — VPN или Tor (скрывает IP-адреса назначений и весь трафик).</p>
<p>Для большинства домашних сценариев достаточно первого слоя. Задача выполнена — за 10 минут. Нормальный результат.</p>
"Если
<br />
Сначала проверь на https://1.1.1.1/help — там написано чёрным по белому. Если DoH показывает "No" после всех настроек — пиши в комментарии с указанием ОС, браузера и что именно делал. Разберёмся.<br />
Быстрый ответ: как включить DNS over HTTPS
- Windows 11 — Параметры — Сеть и Интернет — свойства подключения — DNS вручную (1.1.1.1) — выбери «Только зашифрованное (DoH)»
- Chrome — chrome://settings/security — «Использовать безопасный DNS» — включи и выбери провайдера явно
- Firefox — about:config — network.trr.mode = 3, network.trr.uri = https://cloudflare-dns.com/dns-query
- Keenetic — Система — установи компонент «DNS-over-HTTPS прокси» — Интернет — DNS — переключи на DoH
- Windows 10 нативно не поддерживает DoH — используй dnscrypt-proxy или настрой браузер
Что происходит с твоими DNS-запросами прямо сейчас
DNS over HTTPS настройка нужна потому, что прямо сейчас твой компьютер сливает список сайтов провайдеру. Открываешь браузер, вводишь адрес — до того как загрузится первый байт страницы, компьютер отправляет DNS-запрос: «какой IP у этого домена?». Запрос летит в открытом тексте на порт 53. Провайдер его видит. Системный администратор на работе — видит. Любой в одной сети с тобой в кафе — тоже.
HTTPS шифрует содержимое страниц. Но DNS-запрос уходит ещё до установки HTTPS-соединения. Вот здесь и живёт дыра в приватности, которую закрывает DNS over HTTPS.
DoH оборачивает запросы в HTTPS-туннель на порт 443 — тот же, что у обычного веб-трафика. Провайдер видит соединение с сервером Cloudflare или Google. Какие домены ты резолвишь — нет.
За 5-10 минут настройки. Без платного софта.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Браузер"] --> B["Обычный DNS порт 53"]
A --> C["DNS over HTTPS порт 443"]
B --> D["Открытый текст - виден провайдеру"]
C --> E["HTTPS туннель - зашифровано"]
E --> F["DoH-сервер Cloudflare / Google / Quad9"]
style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style B fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#991b1b
style C fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style D fill:#f8fafc,stroke:#ef4444,stroke-width:2px,color:#991b1b
style E fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style F fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
Что тебе понадобится и что будет в статье
Разберём настройку DNS over HTTPS на всех основных платформах: Windows 11 нативно, Windows 10 через dnscrypt-proxy, Chrome, Firefox, Opera, роутер Keenetic. Плюс Android и iOS вкратце, подробный разбор DoH-провайдеров, корпоративные сценарии, troubleshooting типичных ошибок и несколько способов проверить что DoH реально работает, а не просто «вроде включён».
Статья структурирована по принципу «проблема — решение — детали». Быстрый ответ в начале. Подробности дальше. Можешь остановиться после нужного раздела — каждый самодостаточен.
Структура статьи по платформам: Windows 11 нативный DoH, Windows 10 через dnscrypt-proxy, Chrome, Firefox, Opera, Edge, роутер Keenetic для всей домашней сети. Плюс Android, iOS, подробное сравнение DoH-провайдеров, корпоративные сценарии, troubleshooting и мониторинг.
Каждый раздел самодостаточен. Можешь прыгнуть прямо к нужной платформе — не нужно читать всё с начала. Если что-то не заработало — смотри секцию Troubleshooting или чек-лист ошибок перед ней.
Что нужно заранее:
Единственное исключение: Windows 10 для системного DoH потребует dnscrypt-proxy — бесплатная open source утилита с GitHub.
Какой способ настройки выбрать: быстрый выбор
Четыре сценария — четыре ответа без лишних слов.
Сценарий 1: хочу DoH только в браузере, быстро, без прав администратора. Открой настройки Chrome, Firefox или Opera — включи безопасный DNS с Cloudflare. Готово. Работает для браузера, не закрывает системный DNS.
Сценарий 2: хочу DoH для всей системы на Windows 11. Параметры — Сеть и Интернет — свойства адаптера — DNS вручную 1.1.1.1 — только зашифрованное. 5 минут, нужны права администратора. Закрывает DNS от всех программ.
Сценарий 3: Windows 10, хочу DoH для всей системы. Скачай dnscrypt-proxy с GitHub, распакуй, установи как службу, пропиши 127.0.0.1 как DNS в настройках адаптера. 15-20 минут, нужны права администратора.
Сценарий 4: хочу DoH для всех устройств в домашней сети без настройки каждого устройства. Keenetic с NDMS 3.1+, установи компонент DoH прокси, настрой Cloudflare URL. Один раз — все устройства получают DoH автоматически. Включая смартфоны и Smart TV.
Оптимальная комбинация для дома: DoH на Keenetic (все устройства) + Firefox с network.trr.mode=3 (Firefox игнорирует системный DNS, нужно настроить явно).
Сколько устройств в сети и где настраивать DoH
Одно устройство — Windows 11 или браузер. Быстро, просто, без роутерного доступа.
2-4 устройства — роутер Keenetic если есть поддержка DoH (NDMS 3.1+). Настроил один раз — все получают. Плюс Firefox на каждом настроить отдельно: он игнорирует роутерный DNS.
5+ устройств, IoT, Smart TV, гости — только роутер. Настраивать каждое устройство отдельно невозможно и бессмысленно. Роутер закрывает всю сеть одной настройкой. На Keenetic это занимает 10 минут включая установку компонента.
Корпоративная сеть или рабочая группа — корпоративный DoH-сервер (см. соответствующий раздел). Или блокировка внешнего DoH и управление через групповые политики. Зависит от политики безопасности.
Три минуты диагностики: проверь свою ситуацию прямо сейчас
Прежде чем читать дальше — открой в браузере:
https://1.1.1.1/help
Если DoH: No — у тебя открытый DNS. Провайдер видит что ты читаешь. Эта статья объяснит как исправить.
Если DoH: Yes — DoH уже работает, возможно через автоматическую настройку браузера. Но это проверяет только конкретный браузер. Другие программы на компьютере — мессенджеры, игровые клиенты, обновления — могут всё ещё использовать незашифрованный DNS. Читай раздел про системную настройку.
Если страница не загружается — возможно Cloudflare заблокирован провайдером. Попробуй Google DNS check: открой https://dns.google/resolve?name=example.com&type=A. Если ответил JSON — Google DoH доступен.
Откуда берётся проблема: почему обычный DNS небезопасен
DNS придумали в 1983 году. Тогда интернет состоял из нескольких университетских сетей и о приватности никто не думал. DNS работает на UDP порт 53 — без шифрования, без аутентификации. Любой кто видит твой трафик — видит и список сайтов, которые ты посещаешь.
С тех пор ничего принципиально не изменилось в базовом протоколе. Провайдеры строят логи DNS-запросов — это данные для таргетированной рекламы, инструмент для выполнения требований регуляторов и просто побочный эффект того как работает маршрутизация. Добавь к этому публичные точки Wi-Fi, где в одной подсети может сидеть кто угодно с Wireshark.
HTTPS решил проблему содержимого страниц. DNS остался открытым. DoH закрывает этот пробел — и делает это элегантно: прячет DNS внутрь обычного HTTPS-трафика.
Важно понимать что именно DoH скрывает: сами DNS-запросы — то есть список доменов которые ты резолвишь. Это не полная анонимность. IP-адрес назначения и SNI при установке TLS-соединения провайдер всё ещё видит. Но убрать самый дешёвый способ наблюдения за трафиком — уже хорошо.
Как DoH работает изнутри
Обычный DNS-запрос выглядит так: UDP-пакет летит на порт 53 с открытым текстом «дай мне IP для example.com». Ответ — тоже открытый текст. Без шифрования, без проверки что отвечает именно нужный сервер. На этом строятся DNS-спуфинг и DNS-отравление кэша.
DoH упаковывает DNS-запрос иначе. Запрос кодируется либо в DNS wireformat (application/dns-message) через POST, либо в JSON (application/dns-json) через GET. Всё это идёт по обычному HTTPS-соединению на порт 443. TLS обеспечивает шифрование и аутентификацию сервера — нельзя подменить ответ как при классическом DNS-спуфинге.
DoH-сервер Cloudflare на 1.1.1.1 выглядит для провайдера как обычный веб-сервер на 443-м порту. Единственный способ отличить DoH-трафик от HTTPS — это DPI (Deep Packet Inspection) по SNI или анализ паттернов запросов. Без DPI — невозможно.
Технически POST-запрос выглядит так:
POST /dns-query HTTP/2
Host: cloudflare-dns.com
Content-Type: application/dns-message
Accept: application/dns-message
[бинарные данные DNS-запроса в wireformat]
Для отладки удобнее JSON API через GET:
curl -H 'accept: application/dns-json' \
'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Ответ JSON:
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [{"name": "example.com.", "type": 1}],
"Answer": [
{"name": "example.com.", "type": 1, "TTL": 86400, "data": "93.184.216.34"}
]
}
Поле AD: true — DNSSEC-валидация прошла. Status: 0 — запрос успешен (NOERROR). Это стандартный RFC 8484 — спецификация DNS over HTTPS, опубликованная в 2018 году.
Угрозы которые закрывает DoH
Без DoH против тебя работает несколько векторов атаки. Разберём каждый коротко.
Пассивный перехват: провайдер или кто угодно на пути трафика логирует DNS-запросы. Получает полный список сайтов которые ты посещаешь, с таймстампами. Продаёт рекламщикам или отдаёт по требованию. DoH закрывает полностью.
DNS-спуфинг: атакующий в той же сети перехватывает твой UDP 53-й запрос и отвечает поддельным IP. Ты думаешь что идёшь на bank.example.com — а попадаешь на клон. DoH с TLS-аутентификацией сервера делает этот вектор нерабочим — нельзя подделать ответ от сервера с валидным сертификатом.
DNS-кэш отравление: атакующий подсовывает поддельные записи в кэш DNS-сервера провайдера. Все пользователи этого сервера получают неправильный IP. DoH + DNSSEC закрывает этот вектор: DNSSEC подписывает DNS-записи криптографически.
Блокировка по DNS: провайдер блокирует сайты на уровне DNS — возвращает пустой ответ или IP-адрес блокировочной страницы. DoH использует сторонний сервер который не знает о блокировках провайдера.
Последнее — отдельная тема со своими нюансами и юридическими аспектами. Просто фиксируем факт.
DoH vs DoT: в чём разница и что выбрать
DNS over TLS (DoT) тоже шифрует DNS-запросы — но работает на отдельном порту 853. Его легко заблокировать: закрываешь один порт на файрволе — DoT умер. DoH идёт по 443-му вместе со всем HTTPS-трафиком. Чтобы заблокировать DoH, провайдеру придётся заблокировать весь HTTPS — это ядерный вариант, который никто не применяет.
Есть ещё DNS over QUIC (DoQ) — следующее поколение, работает на UDP с QUIC-транспортом. Пока экспериментальный, поддержка ограничена.
Для домашнего пользователя DoH удобнее и живучее. Для корпоративной сети где нужен централизованный контроль DNS-трафика — DoT управляемее: отдельный порт проще мониторить и фильтровать.
| Параметр |
DNS over HTTPS (DoH) |
DNS over TLS (DoT) |
Обычный DNS |
| Порт |
443 |
853 |
53 |
| Шифрование |
HTTPS / TLS |
TLS |
Нет |
| Сложность блокировки |
Высокая |
Средняя |
Низкая |
| Нативная поддержка Windows |
Windows 11 |
Только сторонний софт |
Все версии |
| Поддержка браузерами |
Chrome, Firefox, Opera, Edge |
Нет нативной |
Нативно |
| Задержка Cloudflare (медиана) |
~11 мс |
~20-30 мс |
50-150 мс провайдер |
Какой DoH-сервер выбрать
Когда включаешь DoH — ты не избавляешься от посредника, ты его меняешь. Вместо провайдера твои DNS-запросы видит DoH-сервер. Разница в том, кто это, где хранятся данные и по каким законам.
| Провайдер |
DoH URL |
IP-адреса |
Логи |
Фильтрация |
| Cloudflare |
https://cloudflare-dns.com/dns-query |
1.1.1.1 / 1.0.0.1 |
Не хранит постоянно |
Нет |
| Google |
https://dns.google/dns-query |
8.8.8.8 / 8.8.4.4 |
Хранит временно |
Нет |
| Quad9 |
https://dns.quad9.net/dns-query |
9.9.9.9 |
Не хранит |
Малварь и фишинг |
| AdGuard |
https://dns.adguard.com/dns-query |
94.140.14.14 |
Не хранит |
Реклама и трекеры |
| NextDNS |
https://dns.nextdns.io/ВАШ_ID |
Персональный |
Опционально |
Кастомные списки |
| Яндекс (базовый) |
https://common.dot.dns.yandex.net/dns-query |
77.88.8.8 / 77.88.8.1 |
Хранит |
Нет |
Cloudflare — первый выбор для большинства. Самые низкие задержки среди публичных DoH-серверов, серверы по всему миру, аудит политики приватности проводил KPMG. Google стабилен и быстр, но данные обрабатываются внутри Google-экосистемы. Quad9 — если нужна блокировка вредоносных доменов на уровне DNS без отдельного Pi-hole. Яндекс — российская юрисдикция, быстрые серверы на территории РФ, логи хранятся.
Подробное сравнение DoH-провайдеров: что за каждым стоит
Выбор DoH-сервера — это выбор кому доверяешь свои DNS-запросы. Разберём основных провайдеров подробнее.
Cloudflare 1.1.1.1
Cloudflare запустил 1.1.1.1 в 2018 году. Аудит политики приватности проводил KPMG — независимая проверка что Cloudflare реально не хранит запросы дольше 25 часов и не использует их для рекламного профилирования. Для параноиков есть аудиторский отчёт на сайте Cloudflare.
Инфраструктура Cloudflare — одна из крупнейших CDN в мире. Серверы есть практически в каждой крупной точке обмена трафиком. Для большинства пользователей в России — задержка 5-15 мс. Это быстрее большинства провайдерских DNS.
У Cloudflare есть три варианта DoH:
https://cloudflare-dns.com/dns-query - базовый, без фильтрации
https://security.cloudflare-dns.com/dns-query - блокирует малварь и фишинг
https://family.cloudflare-dns.com/dns-query - блокирует малварь + взрослый контент
IP-адреса для 1.1.1.1 также дают разные уровни фильтрации: 1.1.1.2 (только малварь), 1.1.1.3 (малварь + взрослый контент).
Google Public DNS
Google DNS работает с 2009 года. Самый известный публичный DNS в мире. Стабильность — исключительная, downtime практически нулевой. Инфраструктура Google охватывает весь мир.
Политика приватности: Google хранит полные IP-адреса запросов около 24-48 часов «в целях диагностики». Анонимизированные данные — дольше. Для рекламного профилирования DNS-данные не используются, согласно политике. Но Google — рекламная компания, и это стоит держать в голове при выборе.
Для пользователей которые и так используют Chrome, Android и Gmail — дополнительного риска от Google DNS немного: Google уже знает о тебе больше чем из DNS-логов.
Quad9
Quad9 — некоммерческий провайдер, зарегистрирован в Швейцарии. Финансируется IBM Security и рядом других организаций. Швейцарская юрисдикция — строгие законы о приватности данных.
Ключевая особенность: Quad9 блокирует вредоносные домены используя списки от 20+ организаций по кибербезопасности. IBM X-Force, Anti-Phishing Working Group, Abuse.ch и другие. Домены, распространяющие малварь, командные серверы ботнетов, фишинговые сайты — Quad9 блокирует их на уровне DNS.
Для домашней сети с детьми или если нужна дополнительная защита без отдельного Pi-hole — Quad9 хороший выбор. Лоного срабатываний на легитимные сайты — Quad9 обновляет списки несколько раз в день.
AdGuard DNS
AdGuard DNS — продукт компании AdGuard, известной своим блокировщиком рекламы. Серверы в разных регионах, включая Россию.
Базовый вариант (94.140.14.14) блокирует рекламу и трекеры на уровне DNS — не только для браузеров, но для всех приложений. Если на телефоне стоит AdGuard DNS — реклама в мобильных приложениях тоже блокируется (в пределах DNS-блокировки).
Есть Family Protection вариант с блокировкой взрослого контента: 94.140.14.15. И вариант без фильтрации для тех кто хочет только шифрование: 94.140.15.15.
NextDNS — персональный DoH
NextDNS отличается от остальных: ты получаешь персональный DoH-эндпоинт с уникальным ID. Через веб-интерфейс настраиваешь списки блокировки (из нескольких десятков готовых — от рекламы до трекеров разных категорий), белые списки, родительский контроль по времени суток.
Статистика показывает все DNS-запросы по устройствам — видишь что именно запрашивает каждое устройство в доме. Телевизор Samsung ходит к серверам аналитики 200 раз в день? Видно и блокируется одной кнопкой.
Бесплатный план — 300 000 запросов в месяц. Среднестатистическая семья из 4 человек с IoT-устройствами укладывается в это с запасом. При превышении лимита DoH продолжает работать, но без фильтрации — до следующего месяца.
Регистрация: nextdns.io. После регистрации получаешь ID вида abc123. URL будет: https://dns.nextdns.io/abc123
Системные требования
На момент публикации актуальны: Windows 11 23H2, Chrome 124, Firefox 126, Opera 109, Keenetic NDMS 3.10. Перед настройкой проверь актуальные релизы.
| Платформа |
Минимальная версия |
Нативная поддержка DoH |
Охват трафика |
| Windows 11 |
Любая |
Да, в параметрах сети |
Вся система |
| Windows 10 |
20H1 (Preview) |
Нет — только через dnscrypt-proxy |
Вся система через прокси |
| Chrome |
83+ |
Да |
Только браузер |
| Firefox |
62+ |
Да |
Только браузер |
| Opera |
70+ |
Да |
Только браузер |
| Edge |
85+ |
Да |
Только браузер |
| Keenetic |
NDMS 3.1+ |
Да, компонент DoH прокси |
Вся домашняя сеть |
| Android |
9 (Pie) |
DNS over TLS нативно, DoH — через браузер |
Зависит от способа |
| iOS |
14+ |
Через профили конфигурации |
Вся система |
Порты и протоколы
| Протокол |
Порт |
Транспорт |
Шифрование |
Доступен снаружи |
| DNS (обычный) |
53 |
UDP / TCP |
Нет |
Да, открытый текст |
| DNS over TLS (DoT) |
853 |
TCP |
TLS |
Да, легко блокируется |
| DNS over HTTPS (DoH) |
443 |
TCP |
HTTPS / TLS |
Неотличим от HTTPS |
| DNS over QUIC (DoQ) |
853 |
QUIC |
TLS 1.3 |
Экспериментально |
Как настроить DNS over HTTPS в Windows 11
В Windows 11 DoH встроен нативно с самого начала. Настраивается через параметры сети без сторонних утилит. Работает на уровне всей системы — закрывает DNS-трафик от всех приложений, не только браузера.
Разбор параметров DoH в Windows 11: что означает каждая настройка
Когда ты выбираешь «Только зашифрованное (DNS over HTTPS)» — Windows устанавливает несколько внутренних параметров. Разберём что за ними стоит.
В Windows 11 три варианта шифрования DNS:
- Без шифрования — обычный DNS на 53-й порт. Всё открыто.
- Предпочтительно зашифрованное — Windows сначала пробует DoH. Если DoH недоступен — откатывается на обычный DNS. Удобно для случаев когда DoH-сервер может быть недоступен, но минус — если DoH не работает, DNS продолжит работать незашифрованно без предупреждений.
- Только зашифрованное (DNS over HTTPS) — строгий режим. Если DoH недоступен — DNS не работает вообще. Максимальная защита, минимальная толерантность к сбоям.
Какой выбрать: для домашнего использования — «Только зашифрованное». Интернет достаточно стабилен, DoH-серверы Cloudflare крайне редко падают. Для ноутбука который используется в разных сетях включая потенциально проблемные — «Предпочтительно зашифрованное» если хочешь чтобы DNS работал всегда.
Параметр AutoUpgrade в PowerShell-команде Add-DnsClientDohServerAddress означает: Windows автоматически обновит URL DoH-сервера если провайдер опубликует новый. Полезно для будущих изменений — ставь $True.
AllowFallbackToUdp $False — жёсткий запрет на откат к обычному UDP DNS 53. Именно этот параметр делает настройку «только зашифрованной». При $True — система откатится на обычный DNS при недоступности DoH-сервера.
Как работает Windows DNS-резолвер в режиме DoH
Когда настроен DoH в Windows 11, процесс резолвинга выглядит так:
- Приложение вызывает getaddrinfo() с именем домена
- DNS Client Service (Dnscache) получает запрос
- Проверяет локальный кэш — если есть свежая запись, отвечает сразу
- Если нет — отправляет DoH-запрос на HTTPS-сервер (1.1.1.1 на порту 443)
- Получает ответ, кэширует, возвращает приложению
Весь этот процесс прозрачен для приложений. Они вызывают стандартные API, не зная что под капотом DNS-запросы идут через DoH. Именно поэтому системный DoH в Windows 11 закрывает трафик от всех программ — не только браузеров.
Проверить кэш DNS Windows:
# Просмотр кэша
Get-DnsClientCache | Select-Object Entry, RecordType, TimeToLive, Data
# Очистка кэша (иногда нужно при диагностике)
Clear-DnsClientCache
После очистки кэша следующие DNS-запросы пойдут напрямую к DoH-серверу — удобно для отладки задержек.
Шаг 1. Открой настройки сетевого адаптера
Нажми Win + I. В открывшихся Параметрах перейди в раздел «Сеть и Интернет». Выбери своё подключение — Ethernet или Wi-Fi. Нажми «Свойства оборудования». Это другой экран, не просто «Свойства» подключения — ищи именно «Свойства оборудования».
Шаг 2. Переключи DNS на ручное управление
В разделе «Назначение DNS-сервера» нажми «Изменить». Переключи выпадающий список с «Автоматически (DHCP)» на «Вручную». Включи переключатель IPv4.
Введи адреса DoH-сервера. Для Cloudflare:
Основной DNS: 1.1.1.1
Альтернативный DNS: 1.0.0.1
Для Google DNS:
Основной DNS: 8.8.8.8
Альтернативный DNS: 8.8.4.4
Если используешь IPv6 — включи переключатель IPv6 и добавь адреса Cloudflare:
Основной DNS: 2606:4700:4700::1111
Альтернативный DNS: 2606:4700:4700::1001
Шаг 3. Включи шифрование для каждого адреса
Рядом с каждым DNS-адресом появился выпадающий список «Предпочтительное шифрование DNS». Раскрой его и выбери «Только зашифрованное (DNS over HTTPS)». Повтори для основного и альтернативного адреса.
Нажми «Сохранить». Всё — Windows теперь шифрует DNS-запросы на уровне всей системы.
Список известных DoH-серверов Windows
Windows 11 проверяет введённый IP по встроенному списку Known DoH Servers. Cloudflare, Google, Quad9 — в нём есть. Если введёшь нестандартный IP — Windows молча откатится на обычный DNS без предупреждения. Для нестандартных серверов нужно добавлять их явно через PowerShell.
Шаг 4. Проверь через PowerShell
Открой PowerShell от имени администратора:
Get-DnsClientDohServerAddress
Ожидаемый вывод — список серверов с заполненным полем DohTemplate:
ServerAddress AllowFallbackToUdp AutoUpgrade DohTemplate
1.1.1.1 False True https://cloudflare-dns.com/dns-query
1.0.0.1 False True https://cloudflare-dns.com/dns-query
Если список пустой или DohTemplate пустой — настройки не применились. Добавь сервер вручную:
Add-DnsClientDohServerAddress `
-ServerAddress "1.1.1.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
Параметр AllowFallbackToUdp $False: если DoH недоступен — DNS не работает вообще. Для максимальной защиты. Если хочешь работающий DNS даже при недоступном DoH-сервере — ставь $True.
Добавь сразу и альтернативный адрес:
Add-DnsClientDohServerAddress `
-ServerAddress "1.0.0.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
Что делать если DoH слетел после обновления Windows
Крупные обновления Windows — 22H2, 23H2 — могут сбросить настройки DNS к дефолтным. DNS продолжит работать через провайдерский сервер, просто незашифрованно. Никакой ошибки не будет — просто тихо перестал работать DoH.
Быстро проверь текущий DNS:
Get-DnsClientServerAddress | Where-Object AddressFamily -eq 2 | Select-Object InterfaceAlias, ServerAddresses
Если видишь IP вида 192.168.x.x (роутер) или адреса провайдера — DoH настроен либо на роутере, либо слетел. Проверь на 1.1.1.1/help. Если No — пройди по шагам из раздела настройки выше заново. Занимает 2 минуты.
Чтобы не повторять это вручную — можно зафиксировать нужные DNS через PowerShell скрипт и добавить его в автозапуск после обновлений. Создай файл set-doh-dns.ps1:
# Получаем все активные сетевые адаптеры с IPv4
$adapters = Get-NetAdapter | Where-Object Status -eq "Up"
foreach ($adapter in $adapters) {
# Проверяем что адаптер использует DHCP для DNS
$dns = Get-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4
# Устанавливаем Cloudflare DoH
Set-DnsClientServerAddress `
-InterfaceIndex $adapter.InterfaceIndex `
-ServerAddresses ("1.1.1.1","1.0.0.1")
Write-Host "DNS настроен для $($adapter.Name): 1.1.1.1, 1.0.0.1"
}
Запускай этот скрипт от имени администратора после каждого крупного обновления Windows — или добавь в Планировщик заданий по триггеру «После обновления системы.
Групповая политика для DoH в Windows 11 (для организаций)
Если настраиваешь DoH на нескольких машинах в домене — используй групповую политику. Открой gpedit.msc — Computer Configuration — Administrative Templates — Network — DNS Client.
Найди политику «Configure DNS over HTTPS (DoH)». Включи и выбери режим:
- 0 — DoH выключен принудительно
- 1 — DoH включён если доступен (opportunistic)
- 2 — Только DoH, обычный DNS заблокирован
Для принудительного DoH на всех машинах в домене — режим 2. Для домашнего использования gpedit.msc работает только в Pro и выше. В Home — только через Settings GUI из шагов выше.
DNS over HTTPS в Windows 10
Microsoft добавила нативный DoH только в Windows 11. В Windows 10 три пути — выбирай по задаче.
Путь 1. Настроить DoH в браузере
Самый быстрый способ. Работает только для конкретного браузера — системный DNS остаётся незашифрованным. Подходит если важен только браузерный трафик. Настройка для Chrome, Firefox и Opera — в разделах ниже.
Путь 2. dnscrypt-proxy — DoH для всей системы
Лёгкий проксирующий сервис. Перехватывает все системные DNS-запросы и пересылает через DoH. Работает как Windows-служба, запускается автоматически. Этот вариант закрывает DNS-трафик от всех программ, не только браузера.
Скачай актуальный релиз с GitHub: https://github.com/DNSCrypt/dnscrypt-proxy/releases
Бери версию dnscrypt-proxy-win64-*.zip (или win32 если система 32-бит). Распакуй в удобное место, например:
C:\dnscrypt-proxy\
Открой файл dnscrypt-proxy.toml в любом текстовом редакторе. Найди и измени эти строки:
## Выбор серверов - Cloudflare по умолчанию
server_names = ['cloudflare', 'cloudflare-ipv6']
## Адрес прослушивания - 127.0.0.1 порт 53
listen_addresses = ['127.0.0.1:53']
Если хочешь Quad9 с блокировкой малвари:
server_names = ['quad9-dnscrypt-ip4-filter-pri']
Если хочешь несколько серверов для отказоустойчивости:
server_names = ['cloudflare', 'quad9-dnscrypt-ip4-filter-pri']
Установи и запусти как службу — выполни от имени администратора в PowerShell:
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -service install
.\dnscrypt-proxy.exe -service start
Проверь что служба запустилась:
Get-Service dnscrypt-proxy
Статус должен быть Running. Теперь в настройках сетевого адаптера пропиши DNS вручную. Нажми Win + R, введи ncpa.cpl, Enter. Правой кнопкой на активном адаптере — Свойства — Протокол интернета версии 4 (TCP/IPv4) — Свойства. Выбери «Использовать следующие адреса DNS-серверов»:
Предпочитаемый DNS-сервер: 127.0.0.1
Альтернативный DNS-сервер: (оставь пустым)
Нажми OK. Все DNS-запросы от всех программ пойдут через dnscrypt-proxy, который отправит их в Cloudflare или Quad9 через DoH.
Конфликт с DNS Client в Windows 10
Если после установки dnscrypt-proxy
DNS перестал работать — служба Windows DNS Client (Dnscache) может занимать порт 53. Проверь: netstat -ano | findstr «:53 » в PowerShell. Если порт занят Dnscache — останови службу и поставь ручной запуск: Stop-Service Dnscache, Set-Service Dnscache -StartupType Manual. Затем перезапусти dnscrypt-proxy.
Проверка работы dnscrypt-proxy
Запусти диагностику встроенным инструментом:
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -resolve cloudflare.com
Должен вернуться IP-адрес Cloudflare. Если ошибка — смотри лог: он пишется в dnscrypt-proxy.log в той же папке.
Расширенная настройка dnscrypt-proxy
После базовой установки dnscrypt-proxy можно настроить под себя. Открой dnscrypt-proxy.toml и разберём ключевые параметры.
Логирование — по умолчанию отключено для приватности. Включи если нужна диагностика:
## Файл лога (оставь пустым чтобы не логировать)
log_file = 'dnscrypt-proxy.log'
log_level = 2
## Лог DNS-запросов (для отладки - потом отключи)
[query_log]
file = 'query.log'
Кэширование — ускоряет повторные запросы:
## Включить кэш
cache = true
cache_size = 4096
cache_min_ttl = 2400
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600
Блокировка рекламных доменов прямо в dnscrypt-proxy. Создай файл blocked-names.txt и добавь домены:
ads.example.com
tracker.example.com
В toml-конфиге:
[blocked_names]
blocked_names_file = 'blocked-names.txt'
log_file = 'blocked-names.log'
log_format = 'tsv'
Или используй готовые списки — dnscrypt-proxy поддерживает автоматическое скачивание:
[blocked_names]
blocked_names_file = 'blocked-names.txt'
[sources]
[sources.public-resolvers]
urls = ['https://raw.githubusercontent.com/nicehash/dnscrypt-proxy-acl/master/blocked-names.txt']
cache_file = 'blocked-names.txt'
minisign_key = ''
refresh_delay = 72
prefix = ''
Балансировка между несколькими DoH-серверами для отказоустойчивости:
## Список серверов - dnscrypt-proxy выберет самый быстрый
server_names = ['cloudflare', 'cloudflare-ipv6', 'quad9-dnscrypt-ip4-filter-pri']
## Балансировка нагрузки - fastest выбирает сервер с минимальной задержкой
lb_strategy = 'fastest'
lb_estimator = true
После изменений конфига перезапусти службу:
Restart-Service dnscrypt-proxy
Проверка dnscrypt-proxy с подробным выводом
Запусти dnscrypt-proxy напрямую (не как службу) для диагностики:
# Останови службу
Stop-Service dnscrypt-proxy
# Запусти напрямую с verbose выводом
cd C:\dnscrypt-proxy
.\dnscrypt-proxy.exe -check
Команда -check проверяет конфиг и доступность серверов без запуска прокси. Покажет какие серверы доступны, задержки, поддерживаемые протоколы.
# Тест конкретного резолвинга
.\dnscrypt-proxy.exe -resolve cloudflare.com
Вывод покажет IP-адрес, через какой сервер прошёл запрос, задержку. Если ошибка — смотри подробнее:
.\dnscrypt-proxy.exe -loglevel 0 -check
Уровень 0 — максимально подробный вывод. Помогает найти что именно идёт не так.
Путь 3. Настроить на роутере Keenetic
Один раз настроил роутер — все устройства в сети получают DoH автоматически: Windows 10, Android, Smart TV, IoT-мусор. Не надо лезть в настройки каждого устройства. Раздел про Keenetic ниже.
DNS over HTTPS в Google Chrome
Chrome проверяет текущий системный DNS. Если находит его в списке поддерживаемых DoH-серверов — переключается автоматически. Но полагаться на автоматику не стоит — лучше настроить явно.
Открой в адресной строке:
chrome://settings/security
Прокрути до раздела «Дополнительно». Найди переключатель «Использовать безопасный DNS». Включи его.
Под переключателем появятся два варианта. «С вашим текущим поставщиком» — Chrome ищет DoH-версию твоего системного DNS. Не всегда срабатывает. «С другим поставщиком» — выбери из списка или вставь URL вручную. Это надёжнее.
Для Cloudflare — выбери из списка или вставь:
https://cloudflare-dns.com/dns-query
Для Google Public DNS:
https://dns.google/dns-query
Для AdGuard:
https://dns.adguard.com/dns-query
Проверь сразу: открой https://1.1.1.1/help в новой вкладке. Должно показать «Using DNS over HTTPS (DoH): Yes».
Chrome и системный DNS - ловушка
Если системный DNS — сервер провайдера без DoH, а в Chrome выбрано «С вашим текущим поставщиком» — Chrome молча не переключится на DoH. Всё будет выглядеть как будто настройка применена, но DoH не работает. Всегда выбирай провайдера явно. Не доверяй автоматике в вопросах приватности.
DNS over HTTPS в Firefox
Firefox был одним из первых браузеров с поддержкой DoH — реализовали в 2018 году. Здесь настройка через about:config даёт полный контроль, включая режим «только DoH без fallback».
Быстрый способ через настройки
Открой меню (три горизонтальных полоски) — Настройки. Прокрути до раздела «Сеть». Нажми «Настройки…». В нижней части окна найди «Включить DNS over HTTPS». Поставь галку. Выбери провайдера из списка — Cloudflare или NextDNS — или выбери «Другой» и вставь свой URL.
Точная настройка через about:config
Введи в адресную строку:
about:config
Согласись с предупреждением. Найди параметр network.trr.mode и установи значение:
network.trr.mode = 3
Значения режима:
- 0 — DoH выключен, используется системный DNS
- 2 — DoH с fallback: если DoH недоступен — используется обычный DNS
- 3 — только DoH, без fallback. Если DoH недоступен — DNS не резолвится
- 5 — DoH принудительно выключен, используется системный DNS
Режим 3 — максимальная защита. Никакого случайного fallback на открытый DNS. Если DoH-сервер лежит — DNS не работает. Для домашнего использования с надёжным интернетом — нормально.
Теперь укажи URL сервера. Найди параметр network.trr.uri:
network.trr.uri = https://cloudflare-dns.com/dns-query
Перезапускать Firefox не нужно — настройки применяются сразу. Проверь на https://1.1.1.1/help.
Firefox в корпоративной сети
Firefox проверяет canary-домен use-application-dns.net. Если он недоступен — Firefox автоматически отключает DoH. Сделано специально чтобы не ломать корпоративные DNS-фильтры и фильтры родительского контроля. Дома не мешает. Если хочешь DoH принудительно — ставь network.trr.mode = 3, этот режим игнорирует canary-домен.
DNS over HTTPS в Opera
Opera на движке Chromium — настройка аналогична Chrome. Есть нюанс: встроенный VPN Opera меняет DNS. Если он включён — проверь оба места.
Открой:
opera://settings/privacy
Найди раздел «Безопасность». Включи «Использовать DNS over HTTPS вместо системных настроек DNS». Выбери провайдера из списка или вставь URL вручную.
Если встроенный VPN Opera включён — DNS-запросы идут через серверы Opera. DoH при включённом VPN добавляет ещё один уровень, но DNS резолвит VPN-сервер Opera. Cloudflare при этом видит запросы с IP VPN-сервера, а не с твоего. Реши сам, кому больше доверяешь — Opera или Cloudflare.
DNS over HTTPS в Microsoft Edge
Edge на базе Chromium — настройка почти идентична Chrome. Но Edge добавляет несколько корпоративно-ориентированных опций.
Открой в адресной строке:
edge://settings/privacy
Найди раздел «Безопасность». Включи «Использовать безопасный DNS для указания способа поиска сетевого адреса для веб-сайтов». Выбери провайдера из списка или вставь URL вручную.
Edge поставляется с готовым списком DoH-провайдеров: Cloudflare, Google, Quad9, OpenDNS и другие. Для каждого можно выбрать конкретный вариант — например у Cloudflare доступны базовый, с блокировкой малвари и семейный.
Через URL вручную — те же адреса что и в Chrome:
https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
https://dns.quad9.net/dns-query
Для корпоративного управления Edge — групповые политики через Intune или GPO. Политика называется «Configure DNS-over-HTTPS (DoH)» в разделе Microsoft Edge. Настройки аналогичны Chrome GPO, но с отдельным пространством имён Microsoft Edge.
Проверка: открой https://1.1.1.1/help в Edge после настройки. Должно показать DoH: Yes если выбрал Cloudflare. Если выбрал другого провайдера — страница всё равно покажет что DNS-запросы идут через DoH, просто не через Cloudflare.
Opera VPN и DoH: как они взаимодействуют
Opera — единственный популярный браузер со встроенным бесплатным VPN. Когда VPN включён, весь браузерный трафик идёт через серверы Opera. DNS при включённом VPN резолвится Opera-серверами.
Если одновременно включить DoH в Opera при активном VPN — браузер сначала отправляет DoH-запрос на Cloudflare, но этот запрос уже идёт через VPN-туннель Opera. Cloudflare видит соединение с IP VPN-сервера Opera, не твоего. Для приватности от провайдера — избыточно (VPN уже скрывает трафик). Для приватности от самой Opera — нет (Opera видит весь VPN-трафик включая DNS).
Практический вывод: если используешь Opera VPN — DoH в браузере мало что добавляет. Если Opera VPN выключен — DoH работает стандартно как в Chrome.
DNS over HTTPS на Keenetic
Настройка на роутере — лучшее решение для домашней сети. Один раз настроил — и все устройства получают зашифрованный DNS автоматически. Смартфоны, Smart TV, планшеты, Xbox, IoT-лампочки, гостевые устройства — всё. Не надо лезть в настройки каждого устройства.
Keenetic поддерживает DoH начиная с прошивки NDMS 3.1.
%%{init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffffff',
'primaryTextColor': '#1e293b',
'primaryBorderColor': '#94a3b8',
'lineColor': '#64748b',
'fontSize': '15px',
'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
},
'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
A["Смартфон"] --> E["Keenetic роутер"]
B["ПК Windows 10"] --> E
C["Smart TV"] --> E
D["IoT устройства"] --> E
E --> F["DoH прокси на роутере"]
F --> G["Cloudflare / Quad9"]
style E fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style F fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
style G fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
Шаг 1. Проверь версию прошивки
Зайди в веб-интерфейс Keenetic — обычно это 192.168.1.1 или my.keenetic.net. Перейди в Система — О системе. Посмотри версию NDMS. Если ниже 3.1 — обнови через Система — Обновить прошивку.
Шаг 2. Установи компонент DNS-over-HTTPS прокси
Система — Параметры компонентов. В строке поиска введи «DNS». Найди «DNS-over-HTTPS прокси». Нажми «Установить». Роутер скачает и установит компонент — может попросить перезагрузку.
Шаг 3. Настрой DoH-сервер
Перейди в Интернет — DNS. Найди раздел «DNS-over-HTTPS». Переключи в «Включено». В поле URL вставь адрес DoH-сервера.
Для Cloudflare:
https://cloudflare-dns.com/dns-query
Для Quad9:
https://dns.quad9.net/dns-query
Нажми «Применить». Роутер перезапустит DNS-службу. Все новые DNS-запросы от устройств в сети пойдут через DoH.
Настройка Keenetic через CLI
Если удобнее командная строка — подключись через веб-терминал (Система — Веб-терминал) или по Telnet:
ip dns proxy name cloudflare doh url https://cloudflare-dns.com/dns-query
ip dns proxy name cloudflare doh enable
ip name-server dns-proxy
system configuration save
Проверь статус:
show ip dns proxy
Вывод должен содержать строку с твоим URL и статусом enabled. Если статус disabled — повтори команду enable и сохрани конфиг.
Дополнительные возможности DoH на Keenetic
Keenetic позволяет настроить несколько DoH-серверов для отказоустойчивости. Если первый недоступен — роутер автоматически переключается на второй.
# Добавляем второй DoH-сервер
ip dns proxy name quad9 doh url https://dns.quad9.net/dns-query
ip dns proxy name quad9 doh enable
# Назначаем оба как DNS-серверы
ip name-server dns-proxy
system configuration save
Приоритет серверов определяется порядком добавления. Первый добавленный — основной, остальные — резервные.
Если хочешь разные DoH-серверы для разных сегментов сети — например основной сегмент через Cloudflare, гостевая сеть через Quad9 с фильтрацией малвари — это настраивается через раздельные DNS-профили для каждого интерфейса. Конфигурация сложнее, описана в документации Keenetic на help.keenetic.com.
Для проверки работы DoH на Keenetic через внешний тест: подключись к сети роутера с устройства где нет своих DoH-настроек (например смартфон с заводскими настройками DNS). Открой https://1.1.1.1/help — должно показать DoH: Yes если роутер использует Cloudflare.
Резервное копирование конфига Keenetic
После настройки DoH сохрани конфигурацию роутера. Система — Управление конфигурацией — Сохранить конфигурацию. Скачай файл на компьютер. Если роутер сбросится или придётся менять — восстановишь за минуту.
Через CLI:
system configuration save
Файл конфигурации хранится в /opt/etc/ndm/netconf. Периодически копируй его при изменениях.
Экспорт и импорт настроек DoH Windows через PowerShell
Если настроил DoH на одной машине и хочешь применить те же настройки на других — экспортируй список DoH-серверов:
# Экспорт
Get-DnsClientDohServerAddress | Export-Csv -Path C:\doh-servers.csv -NoTypeInformation
На другой машине импортируй:
# Импорт
$servers = Import-Csv -Path C:\doh-servers.csv
foreach ($s in $servers) {
Add-DnsClientDohServerAddress `
-ServerAddress $s.ServerAddress `
-DohTemplate $s.DohTemplate `
-AllowFallbackToUdp ([bool]$s.AllowFallbackToUdp) `
-AutoUpgrade ([bool]$s.AutoUpgrade)
}
Это удобно при переустановке системы или развёртывании на нескольких рабочих станциях.
Обновление прошивки Keenetic не сломает DoH
Штатное обновление прошивки Keenetic через веб-интерфейс сохраняет конфигурацию включая DoH-настройки. Роутер скачивает образ, перезагружается, применяет конфиг. Обычно DoH продолжает работать без каких-либо действий с твоей стороны.
Но если ты делаешь полный сброс к заводским настройкам или меняешь роутер — конфиг слетит. Поэтому делай резервную копию перед любым сбросом. В веб-интерфейсе: Система — Управление конфигурацией — Сохранить конфигурацию. Скачай файл .ndm на компьютер.
Восстановление из резервной копии: Система — Управление конфигурацией — Загрузить конфигурацию. Загрузи .ndm файл. Роутер применит все настройки включая DoH.
После восстановления проверь через CLI:
show ip dns proxy
Должен увидеть DoH-сервер в статусе enabled. Если статус disabled — выполни enable заново:
ip dns proxy name cloudflare doh enable
system configuration save
Яндекс DNS over HTTPS
Яндекс предоставляет три варианта DoH-серверов:
| Тип |
DoH URL |
IP |
Особенности |
| Базовый |
https://common.dot.dns.yandex.net/dns-query |
77.88.8.8 / 77.88.8.1 |
Без фильтрации |
| Безопасный |
https://safe.dot.dns.yandex.net/dns-query |
77.88.8.88 / 77.88.8.2 |
Блокирует вирусы и фишинг |
| Семейный |
https://family.dot.dns.yandex.net/dns-query |
77.88.8.7 / 77.88.8.3 |
Фильтрует взрослый контент |
Серверы Яндекса физически в России — быстрые для пользователей на территории РФ. Данные обрабатываются по российскому законодательству и хранятся Яндексом. Если ты в России и тебя устраивает российская юрисдикция вместо юрисдикции провайдера — нормальный выбор. Если нужна юрисдикция за пределами России — Cloudflare (США) или Quad9 (Швейцария).
DoH на Android
Android 9 и новее поддерживает Private DNS — это DNS over TLS, не DoH. Для большинства задач защита аналогичная: DNS-запросы шифруются, провайдер их не видит. Разница в протоколе и порту, а не в уровне защиты.
Настройки — Сеть и Интернет — Расширенные настройки — Частный DNS. Выбери «Имя хоста частного DNS-провайдера». Введи:
cloudflare-dns.com
Для Quad9:
dns.quad9.net
Нажми Сохранить. Android теперь шифрует DNS через DoT для всех приложений. Иконка замка в статусной строке Private DNS появится в разделе Wi-Fi если провайдер доступен.
Если нужен именно DoH — настрой его в браузере Chrome или Firefox на Android: настройки абсолютно те же что в десктопной версии, разделы называются одинаково.
Проверка на Android: через браузер Chrome открой https://1.1.1.1/help. Если Private DNS включён — должно показать DoH или DoT в зависимости от того что настроено в браузере.
DoH на iOS
iOS 14 и новее поддерживает шифрованный DNS системно через профили конфигурации. Профиль — это XML-файл с расширением .mobileconfig, который устанавливает DNS-настройки на уровне всей системы. Все приложения, не только браузер, используют настроенный DoH.
Самый простой способ: приложение 1.1.1.1 от Cloudflare в App Store. Скачай, открой, включи переключатель. Приложение создаёт VPN-профиль или конфигурационный профиль — зависит от версии. Проверь что профиль установлен: Настройки — Основные — VPN и управление устройством.
Для ручной установки без приложения — Cloudflare публикует готовые .mobileconfig файлы:
https://1.1.1.1/family/setting - с защитой от малвари
https://1.1.1.1/privacy/setting - только шифрование, без фильтрации
Открой URL в Safari на iPhone — Safari скачает файл и предложит его установить. Перейди в Настройки — Основные — VPN и управление устройством — найди скачанный профиль — Установить. Введи пароль устройства. После установки iPhone использует Cloudflare DoH для всего DNS-трафика.
AdGuard предоставляет аналогичные профили на своём сайте. Quad9 тоже. Найди на сайте провайдера раздел «iOS» или «Configuration profile».
Для удаления профиля: Настройки — Основные — VPN и управление устройством — выбери профиль — Удалить профиль. DNS вернётся к системным настройкам (провайдерский DNS по DHCP).
Проверка: открой https://1.1.1.1/help в Safari. Должно показать DoH: Yes если профиль Cloudflare установлен и активен.
Как проверить что DNS over HTTPS работает
Включил — проверь. Не верь настройкам на слово. Видел слишком много «включил DoH» которое тихо fallback-нулось на обычный DNS.
Проверка через браузер — 30 секунд
Открой в браузере, который настраивал:
https://1.1.1.1/help
Cloudflare покажет статус: «Using DNS over HTTPS (DoH) — Yes» или «No». Самая простая проверка.
Расширенная проверка — DoH, DNSSEC, TLS 1.3 и Encrypted SNI одним запросом:
https://www.cloudflare.com/ssl/encrypted-sni/
Проверка через PowerShell — Windows
Текущие DNS-адреса системы:
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
Если видишь адреса провайдера вместо 1.1.1.1 — настройки не применились.
Статус DoH-серверов Windows:
Get-DnsClientDohServerAddress | Select-Object ServerAddress, DohTemplate
Резолвинг через конкретный сервер:
Resolve-DnsName -Name cloudflare.com -Type A -Server 1.1.1.1
Проверка через curl — Linux или WSL
Явный запрос к DoH-серверу:
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Если вернулся JSON с полем «Answer» и IP-адресами — DoH работает и доступен.
Проверка DoH через nslookup
nslookup — встроенный инструмент Windows. Не показывает DoH напрямую, но позволяет убедиться что DNS резолвится через нужный сервер:
nslookup cloudflare.com 1.1.1.1
Вывод должен содержать Server: 1.1.1.1 и IP-адрес cloudflare.com. Это подтверждает что ты можешь достучаться до 1.1.1.1 и он отвечает. Но nslookup не проверяет шифрование — он сам делает обычный UDP DNS-запрос на 53-й порт.
Для проверки именно DoH — curl или браузер точнее. nslookup полезен для диагностики сетевой доступности DoH-серверов.
Что означают результаты на 1.1.1.1/help
Страница показывает несколько параметров:
- Connected to 1.1.1.1: Yes — ты подключён к Cloudflare DNS
- Using DNS over HTTPS (DoH): Yes / No — зашифрован ли DNS-запрос
- Using DNS over TLS (DoT): Yes / No — альтернативный протокол шифрования
- AS Name — название автономной системы откуда пришёл запрос
- IP — твой внешний IP-адрес (или IP VPN если он включён)
Если DoH: No, но Connected to 1.1.1.1: Yes — ты обращаешься к Cloudflare, но по обычному незашифрованному DNS. Нужно включить DoH в настройках браузера или системы.
Если Connected to 1.1.1.1: No — браузер использует другой DoH-сервер (Google, Quad9 и т.д.) или обычный провайдерский DNS. Для проверки DoH у другого провайдера используй его собственную страницу диагностики — или curl к JSON API.
Wireshark — убедиться что 53-й порт молчит
Запусти захват трафика на активном сетевом интерфейсе. Фильтр:
udp.port == 53
Открой несколько сайтов. Если DoH настроен правильно — трафик на порту 53 отсутствует. Все DNS-запросы растворились в HTTPS-потоке на 443-м порту и стали неотличимы от обычного браузинга. Ради этого всё и затевалось.
Безопасность: что DoH не решает
DNSSEC: дополнительный уровень защиты поверх DoH
DoH шифрует транспорт. DNSSEC аутентифицирует данные — подписывает DNS-записи криптографически на стороне владельца домена. Даже если атакующий каким-то образом перехватит DoH-соединение или скомпрометирует промежуточный сервер — DNSSEC-подписи позволят обнаружить подмену.
Cloudflare, Google и Quad9 делают DNSSEC-валидацию. Это означает: если запись подписана DNSSEC и подпись не совпадает — сервер вернёт ошибку SERVFAIL вместо поддельного ответа.
Проверить что домен подписан DNSSEC:
# Через dig на Linux / WSL
dig +dnssec cloudflare.com A
В ответе ищи строку с RRSIG — это цифровая подпись записи. Если RRSIG есть — домен подписан. В выводе curl к DoH JSON API смотри поле AD: true — Authenticated Data, DNSSEC-валидация прошла.
Проверка онлайн:
https://dnssec-analyzer.verisignlabs.com/cloudflare.com
DoH + DNSSEC — нормальный уровень защиты DNS для домашней сети. Транспорт зашифрован, данные аутентифицированы.
Encrypted Client Hello: следующий шаг после DoH
DoH прячет DNS-запрос. Но при TLS-рукопожатии браузер отправляет SNI — имя сайта в открытом тексте. Провайдер видит к какому домену ты подключаешься даже при включённом DoH.
ECH (Encrypted Client Hello) шифрует SNI. Браузер отправляет зашифрованное приветствие — имя сайта скрыто. Cloudflare развернул инфраструктуру для ECH в 2023 году. Firefox поддерживает ECH начиная с версии 118, Chrome с 117.
Проверить поддержку ECH:
https://www.cloudflare.com/ssl/encrypted-sni/
Там покажет статус ECH отдельной строкой. Если «Encrypted ClientHello: Yes» — приватность на уровень выше.
ECH требует поддержки со стороны сервера. Пока покрытие ограничено — в основном Cloudflare-проксированные сайты. Но вектор правильный: DoH + ECH + DNSSEC закрывают большинство DNS-связанных угроз приватности.
DoH скрывает DNS-запросы. Но есть вещи, которые он не закрывает — и важно это понимать, чтобы не переоценивать защиту.
SNI (Server Name Indication) — расширение TLS, передающее имя сайта в открытом виде при установке HTTPS-соединения. Провайдер видит к какому домену ты подключаешься, даже если DNS-запрос зашифрован. Частичное решение — ECH (Encrypted Client Hello), но поддержка пока не повсеместная.
IP-адрес назначения виден всегда. Если сайт живёт на выделенном IP — провайдер вычисляет домен по IP без DNS-логов.
DoH — один слой защиты, не магическая кнопка анонимности. Для полной приватности нужен VPN или Tor. DoH и VPN хорошо дополняют друг друга: DoH защищает DNS-запросы которые идут до установки VPN-туннеля, VPN скрывает весь остальной трафик.
Firewall и DoH в корпоративной среде
Если настроен локальный DNS-сервер и нужно принудительно гнать трафик через него — заблокируй исходящий UDP/TCP порт 53 для всех хостов кроме своего DNS-сервера. DoH на 443-м порту без DPI заблокировать практически невозможно. Учти это при проектировании корпоративной сети: пользователи с DoH в браузере обходят локальный DNS-резолвер и твои DNS-политики.
Реальный уровень приватности с DoH
Давай честно. Что провайдер видит с DoH и без него.
Без DoH провайдер видит: все DNS-запросы с именами доменов и временем, IP-адреса назначений, объём трафика по каждому соединению, SNI при TLS-рукопожатии.
С DoH провайдер видит: IP-адреса назначений, объём трафика, SNI. DNS-запросы — нет.
С DoH + ECH провайдер видит: IP-адреса назначений, объём трафика. DNS-запросы и SNI — нет.
С DoH + ECH + VPN провайдер видит: IP VPN-сервера, объём трафика до VPN. Содержимое — нет.
DoH убирает один из самых простых векторов — DNS-лог. Это не ядерная приватность, но существенный шаг. Настраивается за 10 минут. Не замедляет интернет. Использует бесплатные серверы. Соотношение усилий и результата — отличное.
DoH в корпоративной среде: что нужно знать администратору
DoH удобен для домашних пользователей. Для корпоративной сети он создаёт головную боль для сетевого администратора — и вот почему.
Корпоративная сеть обычно использует внутренний DNS-сервер. Через него резолвятся внутренние домены — интранет, корпоративные сервисы, VPN-хосты. Если пользователь включает DoH в браузере с Cloudflare как upstream — браузер перестаёт видеть внутренние домены. Попытка открыть внутренний сайт company.local завершится ошибкой: Cloudflare не знает про company.local.
Вторая проблема — DNS-фильтрация. Многие корпоративные сети фильтруют нежелательные категории сайтов через DNS. DoH с внешним сервером обходит эту фильтрацию.
Третья — видимость трафика для SOC. Часть мониторинга безопасности строится на анализе DNS-трафика. DoH делает его невидимым для внутренних инструментов.
Как заблокировать DoH в корпоративной сети
Полностью заблокировать DoH без DPI практически невозможно — он идёт на 443-й порт. Но есть несколько рычагов.
Firefox проверяет canary-домен use-application-dns.net. Если он недоступен или возвращает NXDOMAIN — Firefox отключает DoH. Добавь в корпоративный DNS запись:
use-application-dns.net A 0.0.0.0
Или заблокируй через DNS-фильтр. Firefox увидит недоступность canary-домена и отключит DoH. Для Chrome и Edge такого механизма нет — работают через групповые политики.
Для Chrome через GPO (Group Policy Object). Найди политику: Computer Configuration — Administrative Templates — Google Chrome — DNS-over-HTTPS mode. Установи «off» или «automatic» (automatic разрешает DoH только если совпадает с настроенным DNS).
Для Edge: Computer Configuration — Administrative Templates — Microsoft Edge — Built-in DNS client — DNS-over-HTTPS.
На уровне сети — заблокируй IP-адреса популярных DoH-серверов. Это частичная мера (серверов много), но снижает процент пользователей с работающим DoH:
# Cloudflare DoH
1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
# Google DoH
8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844
# Quad9 DoH
9.9.9.9, 149.112.112.112
Корпоративный DoH: DNS-over-HTTPS с внутренним сервером
Правильное решение для корпоративной сети — не блокировать DoH, а настроить корпоративный DoH-сервер. Тогда браузеры используют зашифрованный DNS, но резолвинг идёт через корпоративный сервер с доступом к внутренним зонам.
На Windows Server DNS добавь DoH-прокси через IIS или nginx. Или разверни отдельный DoH-прокси — например coredns с плагином forward и tls.
Простой вариант через nginx — проксируй HTTPS на 443 к внутреннему DNS:
server {
listen 443 ssl http2;
server_name dns.company.local;
ssl_certificate /etc/ssl/company.crt;
ssl_certificate_key /etc/ssl/company.key;
location /dns-query {
proxy_pass http://127.0.0.1:8053;
proxy_set_header Content-Type application/dns-message;
}
}
После настройки разверни через GPO URL корпоративного DoH-сервера https://dns.company.local/dns-query как единственный разрешённый DoH-эндпоинт. Пользователи получают зашифрованный DNS, но через корпоративный сервер с полным контролем.
Troubleshooting: типичные ошибки при настройке DoH
DNS не резолвится после включения DoH в Windows 11
Причина: Windows не распознала IP-адрес как DoH-совместимый — его нет в списке Known DoH Servers, и Windows не знает какой URL использовать.
Диагноз
Открываешь сайты — ошибка DNS_PROBE_FINISHED_NXDOMAIN или «Адрес сайта не найден». При этом в настройках сети DoH включён и адреса прописаны.
Проверь список:
Get-DnsClientDohServerAddress | Select-Object ServerAddress, DohTemplate
Если DohTemplate пустой — добавь сервер вручную:
Add-DnsClientDohServerAddress `
-ServerAddress "1.1.1.1" `
-DohTemplate "https://cloudflare-dns.com/dns-query" `
-AllowFallbackToUdp $False `
-AutoUpgrade $True
Chrome включён, но 1.1.1.1/help показывает «No»
Причина: в Chrome выбрано «С вашим текущим поставщиком», а системный DNS — сервер провайдера без DoH. Chrome искал DoH-версию, не нашёл и не переключился.
Решение: зайди в chrome://settings/security, переключи на «С другим поставщиком», выбери Cloudflare или Google явно. Обнови страницу на 1.1.1.1/help.
Firefox игнорирует настройки DoH
Причина 1: canary-домен use-application-dns.net недоступен — Firefox отключил DoH автоматически.
Установи в about:config:
network.trr.mode = 3
Причина 2: применена групповая политика. Проверь:
about:policies
Если там есть DoH-политика — она приоритетнее about:config. В корпоративной сети обратись к администратору.
Keenetic не сохраняет настройки DoH после перезагрузки
Причина: конфигурация не сохранена явно, или компонент «DNS-over-HTTPS прокси» не установлен.
Проверь компонент: Система — Параметры компонентов — «DNS-over-HTTPS прокси» должен быть в статусе «Установлен». После настройки сохрани конфигурацию:
system configuration save
Сайты открываются медленнее после включения DoH
Причина: DoH-сервер далеко или перегружен. HTTPS handshake добавляет задержку на первый запрос к каждому домену.
Решение: переключись на Cloudflare 1.1.1.1 — медианная задержка около 11 мс, быстрее большинства провайдерских серверов. Или подними локальный кэширующий резолвер с DoH-апстримом — повторные запросы к популярным доменам будут отвечать из кэша мгновенно.
dnscrypt-proxy не запускается в Windows 10
Причина: порт 53 занят службой DNS Client (Dnscache).
Проверь что занимает порт:
netstat -ano | findstr ":53 "
Найди PID и определи процесс:
Get-Process -Id НОМЕР_PID
Если это Dnscache — останови и поставь ручной запуск:
Stop-Service Dnscache
Set-Service Dnscache -StartupType Manual
Restart-Service dnscrypt-proxy
DoH включён, но DNSSEC не проходит
Причина: не все DoH-серверы делают DNSSEC-валидацию по умолчанию.
Cloudflare, Quad9 и Google делают DNSSEC. Проверь свой сервер:
https://dnssec-analyzer.verisignlabs.com/
Если используешь нестандартный сервер — смотри его документацию на предмет DNSSEC-валидации.
После настройки DoH появились проблемы с внутренними доменами в корпоративной сети
Это классическая проблема DoH в корпоративной среде. Ты настроил DoH с Cloudflare. Теперь внутренние домены типа mail.company.local или intranet.corp не резолвятся — Cloudflare о них ничего не знает.
Решения в порядке возрастания сложности:
Первое — отключи DoH на уровне системы, оставь только в браузере. Браузер использует DoH для интернет-сайтов, а ОС резолвит внутренние домены через корпоративный DNS. Работает если корпоративный DNS назначается через DHCP или VPN.
Второе — в Windows 11 есть механизм «Split DNS»: укажи корпоративный DNS-сервер дополнительно с режимом «Без шифрования» только для конкретного сетевого профиля. Это сложнее настроить, но даёт оба DNS одновременно.
Третье — лучшее решение: корпоративный DoH-сервер. Системный администратор настраивает DoH-прокси на корпоративном DNS. Ты подключаешься к нему — и получаешь и внутренние зоны, и шифрование DNS. Адрес такого сервера обычно выдаётся через VPN-профиль.
DoH включён, но dnsleaktest.com всё равно показывает провайдерские серверы
dnsleaktest.com тестирует откуда реально пришли DNS-ответы на их тестовые домены. Если там провайдерские серверы — одна из причин:
В Windows DoH настроен в браузере, но dnsleaktest запущен из другого браузера или из системы. Системный DNS при этом всё ещё провайдерский. Для теста используй тот же браузер где настроен DoH.
Включён VPN с настройкой «использовать DNS VPN-сервера. VPN перебивает системный DoH. Отключи VPN для теста или настрой DoH внутри VPN-клиента.
dnscrypt-proxy слушает на 127.0.0.1:53, но в настройках адаптера не прописан 127.0.0.1 как DNS. Результат: запросы идут мимо dnscrypt-proxy напрямую к провайдерскому серверу. Проверь что DNS в настройках адаптера == 127.0.0.1.
Когда DoH особенно важен: реальные сценарии
DoH полезен всегда. Но есть ситуации где он критичен.
Публичный Wi-Fi — кафе, аэропорт, гостиница
В публичной Wi-Fi сети кто угодно может запустить Wireshark и смотреть трафик. Обычный DNS на 53-м порту — открытый текст. За 5 минут у соседа по кофейне будет список всех сайтов которые ты открывал. Плюс DNS-спуфинг: злоумышленник в той же сети отвечает на DNS-запросы поддельными IP.
DoH с TLS устраняет обе угрозы. Запросы зашифрованы, сервер аутентифицирован через TLS-сертификат — подменить ответ невозможно.
В публичной сети включай DoH в браузере перед тем как открывать что-либо важное. Пять секунд — chrome://settings/security — включить безопасный DNS — Cloudflare. Лучше VPN, но DoH это минимальная гигиена.
Работа из дома — ISP видит рабочий трафик
Провайдер домашнего интернета может видеть DNS-запросы к корпоративным ресурсам: какие внутренние инструменты используешь, с какими сервисами работаешь. Для большинства сценариев это не проблема — но если политика компании требует приватности трафика, DoH на домашней машине закрывает хотя бы DNS-слой.
Правильное решение в этом случае — корпоративный VPN, который обычно включает и DoH или DoT для DNS. Но если VPN нет — DoH лучше чем ничего.
Путешествия — нестабильные и потенциально враждебные сети
В некоторых странах провайдеры блокируют сайты на уровне DNS. Обычный DNS резолвинг возвращает заглушку или пустой ответ. DoH использует внешний сервер — Cloudflare или Google — который не знает о местных блокировках.
Это работает пока провайдер не блокирует сами DoH-серверы по IP. Cloudflare 1.1.1.1 заблокировать сложно — он хостится на огромной CDN-инфраструктуре, которая перекрывается с множеством легитимных сайтов.
Умный дом и IoT — устройства которые не настраиваются
Умные лампочки, телевизоры, колонки, термостаты — всё это постоянно делает DNS-запросы. К своим облачным серверам, к серверам обновлений, к аналитике производителя. Настроить DoH на каждом IoT-устройстве невозможно.
Решение — роутер Keenetic с DoH. Все устройства в сети получают зашифрованный DNS автоматически. Не надо трогать каждое устройство отдельно.
Типичные ошибки при настройке DoH: чек-лист
Собрал самые частые ошибки в одном месте. Пройдись по списку если что-то не работает.
| Симптом |
Вероятная причина |
Быстрая проверка |
| 1.1.1.1/help показывает DoH: No |
DoH не применился или применился с fallback |
Проверь Get-DnsClientDohServerAddress |
| Сайты не открываются после включения DoH |
Сервер фильтрует домен или недоступен |
Переключись на Cloudflare 1.1.1.1 |
| Chrome DoH включён, но провайдерский DNS в логах |
Chrome использует «текущего поставщика» без DoH |
Выбери провайдера явно в настройках Chrome |
| Firefox игнорирует about:config |
Групповая политика или canary-домен |
Проверь about:policies |
| Keenetic слетает после перезагрузки |
Конфиг не сохранён |
system configuration save |
| dnscrypt-proxy не стартует |
Порт 53 занят Dnscache |
netstat -ano | findstr «:53 « |
| DoH работает, но медленно |
Далёкий DoH-сервер или нет кэша |
Переключись на Cloudflare, включи cache в dnscrypt-proxy |
| DNSSEC не проходит |
DoH-сервер не делает DNSSEC-валидацию |
Используй Cloudflare, Quad9 или Google |
Мониторинг: как убедиться что DoH работает стабильно
DoH настроил — хорошо. Но «настроил один раз» не означает «работает всегда». Windows обновляется. Роутер перезагружается. Прошивка Keenetic меняется. Всё это может тихо сломать DoH без каких-либо ошибок — DNS продолжит работать через обычный 53-й порт, просто незашифрованно.
Несколько способов держать DoH под контролем.
Периодическая ручная проверка
Самый простой способ — раз в месяц открывать https://1.1.1.1/help и смотреть. Три секунды. Если DoH: Yes — всё хорошо. Если No — разбираться почему.
Для Windows — добавь задачу в Планировщик заданий которая раз в неделю проверяет текущие DNS-адреса. Создай файл check-doh.ps1:
$dns = Get-DnsClientServerAddress | Where-Object AddressFamily -eq 2
$expected = @("1.1.1.1", "1.0.0.1", "8.8.8.8", "8.8.4.4", "9.9.9.9")
$current = $dns.ServerAddresses
$ok = $current | Where-Object { $expected -contains $_ }
if ($ok.Count -gt 0) {
Add-Content C:\Logs\doh-check.log "$(Get-Date) - DoH DNS OK: $($current -join ', ')"
} else {
Add-Content C:\Logs\doh-check.log "$(Get-Date) - ВНИМАНИЕ: DoH не настроен. Текущий DNS: $($current -join ', ')"
}
Создай директорию для логов:
New-Item -ItemType Directory -Path C:\Logs -Force
Добавь скрипт в Планировщик заданий: Win + R — taskschd.msc — Создать задачу — Триггеры: еженедельно — Действия: запустить PowerShell.exe с аргументом -File C:\check-doh.ps1.
Мониторинг через dnscrypt-proxy на Windows 10
dnscrypt-proxy пишет подробный лог. Смотри его:
Get-Content C:\dnscrypt-proxy\dnscrypt-proxy.log -Tail 50
Строки с «OK» — успешные DoH-запросы. Строки с «timeout» или «no server» — проблемы с DoH-сервером. Проверь что служба работает:
Get-Service dnscrypt-proxy | Select-Object Status, StartType
Мониторинг на Keenetic
Через веб-терминал Keenetic:
show ip dns proxy
show ip name-server
Посмотри системный лог на предмет DNS-ошибок:
show log | grep doh
Строки с «connected» подтверждают активное DoH-соединение. Ошибки «connection refused» к DoH-серверу — проблема с доступностью, роутер не может достучаться до Cloudflare или Quad9.
Альтернативные решения
NextDNS — DoH с личной статистикой и фильтрами
NextDNS даёт персональный DoH-эндпоинт с кастомными списками блокировки, подробной статистикой запросов и управлением через веб-интерфейс. Видишь какие домены резолвируют устройства, блокируешь нужное, настраиваешь свои white/blacklist. Бесплатный план — 300 000 запросов в месяц, обычно хватает на домашнюю сеть. Хорошо подходит для семейной сети с детьми.
URL выглядит так:
https://dns.nextdns.io/ВАШ_ID
Получи ID после регистрации на nextdns.io.
Pi-hole + cloudflared на Raspberry Pi
Если есть Raspberry Pi или старый мини-ПК — поставь Pi-hole для блокировки рекламы и cloudflared как DoH-клиент. Pi-hole принимает DNS-запросы от устройств в сети на обычный 53-й порт, cloudflared пересылает их в Cloudflare через DoH. Провайдер не видит DNS, реклама режется для всей сети.
Установка cloudflared на Raspberry Pi (arm64):
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb
sudo dpkg -i cloudflared-linux-arm64.deb
cloudflared --version
Создай пользователя для сервиса:
sudo useradd -s /usr/sbin/nologin -r -M cloudflared
Создай файл /etc/systemd/system/cloudflared.service:
[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target
[Service]
Type=simple
User=cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns --port 5053 --upstream https://cloudflare-dns.com/dns-query
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared
В настройках Pi-hole (Settings — DNS) укажи кастомный upstream: 127.0.0.1#5053. Выставь IP Raspberry Pi как DNS на роутере.
AdGuard Home через Docker
Аналог Pi-hole с нативной поддержкой DoH и DoT без дополнительных компонентов. Ставится как Docker-контейнер:
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 \
--restart unless-stopped \
adguard/adguardhome
После установки открой http://IP_СЕРВЕРА:3000. В мастере настройки на шаге «Upstream DNS servers» вставь DoH-адрес Cloudflare. В настройках роутера выставь IP сервера с AdGuard Home как DNS. Все устройства сети получают DoH плюс блокировку рекламы.
Задержка DNS с DoH: реальные цифры
Часто спрашивают: DoH медленнее обычного DNS? Разберём с цифрами.
Обычный UDP DNS-запрос: пакет улетел, пришёл ответ. На провайдерский сервер — 5-50 мс в зависимости от расстояния и загрузки сервера.
DoH первый запрос к домену: TLS handshake (10-20 мс, выполняется один раз) + HTTPS-запрос + ответ. Итого 15-30 мс к Cloudflare. Последующие запросы в рамках существующего TLS-соединения: только HTTPS-запрос + ответ, 5-15 мс.
На практике после нескольких секунд работы браузера задержки DoH неотличимы от обычного DNS. TLS keep-alive держит соединение открытым — каждый раз заново рукопожатие не делается.
DNS-кэш браузера и ОС дополнительно сглаживает разницу. Повторный запрос к tому же домену (в пределах TTL) отвечает из кэша мгновенно — без обращения к DoH-серверу вообще.
Если интернет замедлился после включения DoH — вероятнее всего DoH-сервер далеко или перегружен, а не сам протокол виноват. Переключись на Cloudflare 1.1.1.1 и сравни. Cloudflare — самая распределённая сеть DoH-серверов в мире, с узлами в большинстве крупных городов России и соседних стран.
Профилактика: как не потерять DoH при обновлениях
DoH — тихая настройка. Включил и забыл. Но три момента стоит держать в голове.
После крупных обновлений Windows (22H2, 23H2 и подобных) проверяй настройки DNS. Обновления иногда сбрасывают параметры сети к дефолтным — это задокументированное поведение, не баг. Команда для быстрой проверки:
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
Если видишь адреса провайдера вместо 1.1.1.1 или 8.8.8.8 — настройки слетели, переназначь вручную через GUI или PowerShell.
После смены провайдера или замены роутера DNS автоматически переключается на сервер нового провайдера по DHCP. Зафиксируй DNS вручную в настройках адаптера — не через автоматическое получение. Это занимает две минуты, но потом не придётся вспоминать почему DoH перестал работать после смены тарифа или переезда.
После обновления прошивки Keenetic — проверь DoH через CLI:
show ip dns proxy
Штатные обновления конфиг сохраняют. Но при крупных обновлениях с изменением архитектуры (например переход на новое поколение NDMS) — иногда слетает. Резервная копия конфига перед обновлением — хорошая практика.
Один раз в несколько месяцев заходи на 1.1.1.1/help и проверяй. Три секунды. Зато точно знаешь что всё на месте. Видел конфиги которые «работали» три года, а потом оказывалось что DoH слетел через неделю после включения и всё это время DNS шёл через провайдера в открытом тексте.
Если используешь dnscrypt-proxy на Windows 10 — раз в несколько месяцев проверяй что служба работает и версия актуальная. Команда:
Get-Service dnscrypt-proxy
.\dnscrypt-proxy.exe --version
Актуальную версию смотри на github.com/DNSCrypt/dnscrypt-proxy/releases. Обновление простое: останови службу, замени .exe, запусти.
Обновление и откат
DoH не требует обновлений — это настройка, не отдельная программа. Но dnscrypt-proxy обновляется:
# Останови службу
Stop-Service dnscrypt-proxy
# Скачай новую версию с GitHub, замени dnscrypt-proxy.exe
# Конфиг dnscrypt-proxy.toml не трогай - он сохраняется
# Запусти
Start-Service dnscrypt-proxy
Get-Service dnscrypt-proxy
Откат DoH к обычному DNS — просто смени настройки DNS обратно на автоматические (DHCP) или пропиши адрес провайдера. Никаких следов не остаётся.
Для отката dnscrypt-proxy:
.\dnscrypt-proxy.exe -service stop
.\dnscrypt-proxy.exe -service uninstall
Потом верни DNS-настройки адаптера в «Получать адрес DNS-сервера автоматически».
Обновление dnscrypt-proxy до новой версии
Новые версии dnscrypt-proxy выходят несколько раз в год. В них исправления безопасности и новые DoH-серверы в списках. Обновление занимает 3 минуты.
Скачай новую версию с github.com/DNSCrypt/dnscrypt-proxy/releases. Распакуй архив. Открой директорию с текущей установкой (C:\dnscrypt-proxy\). Останови службу:
Stop-Service dnscrypt-proxy
Замени только файл dnscrypt-proxy.exe — файл конфигурации dnscrypt-proxy.toml не трогай, он сохраняется между версиями и обратно совместим.
Запусти:
Start-Service dnscrypt-proxy
Get-Service dnscrypt-proxy
Если служба не запустилась после обновления — проверь лог dnscrypt-proxy.log. Иногда в новых версиях меняется синтаксис конфига — смотри CHANGELOG в архиве с новой версией. Обычно это одна-две строки для изменения.
Откат к старой версии: останови службу, верни старый .exe — и всё. Конфиг совместим в обе стороны.
FAQ
Почему после включения DoH некоторые сайты перестали открываться?
Скорее всего DoH-сервер фильтрует домен. Quad9 и AdGuard DNS блокируют вредоносные и фишинговые сайты — иногда легитимные домены попадают в списки ошибочно. Временная проверка: отключи DoH, если сайт открылся — проблема в фильтрации. Переключись на Cloudflare 1.1.1.1 или Google 8.8.8.8 — они не фильтруют контент. Если важна блокировка малвари — Quad9, просто держи в голове что иногда бывают ложные срабатывания.
Как проверить работает ли DNS over HTTPS прямо сейчас?
Самый быстрый способ: открой https://1.1.1.1/help в браузере. Там прямо написано «Using DNS over HTTPS: Yes» или «No». Расширенная проверка с DNSSEC и TLS 1.3: https://www.cloudflare.com/ssl/encrypted-sni/. Для системных настроек Windows: Get-DnsClientDohServerAddress в PowerShell — смотри поле DohTemplate.
DNS over HTTPS или DNS over TLS — что лучше?
Для дома: DoH. Работает в браузере без дополнительного ПО, идёт на 443-м порту и практически не блокируется. DoT работает на отдельном порту 853 — его легко закрыть на файрволе. Для корпоративной сети где нужен контроль и мониторинг DNS-трафика — DoT управляемее. Для дома вопрос закрыт: DoH.
Что делать если провайдер блокирует DoH серверы по IP?
На практике заблокировать IP Cloudflare 1.1.1.1 означает заблокировать огромный кусок интернета — это нереально для рядового провайдера. Если всё же столкнулся — используй dnscrypt-proxy с несколькими серверами в конфиге, он автоматически переключается на доступный. Или NextDNS — у него уникальный персональный URL, заблокировать сложнее.
DoH и VPN — нужно ли включать оба?
При включённом VPN DNS-запросы обычно идут через VPN-сервер. DoH в браузере поверх VPN — двойное шифрование, не вредит. Смысла немного: VPN уже скрывает DNS от провайдера. Исключение: если VPN-клиент имеет утечки DNS (DNS leak) — DoH их не закроет. Проверь утечки на dnsleaktest.com и исправляй настройки VPN.
Нужно ли настраивать DoH в каждом браузере отдельно?
Если настроил DoH на уровне Windows 11 — большинство браузеров подхватят его автоматически. Firefox всегда использует собственные настройки DoH независимо от системы. Chrome при явно выбранном провайдере тоже игнорирует системный DNS. Для полного покрытия: настрой на уровне системы или роутера и отдельно в Firefox.
Влияет ли DoH на скорость интернета?
Практически нет. Добавляет задержку на TLS handshake при первом DNS-запросе к домену. Последующие запросы используют keep-alive и работают быстро. Cloudflare 1.1.1.1 показывает медианную задержку DNS около 11 мс — быстрее большинства провайдерских серверов. Скорость загрузки страниц на практике не меняется заметно.
Почему DNS over HTTPS не работает после настройки в Windows 11?
Самая частая причина: IP-адрес введённого сервера отсутствует в списке Known DoH Servers Windows. Windows не знает какой URL использовать для этого IP и молча откатывается на обычный DNS. Проверь через Get-DnsClientDohServerAddress — если поле DohTemplate пустое, добавь сервер через Add-DnsClientDohServerAddress с явным указанием DohTemplate.
Что такое DNS leak и как он связан с DoH?
DNS leak — утечка DNS-запросов за пределы настроенного канала. Например: включил VPN, но браузер всё равно резолвит DNS через системный сервер провайдера — VPN-туннель для DNS не работает. Результат: VPN скрывает содержимое трафика, но провайдер видит какие сайты ты посещаешь по DNS.
DoH может быть частью защиты от DNS leak: если настроен DoH на уровне системы и браузер использует системный DNS — запросы пойдут через DoH даже без VPN. Но если VPN-клиент имеет собственный DNS который перебивает системный — DoH не поможет. Проверь утечки на dnsleaktest.com при включённом VPN. Там показывает через какие серверы реально идут DNS-запросы.
Можно ли настроить свой DoH-сервер дома?
Да. AdGuard Home и Pi-hole с cloudflared — это локальные DoH-прокси. Но локальный сервер дома не решает проблему приватности от провайдера: трафик от локального сервера до upstream DoH-сервера (Cloudflare) всё равно идёт через провайдера — но уже зашифрованный через DoH. То есть схема работает: устройства резолвят у тебя на Pi-hole, Pi-hole спрашивает у Cloudflare через DoH. Провайдер видит только зашифрованный HTTPS-трафик до 1.1.1.1.
Для полностью автономного DoH-сервера без внешних зависимостей понадобится ещё и свой рекурсивный резолвер (unbound). Это уже отдельная история с настройкой DNSSEC-валидации. Для домашней сети избыточно, но если интересно — гугли «Pi-hole unbound recursive DNS».
Почему у меня разные результаты на 1.1.1.1/help в разных браузерах?
Каждый браузер управляет DNS независимо. Firefox с network.trr.mode=3 всегда использует свои DoH-настройки, игнорируя системный DNS. Chrome при явно выбранном DoH-провайдере тоже. Edge и Opera — аналогично.
При этом другие программы — мессенджеры, торрент-клиенты, игровые клиенты — используют системный DNS. Если DoH настроен только в браузере — трафик этих программ идёт через провайдерский DNS в открытом тексте.
Для полного покрытия: настрой DoH на уровне Windows 11 (системный) или роутера (для всех устройств). Тогда все программы получают DoH независимо от браузерных настроек.
Есть ли бесплатные DoH-серверы в России?
Яндекс предоставляет бесплатный DoH — адреса описаны в разделе «Яндекс DNS over HTTPS». Российская юрисдикция, быстрые серверы для пользователей в РФ.
SkyDNS и некоторые другие российские провайдеры DNS также поддерживают DoH. Проверь конкретного провайдера на их сайте — ищи раздел «DNS over HTTPS» или «DoH».
Cloudflare и Google тоже бесплатны и работают из России — с небольшой большей задержкой чем Яндекс, но с лучшей политикой приватности.
Можно ли использовать DoH на роутере и в браузере одновременно?
Да, это работает. Если на Keenetic настроен DoH с Cloudflare, а в Firefox отдельно настроен DoH с Google — Firefox использует Google DoH, все остальные устройства в сети используют Cloudflare DoH через роутер. Конфликта нет — каждый сам управляет своим DNS-трафиком.
Дублирование DoH не даёт дополнительной безопасности, но и не вредит. Если хочешь единообразие — настрой на роутере и отключи в браузерах (кроме Firefox — его лучше настроить явно т.к. он игнорирует системный DNS).
Итог
Если читал всю статью — у тебя теперь полное понимание DoH: что это, почему нужно, как работает изнутри, как настроить на любой платформе дома и что делать когда что-то идёт не так.
Если пришёл за конкретным разделом — надеюсь нашёл нужное. Навигация по заголовкам работает с любого места.
Ты настроил DNS over HTTPS. Запросы идут в зашифрованном HTTPS-туннеле на 443-й порт. Провайдер видит соединения с Cloudflare или Google — неотличимые от обычного браузинга. Никакого открытого 53-го порта, никаких логов на стороне провайдера о том, какие домены ты резолвишь.
Что реально получил: DNS-запросы зашифрованы, DNS-спуфинг не работает, блокировки по DNS через провайдерский сервер больше не применяются. Что по-прежнему видно провайдеру: SNI при TLS-рукопожатии, IP-адреса назначения, объём трафика.
Слои защиты поверх DoH — ECH (Encrypted Client Hello) скрывает SNI, уже работает в Firefox и Chrome для Cloudflare-сайтов. VPN скрывает IP-адрес назначения и весь трафик. Tor — максимальный уровень, но ценой скорости.
DoH — нормальный и достаточный уровень защиты DNS для домашней сети. Настраивается один раз, работает тихо, не тормозит интернет. Это не магия и не полная анонимность — просто убираем самый дешёвый и распространённый способ наблюдения за трафиком.
Три слоя для максимальной приватности DNS и трафика в порядке нарастания сложности: DoH (убирает DNS-лог у провайдера, настройка 10 минут) — ECH (убирает SNI, включается само в Firefox и Chrome для поддерживающих сайтов) — VPN или Tor (скрывает IP-адреса назначений и весь трафик).
Для большинства домашних сценариев достаточно первого слоя. Задача выполнена — за 10 минут. Нормальный результат.
Если что-то не заработало
Сначала проверь на https://1.1.1.1/help — там написано чёрным по белому. Если DoH показывает «No» после всех настроек — пиши в комментарии с указанием ОС, браузера и что именно делал. Разберёмся.