DNS — это служба, созданная для сопоставления доменных имен сайтов с IP-адресами серверов, на которых эти сайты расположены. Если провести аналогию, то сервер DNS — это телефонный справочник, в котором имя условной Маши сопоставляется с номером ее телефона.
Запрос к DNS-серверу занимает какое-то время, поэтому для ускорения доступа к веб-сайтам компьютеры и смартфоны кэшируют DNS-записи посещенных ресурсов локально, чтобы в дальнейшем не получать их заново с сервера, а достать из сохраненного кэша. Но иногда локальный кэш DNS «ломается» и вызывает проблемы с доступом к сайтам. Или сайт переехал на новый сервер, а кэш не успел обновиться и браузер продолжает «стучаться» по старому адресу.
В таких случаях помогает очистка кэша DNS на устройстве, а в этой статье будет описаны способы сделать это в различных операционных системах.
Содержание
Очистка кэша DNS в Windows
- Нажимаем Win + R и запускаем cmd
- Выполняем команду
ipconfig /flushdns
- Дожидаемся появления сообщения «Кэш сопоставителя DNS успешно очищен»
Очистка кэша DNS в Linux
Процедура удаления старого кэша DNS в Linux может разниться в зависимости от конкретной системы и используемого в ней DNS-сервера. Если не знаете какой именно сервер DNS используется у вас — просто перебирайте последовательно приведенные ниже варианты пока один из них не сработает.
Кэширование DNS Systemd-resolve
В дистрибутивах на основе systemd удаление кэша DNS осуществляется следующей командой:
sudo systemd-resolve --flush-caches
Сразу после очистки можно проверить актуальный размер кэша и убедиться, что он равен нулю:
sudo systemd-resolve --statistics
Кэширование DNS Nscd
Если в системе используется служба Nscd (Name Service Caching Daemon), то для очистки кэша DNS для текущего пользователя нужно выполнить следующую команду:
sudo nscd -i hosts
А заменив параметр -i на -I можно удалить локальный кэш DNS для всех пользователей:
sudo nscd -I hosts
Также можно просто перезапустить сервис:
sudo service nscd restart
Кэширование DNS BIND (named)
Если в системе используется DNS-сервер Berkeley Internet Name Domain (или просто BIND), то очистка кэша происходит при его перезапуске:
sudo service named reload
Кэширование DNS Dnsmasq
Если в качестве DNS-сервера используется dnsmasq, то очистка кэша DNS также осуществляется путем его перезапуска:
sudo systemctl restart dnsmasq
Другие варианты
В некоторых дистрибутивах Linux для удаления локального кэша DNS может сработать следующая команда:
sudo /etc/init.d/dns-clean start
Очистка кэша DNS в macOS
Команды для очистки локального кэша DNS в macOS разнятся в зависимости от версии используемой системы. Главное — не устанавливайте в целях обнуления кэша и других простейших операций по обслуживанию системы различные «программы-оптимизаторы» вроде CleanMyMac X, ведь все необходимые действия элементарно выполняются в консоли.
От OS X 10.11 El Capitan до macOS 13.0 Ventura и последующих версий
Для очистки кэша DNS нужно выполнить в Терминале следующую команду:
sudo killall -HUP mDNSResponder
OS X 10.10 Yosemite
В дистрибутиве Yosemite команда для удаления локального DNS-кэша будет отличаться:
sudo discoveryutil udnsflushcaches
OS X 10.7 Lion, 10.8 Mountain Lion, 10.9 Mavericks
А вот в более старых версиях OS X используется та же команда, что и в современных версиях macOS:
sudo killall -HUP mDNSResponder
OS X 10.6 Snow Leopard
И, наконец, в Snow Leopard также используется своя разновидность команды для стирания кэша:
sudo dscacheutil -flushcache
Очистка кэша DNS в iOS
В iOS есть сразу два способа для очистки локального кэша DNS:
- Перевести смартфон в режим «В самолете», дождаться отключения сотового модуля и Wi-Fi сетей, затем перевести его обратно в обычный режим
- Перезагрузить аппарат в случае, если первый способ по какой-то причине не сработал
Очистка кэша DNS на Android
На устройствах под управлением Android кэш DNS стирается на уровне используемого браузера.
Например, в случае с Chrome нужно открыть страницу chrome://net-internals/#dn, выбрать в меню DNS и нажать на кнопку очистки.
Заключение
Если после сброса кэша DNS все еще наблюдаются проблемы с доступом к каким-то ресурсам, то проблема может быть на стороне вышестоящих DNS-серверов (на уровне местного провайдера или другой используемой службы DNS). Информация на DNS-серверах в интернете может появляться с задержкой вплоть до 72 часов — это нормально и надо просто ждать.