Зачем очищать или удалять кеш 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, который устанавливается по умолчанию.
Это служба ключена по умолчанию в большинстве современных операционных систем Linux, таких как Fedora и Ubuntu.
Во-первых, давайте проверим, активна ли служба systemd-resolved, используя команду:
$ sudo systemctl is-active systemd-resolved.service
В моей системе активна служба 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, запустите:
$ 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
2. Служба кеширования DNS Nscd.
Nscd, сокращение от name service 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.
Berkeley Internet Name Domain (сокращенно 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
$ sudo rndc flushname itsecforu.ru
$ sudo rndc flush lan
$ sudo rndc flush wan
4. Cлужба кеширования 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
Большое спасибо! Реально весь интернет перелазил и везде не по делу. Благодаря Вашей статье починил интернет!