Как очистить или очистить кэш DNS в Linux
В этом кратком руководстве объясняются все возможные способы очистки кэша DNS в операционных системах Linux. Для тех, кому интересно: Кэш DNS (или иногда называемый Кэш резольвера DNS) - это небольшая временная база данных, поддерживаемая операционными системами. Он хранит информацию обо всех посещенных веб-сайтах и других доменах Интернета. Другими словами, кэш DNS содержит недавние запросы DNS. Когда вы посещаете один и тот же веб-сайт несколько раз, ОС извлекает записи DNS этого веб-сайта из локальной базы данных кэша DNS, а не из фактического общедоступного DNS-сервера. Следовательно, кэширование DNS сокращает время загрузки веб-сайта и снижает нагрузку на полосу пропускания и потребление ЦП исходного DNS-сервера.
Почему вам следует очищать или сбрасывать кеш DNS?
Может быть много причин для очистки локального кэша DNS. Например, вы могли настроить свой веб-сайт или изменить настройки DNS для своего домена, или у вас возникли проблемы с подключением к Интернету. В таких случаях, если вы попытаетесь посетить сайт, ваша ОС, скорее всего, получит кэшированную версию сайта из локального кэша DNS. Таким образом, очистка локального кэша DNS приведет к удалению всех записей из базы данных локального кэша DNS и заставит вашу систему повторно заполнить кэш DNS новыми записями с фактического DNS-сервера и отобразить новую копию веб-сайта.
Очистить или очистить кэш DNS в Linux
По умолчанию кэширование DNS не установлено и/или не включено на уровне операционной системы в Linux. Вместо этого такие приложения, как веб-браузеры, поддерживают собственный внутренний кеш. Таким образом, вы можете просто очистить кеш вашего браузера или перезапустить его, чтобы устранить проблемы с подключением к Интернету, решить проблемы подмены DNS (например, отравление кэша DNS) и решить проблемы с устаревшим контентом. Если в вашем дистрибутиве Linux используются какие-либо службы кэширования DNS, вам необходимо вручную очистить их, как описано ниже. Существует несколько способов очистки кэша DNS. Это зависит от дистрибутива Linux и службы кэширования DNS, которую вы используете. Здесь я включил инструкции по очистке наиболее часто используемых служб кэширования DNS в Linux.
1. Очистите службу кэширования DNS Systemd-resolve.
Systemd-resolve — это служба systemd, предоставляющая службу кэширования DNS на системном уровне для локальных приложений. Это часть пакета systemd, который устанавливается по умолчанию. Служба Systemd-resolved включена по умолчанию в большинстве современных операционных систем Linux, таких как Fedora и Ubuntu. Сначала давайте проверим, активна ли служба systemd-resolved или нет, с помощью команды:
sudo systemctl is-active systemd-resolved.service
Если служба systemd-resolved включена, вы увидите "active" в выходных данных. Если он не активен, будет напечатано "inactive".
Проверьте, активна ли служба systemd-resolved
Как вы видите в приведенном выше выводе, в моей системе активна служба systemd-resolved.
Давайте посмотрим статистику службы кэширования systemd-resolve с помощью команды:
sudo systemd-resolve --statistics
Пример вывода:
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3117
Cache
Current Cache Size: 58
Cache Hits: 1248
Cache Misses: 1891
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
статистика systemd-resolve
Как видите, в приведенном выше выводе указано общее количество текущих размеров кеша, попаданий и пропущенных кешей.
Чтобы очистить кеш systemd-resolve, запустите:
sudo systemd-resolve --flush-caches
В случае успешного выполнения вы не увидите никаких результатов.
Теперь проверьте статистику systemd-resolve, чтобы убедиться, очищен ли локальный кэш DNS или нет.
sudo systemd-resolve --statistics
Теперь вы увидите, что текущий размер кэша равен нулю.
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3155
Cache
Current Cache Size: 0
Cache Hits: 1255
Cache Misses: 1922
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
Отображение статистики systemd-resolve
2. Очистите службу кэширования DNS Nscd.
Nscd, сокращение от name sservice cache daemon, представляет собой демон кэширования, который обеспечивает кэширование для наиболее распространенных запросов службы имен. Это предпочтительный сервис кэширования для большинства систем на базе Redhat. Если ваша система Linux использует службу кэширования nscd, вы можете очистить или очистить локальную службу кэширования DNS, просто перезапустив службу nscd, как показано ниже:
sudo systemctl restart nscd.service
Или,
sudo service nscd restart
Или,
sudo /etc/init.d/nscd restart
3. Очистите службу кэширования Bind/Named DNS.
Интернет-домен имен Беркли (сокращенно BIND) — это самый популярный DNS-сервер с открытым исходным кодом, используемый сегодня. Если вы используете BIND для кэширования DNS-запросов, используйте следующие команды для очистки службы кэширования BIND в Linux:
sudo systemctl restart named
Или,
sudo service named reload
Или,
sudo /etc/init.d/named restart
Или,
sudo rndc reload
Или,
sudo rndc exec
Последняя версия BID также позволяет очищать кэш DNS для определенного домена. Следующая команда очищает кэш DNS для домена ostechnix.com:
sudo rndc flushname ostechnix.com
Вы также можете очистить кэш DNS для всех зон LAN и WAN, как показано ниже:
sudo rndc flush lan
sudo rndc flush wan
4. Очистите службу кэширования DNS Dnsmasq.
Dnsmasq — это облегченный DHCP-сервер с кэширующим DNS-сервером и поддержкой серверов PXE и TFTP. Он подходит для маршрутизаторов с ограниченными ресурсами и межсетевых экранов для управления небольшими сетями.
Если вы используете dnsmasq в качестве службы кэширования, вы можете очистить локальную службу кэширования DNS, как показано ниже:
sudo systemctl restart dnsmasq
Другой способ освоить локальный кэш DNS в Ubuntu и других вариантах Ubuntu, таких как Linux Mint, — запустить следующую команду:
sudo /etc/init.d/dns-clean restart
Надеюсь это поможет.
Связанное чтение:
- Установить и настроить DNS-сервер в Ubuntu 16.04 LTS