Поиск по сайту:

Как очистить или очистить кэш 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

Статьи по данной тематике