🌐 Как очистить или стереть кеш DNS на Linux |

🌐 Как очистить или стереть кеш 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, который устанавливается по умолчанию.

Это служба ключена по умолчанию в большинстве современных операционных систем Linux, таких как Fedora и Ubuntu.

Во-первых, давайте проверим, активна ли служба systemd-resolved, используя команду:

$ sudo systemctl is-active systemd-resolved.service
Если включена служба systemd-resolved, в выводе будет отображаться «active».
Если она неактивна, система выведет «inactive».

В моей системе активна служба 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
Последняя версия BID также позволяет очистить кеш DNS для определенного домена.
Следующая команда очищает кеш DNS для домена itsecforu.ru:
$ sudo rndc flushname itsecforu.ru
Вы также можете очистить кеш DNS для всей зоны LAN и WAN, как показано ниже:
$ 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

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Антон

    Большое спасибо! Реально весь интернет перелазил и везде не по делу. Благодаря Вашей статье починил интернет!

    Ответить