Когда сайт открывается дольше трёх-четырёх секунд, вы теряете посетителей. Одна из частых, но недооценённых причин — медленный DNS-резолвинг. Если браузеру приходится каждый раз искать IP-адрес сервера через DNS-сервер, это добавляет сотни миллисекунд к каждой загрузке. Правильная настройка DNS-кеша позволяет убрать эту задержку для повторных посещений и заметно ускорить работу в браузере.
- Как работает DNS-кеш и почему он влияет на скорость
- Что тормозит DNS-резолвинг на практике
- Шаг 1. Проверьте текущее состояние
- Шаг 2. Увеличьте размер DNS-кеша в браузере
- Google Chrome
- Firefox
- Microsoft Edge
- Шаг 3. Настройте DNS-кеш операционной системы
- Windows
- macOS
- Linux
- Шаг 4. Смените DNS-сервер на быстрый
- Шаг 5. Включите предварительный резолвинг
- Шаг 6. Настройте DNS-over-HTTPS (DoH)
- Частые ошибки при настройке DNS-кеша
- Что делать в зависимости от вашей ситуации
- Как проверить, что настройка помогла
- Итог
Как работает DNS-кеш и почему он влияет на скорость
Когда вы вводите адрес сайта, браузер не знает, на каком сервере он находится. Ему нужно превратить доменное имя (например, example.com) в IP-адрес. Этот процесс называется DNS-резолвингом. Он проходит в несколько шагов:
- Браузер проверяет свой внутренний кеш.
- Если записи нет — обращается к кешу операционной системы.
- Если и там пусто — идёт к настроенному DNS-серверу.
- DNS-сервер может опрашивать другие серверы, пока не найдёт ответ.
Каждый из этих шагов занимает время. В среднем один запрос к DNS-серверу — от 20 до 120 миллисекунд. Если на странице подключены десятки ресурсов с разных доменов (аналитика, шрифты, CDN, рекламные сети), задержки складываются. При плохом DNS-сервере или переполненном кеше страница может загруживаться на 1–3 секунды дольше, чем могла бы.
DNS-кеш решает эту проблему: он сохраняет результат резолвинга на время, указанное в TTL (Time To Live) записи. При повторном обращении к тому же домену браузер берёт ответ из кеша — мгновенно, без обращения к серверу.
Что тормозит DNS-резолвинг на практике
Прежде чем настраивать кеш, полезно понять, что именно создаёт задержку. Вот основные причины, которые я регулярно встречаю:
- Медленный DNS-сервер провайдера. Многие пользователи используют DNS интернет-провайдера по умолчанию. Он может быть перегружен или находиться далеко от вас.
- Маленький TTL. Некоторые сайты ставят TTL в 60–300 секунд. Это значит, что кеш быстро устаревает, и браузер снова идёт за ответом на сервер.
- Переполненный кеш браузера. Браузеры хранят ограниченное количество записей. Когда кеш переполнен, старые записи вытесняются, и повторный визит на тот же сайт снова требует резолвинга.
- Отсутствие предварительного резолвинга. Браузер начинает искать IP-адрес только в момент загрузки страницы, хотя можно сделать это заранее.
- DNS-over-HTTPS включён, но сервер удалённый. DoH — это хорошо для приватности, но если выбран далёкий сервер, задержка может быть выше, чем при работе с локальным DNS.
Шаг 1. Проверьте текущее состояние
Откройте консоль разработчика в браузере (F12) и перейдите на вкладку «Network» (Сеть). Обратите внимание на колонку «Time» или «Timing». Там будет строка «DNS Lookup» — это время, потраченное на резолвинг. Если оно превышает 50 мс для повторных запросов к одному и тому же домену, кеш не работает или записи быстро устаревают.
На Windows можно посмотреть содержимое DNS-кеша системы прямо из терминала:
ipconfig /displaydns На macOS:
sudo dscacheutil -cachedump -entries Host Обратите внимание на поле «Time To Live» — показывает, сколько секунд осталось до устаревания записи. Если значения маленькие (меньше 60), кеш обновляется слишком часто.
Шаг 2. Увеличьте размер DNS-кеша в браузере
Каждый браузер хранит DNS-записи в собственном кеше. Размер ограничен, и при переполнении старые записи удаляются. Если вы часто перемещаетесь между множеством сайтов, имеет смысл увеличить лимит.
Google Chrome
Chrome не даёт прямой настройки размера DNS-кеша через интерфейс, но можно повлиять на его поведение через флаги:
- Введите в адресной строке
chrome://flags. - Найдите
Secure DNS lookups— попробуйте переключить, если резолвинг медленный. - Включите
Parallel downloading— это не про DNS напрямую, но ускоряет общую загрузку ресурсов.
Также полезно периодически очищать кеш принудительно: chrome://net-internals/#dns → нажмите «Clear host cache». Это помогает, если кеш заполнен устаревшими или некорректными записями.
Firefox
В Firefox настройки DNS-кеша доступны напрямую:
- Введите в адресной строке
about:config. - Найдите параметр
network.dnsCacheEntries — по умолчанию 400. Можно увеличить до 1000–2000. - Найдите
network.dnsCacheExpiration — значение в секундах. По умолчанию 60. Увеличьте до 3600 (1 час) или более, если сайты не меняют IP-адреса часто. - Если хотите использовать DNS-over-HTTPS, найдите
network.trr.mode: значение 2 — использовать DoH с фолбэком на обычный DNS, значение 3 — только DoH.
Microsoft Edge
Edge основан на Chromium, поэтому подход аналогичен Chrome. Дополнительно можно зайти в edge://settings/privacy и проверить настройки безопасного DNS. Если включён DoH, убедитесь, что выбран быстрый провайдер.
Шаг 3. Настройте DNS-кеш операционной системы
ОС тоже ведёт свой DNS-кеш. Если он работает плохо, браузер получает задержку ещё до того, как обратится к собственному кешу.
Windows
Служба DNS-клиента (DNS Client) кеширует записи. Иногда её отключают для диагностики, но в обычной работе она должна быть включена — без неё каждый запрос идёт напрямую к DNS-серверу.
- Откройте службы:
services.msc. - Найдите «DNS Client».
- Убедитесь, что статус — «Running» (Выполняется), тип запуска — «Automatic».
Если кеш работает некорректно (например, вы изменили DNS-сервер, но результат не применяется), сбросьте его:
ipconfig /flushdns macOS
В macOS кешем управляет процесс mDNSResponder. Для сброса кеша:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder Размер кеша в macOS регулируется системой автоматически, ручная настройка параметров не предусмотрена стандартными средствами.
Linux
В современных дистрибутивах часто используется systemd-resolved. Проверить статус:
systemctl status systemd-resolved Посмотреть статистику кеша:
resolvectl statistics Сбросить кеш:
sudo resolvectl flush-caches В файле /etc/systemd/resolved.conf можно настроить DNS-серверы и домены поиска, что тоже влияет на скорость резолвинга.
Шаг 4. Смените DNS-сервер на быстрый
Это самый эффективный шаг. Даже идеально настроенный кеш не поможет, если первый же запрос к DNS-серверу занимает 200 мс. Вот сравнение популярных публичных DNS-серверов:
| Провайдер | Основной IP | Вторичный IP | DoH | Примечание |
|---|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Да | Один из самых быстрых в мире, хорошая приватность |
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | Да | Надёжный, но логирует данные |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Да | Блокирует вредоносные домены |
| AdGuard DNS | 94.140.14.14 | 94.140.15.15 | Да | Блокирует рекламу на уровне DNS |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Да | Популярный, есть фильтрация контента |
>
Как сменить DNS — зависит от вашей операционной системы и роутера. Самый эффективный вариант — прописать DNS на роутере, чтобы все устройства в сети использовали быстрый сервер. Альтернатива — настроить DNS на конкретном устройстве в параметрах сетевого подключения.
На Windows: «Панель управления» → «Сеть и Интернет» → «Сетевые подключения» → правый клик по адаптеру → «Свойства» → IPv4 → «Использовать следующие DNS-серверы».
На macOS: «Системные настройки» → «Сеть» → выбрать подключение → «Дополнительно» → вкладка «DNS».
Шаг 5. Включите предварительный резолвинг
Браузеры поддерживают DNS prefetch — механизм, при котором IP-адреса ищутся заранее, ещё до того, как вы кликнете по ссылке. В Chrome и Edge это включено по умолчанию. Проверить можно в настройках приватности — опция «Использовать подсказку для ускорения загрузки страниц».
Если вы разрабатываете сайт, можно добавить в <head>:
<link rel="dns-prefetch" href="//cdn.example.com"> Это заставит браузер заранее разрешить домен CDN, и когда страница начнёт загружать ресурсы оттуда, резолвинг уже будет готов.
Шаг 6. Настройте DNS-over-HTTPS (DoH)
DNS-запросы по умолчанию передаются в открытом виде. Это не только вопрос приватности, но и скорости: провайдер может подменять или замедлять ответы. DoH шифрует запросы через HTTPS, что исключает вмешательство.
В Firefox: «Настройки» → «Основные» → прокрутите до «Параметры сети» → «Настроить» → включите «DNS через HTTPS». Выберите Cloudflare или NextDNS.
В Chrome: «Настройки» → «Безопасность и конфиденциальность» → «Безопасность» → включите «Использовать безопасный DNS». Можно указать конкретного провайдера.
В Edge: «Настройки» → «Конфиденциальность» → «Безопасность» → «Использовать безопасный DNS».
Важный нюанс: если вы включили DoH, но выбрали далёкий сервер, резолвинг может стать медленнее. Проверьте время DNS Lookup в консоли до и после включения.
Частые ошибки при настройке DNS-кеша
- Отключение службы DNS-клиента в Windows. Некоторые «оптимизаторы» советуют её отключить. На практике это замедляет работу, потому что каждый запрос идёт напрямую к серверу без кеширования.
- Установка слишком большого TTL в настройках браузера. Если вы выставили кешу кешировать на сутки, а сайт сменил IP-адрес, вы не сможете на него попасть, пока кеш не обновится. Разумный компромисс — от 30 минут до 2 часов.
- Использование DNS-сервера провайдера без проверки. Провайдерский DNS не всегда медленный, но если вы замечаете задержки — попробуйте публичные альтернативы и сравните время DNS Lookup.
- Очистка DNS-кеша каждые 5 минут. Это контрпродуктивно. Кеш для того и нужен, чтобы не делать запросы каждый раз. Очищайте его только при реальных проблемах — например, если сайт переехал на другой сервер.
- Включение DoH без проверки скорости. Не все DoH-провайдеры одинаково быстры в вашем регионе. Проверьте время резолвинга в консоли до и после переключения.
Что делать в зависимости от вашей ситуации
Если вы обычный пользователь и просто хотите ускорить браузер: смените DNS на Cloudflare (1.1.1.1) или Google (8.8.8.8), включите DoH в настройках браузера, убедитесь, что служба DNS-клиента в ОС работает. Этого достаточно в 90% случаев.
Если вы часто работаете с разными сайтами и переключаетесь между ними: увеличьте размер DNS-кеша в Firefox (до 1000–2000 записей) или периодически очищайте кеш в Chrome через chrome://net-internals/#dns, чтобы он не забивался устаревшими записями.
Если вы разработчик и хотите ускорить свой сайт для посетителей: настройте разумный TTL для DNS-записей (от 300 до 3600 секунд), используйте dns-prefetch для внешних ресурсов, подключите CDN с быстрым DNS-резолвингом.
Если у вас домашняя сеть с множеством устройств: настройте DNS на роутере. Все устройства будут использовать быстрый DNS-сервер без необходимости настраивать каждое отдельно.
Как проверить, что настройка помогла
После внесения изменений откройте консоль разработчика (F12 → Network) и посмотрите на колонку DNS Lookup. Для повторных запросов к тому же домену время должно быть равно 0 мс — это значит, что ответ взят из кеша. Для первого запроса к новому домену время должно быть значительно меньше, чем до настройки (в идеале — не более 30–50 мс).
Также можно использовать утилиту nslookup в терминале:
nslookup example.com Обратите внимание на время выполнения. Если до настройки оно было 200 мс, а после — 20 мс, значит, смена DNS-сервера дала результат.
Итог
Настройка DNS-кеша — это не магия, а устранение лишних задержек. Вот что нужно сделать:
- Сменить DNS-сервер на быстрый (Cloudflare, Google, Quad9).
- Включить DNS-over-HTTPS для приватности и защиты от подмены.
- Убедиться, что служба DNS-клиента в ОС работает.
- Увеличить размер кеша в браузере, если вы часто посещаете много разных сайтов.
- Не чистить кеш без необходимости — он должен работать.
- Проверить результат через консоль разработчика — DNS Lookup для повторных запросов должен быть нулевым.
Если после всех настроек DNS Lookup в консоли показывает 0 мс для повторных запросов, а первый резолвинг укладывается в 30–50 мс — вы сделали всё, что могли на стороне клиента. Дальше задержки зависят от сервера сайта и качества канала, а не от DNS.
