Очистить DNS-кэш Linux

Обновлено: 21.11.2024

Вы используете последнюю версию Ubuntu и ищете способ очистить кэш DNS? Ну, вы находитесь в правильном месте. В следующем руководстве показано, как сбросить кэш DNS в Ubuntu 18.04, наряду с ним мы также расскажем вам, почему вам следует время от времени рассматривать возможность очистки кэша DNS. С учетом сказанного давайте начнем с процесса

Зачем и как очищать кеш DNS в Ubuntu 18.04?

Кэш DNS может время от времени повреждаться, причиной этого могут быть технические ошибки или какие-либо другие вирусные атаки, которые вносят неверные записи DNS в базу данных, и следствием этого может быть то, что когда пользователь посещает веб-сайт, он перенаправляется на какой-либо другой веб-сайт, на котором много рекламы или даже может быть вредоносное ПО. Когда кеш поврежден, все предлагают сбросить кеш DNS пользователю

Очистить DNS-кэш Ubuntu

Некоторые Debian Linux, такие как Ubuntu, все еще используют systemd-resolve. Это разрешение уже встроено в систему Ubuntu и используется операционной системой для многих вещей автоматически без ведома пользователя. Он уже установлен и настроен в Ubuntu, пользователю просто нужно ввести команду для сброса DNS, и все будет готово.

Во-первых, вам нужно открыть терминал и ввести:

При вводе команды терминал не выдает никакого подтверждения, что кеш сброшен, для подтверждения надо ввести другую команду, которая бы показала пользователю статистику, команда такая:

После того, как вы введете команду, статистика будет показана на терминале, и когда вы увидите, что «текущий размер кеша» равен нулю, вы получите подтверждение того, что ваш кеш DNS был очищен.

Если вы используете другую версию Linux, отличную от Ubuntu, вы также можете использовать следующее:

Команда NSCD

Если вы используете не Ubuntu, а какой-либо другой Linux, вы также можете использовать nscd. Arch Linux в основном использует nscd. Если это так, вам просто нужно ввести следующую команду, чтобы очистить кеш DNS в этом Linux.

Вы можете использовать вышеупомянутый метод для очистки кэша DNS в Ubuntu. Как уже обсуждалось, время от времени следует очищать кеш DNS, потому что это может вызвать несколько проблем, таких как неправильная загрузка веб-сайтов, неправильная работа сценариев веб-страниц и т. д. Все это является результатом повреждения кеша DNS и его очистки. и сброс настроек, вероятно, решит проблему.

Итак, вы пытались использовать вышеупомянутый метод для очистки кэша DNS? Это сработало для вас? Если нет, поделитесь с нами методом, который вы использовали, в разделе комментариев ниже.

Похожие сообщения:

Карим Буздар

Об авторе: Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Вы можете связаться с Каримом в LinkedIn

Поиск

Об этом сайте

Последние руководства

сообщить об этом объявлении

Есть ли проблемы с сетью на вашей рабочей станции или сервере Linux? Сайты не загружаются должным образом? Возможно, вам нужно очистить кеш DNS. Джек Уоллен покажет вам, как это сделать.


Изображение: Джек Уоллен

Кэш DNS — это временная база данных в операционной системе, в которой хранятся поисковые запросы DNS (информация о посещенных веб-сайтах и ​​интернет-доменах). Как это работает, довольно просто: когда вы посещаете веб-сайт несколько раз, ваша операционная система извлекает информацию для веб-сайта из локально хранящегося кеша вместо того, чтобы использовать более медленные общедоступные записи DNS. Из-за этого загрузка этих веб-сайтов происходит значительно быстрее.

Однако бывают случаи, когда кэш DNS может быть поврежден. Вы также можете заметить случай, когда веб-сайт изменился, но вместо этого ваш браузер настаивает на загрузке старой (кешированной) версии сайта.

Что делать, когда это происходит? Вы очищаете кэш DNS в своей операционной системе. После очистки кеша DNS первоначальная загрузка веб-сайтов будет немного медленнее, но она будет правильной. После кэширования DNS для сайта загрузка этого сайта ускорится.

Как очистить кеш DNS, зависит от вашей операционной системы. Я хочу показать вам, как легко очистить кеш DNS в операционной системе Linux.

Что вам понадобится

Единственное, что вам нужно для этой работы, — это дистрибутив Linux, использующий systemd, и пользователь с привилегиями sudo. Этот же процесс будет работать как с дистрибутивами на основе Ubuntu, так и с дистрибутивами на основе Red Hat. Я протестировал этот процесс как на Ubuntu 18.04, так и на CentOS 8, и он работает безупречно.

Как очистить кеш

Первое, что нам нужно сделать, это убедиться, что systemd-resolved запущен. Для этого откройте окно терминала на рабочем столе или сервере и введите команду:

sudo systemctl is-active systemd-resolved

В выводе этой команды вы должны увидеть только:

В таком случае можно продолжать. Затем мы проверим некоторую статистику кэша DNS с помощью команды:

sudo systemd-resolve --statistics

При выполнении этой команды вы должны увидеть список транзакций, кэша и вердиктов DNSSEC (рис. A).

Рисунок А

Статистика кэша DNS на Ubuntu Server 18.04.

Важным элементом информации является текущий размер кэша. Мы собираемся сбросить это значение до 0, очистив кеш с помощью команды:

sudo systemd-resolve --flush-cache

Еще раз введите команду:

sudo systemd-resolve --statistics

Теперь вы должны увидеть, что текущий размер кэша равен 0 (рис. Б).

Рисунок Б

Мы успешно очистили кэш DNS на Ubuntu Server 18.04.

Предостережение

Если вы используете дистрибутив на основе Red Hat, отличный от CentOS, вы можете обнаружить, что команда systemd-resolve не работает. В этом случае вам, возможно, придется попробовать одну из следующих команд, чтобы очистить кеш DNS:

sudo systemctl перезапустить nscd.service

имя перезапуска sudo systemctl

Так или иначе, одна из показанных здесь команд очистит кеш DNS в вашем дистрибутиве Linux на основе Red Hat.

И это все, что нужно для очистки кеша DNS. Если вы обнаружите, что сайты не загружаются должным образом или с вашей сетью происходит что-то шаткое, и вы не можете точно определить проблему, немного очистите этот DNS и посмотрите, не решит ли это проблему.

Еженедельный бюллетень с открытым исходным кодом

Не пропустите наши советы, руководства и комментарии по ОС Linux и приложениям с открытым исходным кодом.

Давайте посмотрим, как очистить DNS в Linux и как работает кэш DNS.

Вот некоторые темы, которые мы рассмотрим в этой статье:

Прежде чем показать вам, как очистить кеш DNS в Linux, позвольте мне дать вам некоторые сведения об этой теме. Или, если вы хотите сразу перейти к командной строке, чтобы очистить кэш DNS, не стесняйтесь.

Но, по моему опыту, стоит знать подробности, чтобы вы могли решить любую проблему, связанную с DNS, и сэкономить много времени.

Позвольте мне доказать вам, продолжайте читать. Приступим.

Как работает кеш DNS в Linux

Позвольте мне объяснить, почему:

Чтобы повысить производительность, сделанные вами DNS-запросы сохраняются в кэше на вашем компьютере, поэтому вам не нужно выходить в Интернет и снова узнавать IP-адрес этого сервера.

Самая важная часть:

Как DNS-кэш работает в Linux

Когда очищать DNS

Например, иногда вы замечали странное поведение или если у вас есть веб-сайт, для которого вы управляете DNS, и вам нужно выполнить некоторые тесты, добавив или изменив записи в DNS, вы можете очистить Кэш DNS вашего сервера, чтобы сразу увидеть изменения на вашем компьютере.

Кроме того, если вы пытаетесь получить доступ к одному веб-сайту в браузере, и страница не загружается, и в то же время вы уверены, что подключены к Интернету.

Что это значит для вас?

Подобная ситуация может указывать нам на проблему с вашим кешем DNS.

Я хочу упомянуть жизненно важный файл конфигурации в Linux, касающийся DNS: /etc/resolv.conf.

Что такое resolv.conf в Linux

Давайте посмотрим, что делает файл resolv.conf, также имейте в виду, что любые изменения в этом файле требуют сброса DNS.

Разрешение.conf — это файл конфигурации, содержащий информацию, позволяющую компьютеру изменять удобочитаемые буквенно-цифровые доменные имена (FQDN) на машиночитаемые IP-адреса (IPv4 или IPv6). Преобразование доменных имен в IP-адреса называется разрешением, разрешением доменного имени или разрешением DNS.

Резолвер использует файл /etc/resolv.conf, давайте поговорим о Резолвере:

Resolver — это набор подпрограмм в библиотеке C, которые обеспечивают доступ к DNS. Файл конфигурации распознавателя resolve.conf (/etc/resolv.conf) содержит информацию, считываемую подпрограммами распознавателя при первом их вызове процессом. Файл предназначен для чтения человеком и включает список ключевых слов со значениями, которые соответствуют различным типам информации преобразователя.

Пример resolv.conf в Linux:

Пожалуйста, не копируйте пример и не заменяйте его своим файлом, ведь в каждой сетевой конфигурации есть ваш файл. Если вы замените его моим примером, ваше разрешение DNS перестанет работать.

Давайте рассмотрим каждый термин из resolv.conf

nameserver — это IP-адрес сервера имен. Вы можете настроить более одного сервера имен в resolv.conf

При наличии нескольких серверов имен библиотека распознавателя выполняет запросы в той же последовательности, что и в resolv.conf.

Термин «поиск» включает в себя список путей поиска доменов, которые Resolver будет запрашивать для любых имен, и это очень полезно, когда вы хотите выполнить поиск DNS в нескольких доменах. Кроме того, Resolver может использовать список терминов «поиск» для разрешения сокращенных имен.

Термин "параметры":

Основная идея «параметров» для настройки параметров конфигурации преобразователя, таких как тайм-аут, ndots, ротация и т. д.

Почему resolv conf перезаписывается?

Одна из причин, и наиболее вероятная, если у вас есть VPN-клиенты, большинство из которых модифицируют файл /etc/resolv.conf, заключается в том, чтобы убедиться, что клиентский VPN-компьютер использует безопасный сервер имен для разрешения имен хостов. Ничто не мешает вам изменить resolv.conf после того, как VPN-маршрутизатор кэшировал сервер имен.

С другой стороны, файл resolv.conf может отсутствовать.

Resolv.conf отсутствует

Если файл resolv.conf отсутствует или информация в нем неверна, вы можете увидеть эту ошибку при попытке выполнить команду ping:

Чтобы решить описанную выше проблему, вам нужно исправить файл resolv.conf, только если вы уверены, что подключены к Интернету.

Если ваш компьютер использует соединение WIFI, вы можете отключить и снова включить WIFI. Выполнение этого процесса заставит операционную систему воссоздать файл resolv.conf.

Когда вы снова включите WIFI, компьютер получит всю информацию о DNS от вашего маршрутизатора

Что такое TTL (DNS)

Кроме того, поскольку записи DNS имеют атрибут TTL (Time-to-Live), количество времени в секундах, в течение которого кэш будет действителен. Так, например, если TTL составляет 300 секунд, операционная система должна обновить кеш DNS по истечении этого времени, если вы запрашиваете тот же самый DNS и больше не получаете из кеша.

Но подождите — это еще не все.

Кроме того, очистка кэша DNS также является хорошей практикой обслуживания. Данные кеша хранилища DNS не занимают слишком много данных на диске вашего компьютера или сервере, но список может стать заметным со временем, если мы не очищаем кеш в течение определенного периода времени.

Ошибки 404

Кроме того, это может помешать кешу возвращать неудовлетворительные результаты и ошибки 404, когда вы возвращаетесь к старым серверам, так как старые данные IP могут не отображать данные текущего сервера, например, если истек срок жизни.

Звучит неплохо, правда?

Например, в большинстве случаев наиболее распространенным способом очистки кеша является использование файла systemd. Однако, если вы настроили, например, dnsmasq в качестве преобразователя DNS для управления кешем DSN, это будет другим способом, но тоже простым.

Что такое преобразователи DNS?

Следуя приведенному ниже списку наиболее распространенных:

Какой у вас преобразователь DNS?

Во-первых, давайте перепроверим, какой преобразователь DNS вы используете, чтобы вы могли определить, какую команду следует использовать:

В большинстве случаев результат следующий:

В моем случае я использую systemd-resolve, как видно из выходных данных выше.

Если вы получили сообщение «sudo: lsof: command not found», просто выполните приведенную ниже команду, чтобы установить ее.

Чтобы уточнить, DNS работает на порту 53. Команда lsof покажет нам, какой процесс/приложение использует этот порт, поэтому мы найдем, какое приложение управляет DNS на вашем компьютере.

Наконец, давайте посмотрим, как сбросить кеш DNS.

Очистить DNS с помощью systemd-resolved

Эта команда работает на всех современных Linux, таких как Debian, Ubuntu, Linux Mint, Arch Linux.

Вы хотите убедиться, что кеш был очищен? Это просто, просто запустите команду ниже:

Вы можете убедиться, что «Текущий размер кэша» равен нулю.

Как очистить DNS в Linux с помощью сигналов

Есть еще один способ очистить кеш DNS, выполнив и отправив сигнал «USR2» в «systemd-resolved». Этот сигнал укажет systemd очистить для нас кеш DNS.

Далее вы можете проверить, правильно ли приведенная выше команда очистила кеш DNS, отправив сигнал «USR1» службе с разрешением systemd. Таким образом, он покажет свое текущее состояние в журнале systemd.

Для понимания этой команды и дополнительного подтверждения сигналы «USR1» и «USR2» полезны для простого межпроцессного взаимодействия. Этот сигнал помогает разработчикам написать обработчик сигнала для получения сигнала. У них нет конкретного значения — они предназначены для любого произвольного использования, которое захочет разработчик. Тот, кто разработал программу, может использовать ее для выполнения некоторых действий, таких как «выключение», «сброс журналов», «перезапуск службы» или что-то еще. Но в этом случае разработчики с «системным разрешением» используют этот сигнал для сброса DNS.

Как очистить кэш DNS в Redhat и Fedora?

Nscd — это служба кэширования, используемая в Fedora и RedHat. Если ваша система использует Nscd, для очистки кэша DNS необходимо перезапустить службу Nscd:

или

Как очистить DNS в Linux с помощью DNSMasq

Dnsmasq — это сервер имен с кэшированием DHCP и DNS.

Если ваша операционная система использует DNSMasq в качестве сервера кэширования, чтобы очистить кеш DNS, вам необходимо перезапустить службу Dnsmasq с помощью следующей команды:

Как просмотреть и очистить кеш DNS от BIND в Linux

Аналогично DNSMasq, у нас есть BIND или Berkeley Internet Name Domain — наиболее популярное программное обеспечение с открытым исходным кодом, использующее протоколы DNS, что позволяет нам осуществлять преобразование IP-адреса в доменное имя в обоих направлениях.< /p>

Чтобы просмотреть кеш:

Давайте очистим кеш DNS, выполнив команду ниже:

Во-вторых, перезагрузите привязку:

Как очистить кэш DNS в macOS?

Поскольку у нас есть много версий macOS, вам нужно убедиться, какую из них вы используете, но чтобы упростить задачу, давайте рассмотрим их.

Во-первых, вы должны выполнить команду от имени пользователя с правами системного администратора (известного как пользователь sudo).

Итак, чтобы очистить кеш DNS в macOS, выполните следующие шаги:

Mas OS Flush DNS:

  1. Откройте Finder.
  2. Найдите и перейдите в Приложения > Утилиты > Терминал. Вы увидите окно Терминала.
  3. В Терминале введите следующую команду и нажмите Enter:
  4. sudo killall -HUP mDNSResponder
  5. Введите пароль sudo и нажмите Enter. Если команда выполнена успешно, система не покажет никаких сообщений.

если версия macOS находится между версиями, указанными ниже, процесс очистки кеша DNS немного отличается:

В версиях macOS 10.11 и 10.9:

Или macOS версии 10.10

Наконец, macOS версии 10.6 и 10.5

Как проверить, работает ли DNS

1 — выполнить команду ping:

2 – Используйте команду копать:

Вы должны увидеть что-то вроде этого:

Или вы можете попробовать открыть веб-страницу в браузере.

Заключение

В заключение вы узнали, как можно быстро и эффективно очистить кеш DNS в Linux. Это просто, верно?

Кроме того, я надеюсь, что вы узнали, как работает кеш, потому что это избавит вас от головной боли!

Если вы хотите узнать больше о файле /etc/resolv.conf, вы можете обратиться к этому руководству.

Если вы хотите углубиться в операционную систему Linux, прочтите этот пост с советами и схемой обучения, чтобы стать опытным пользователем Linux.

Прежде чем уйти! Спасибо за ваш визит. Я надеюсь, что ты вернулся. Не могли бы вы уделить одну минуту и ​​дать мне отзыв?

Эта статья посвящена очистке DNS в Ubuntu. Но чтобы понять, зачем это нужно, сначала нужно понять, как работает DNS, и немного о кэшировании DNS.

Проще говоря, DNS можно рассматривать как таблицу доменных имен и IP-адресов, как показано ниже:

Доменное имя IP-адрес
linuxhint.com 1.2.3.4
support.linuxhint.com 3.4.5.7
google.com 8.9.5.4
www. google.com 8.9.5.4

Обратите внимание, что никакие данные в этой таблице не являются реальными. Это просто для демонстрации. Итак, вернемся к нашей первоначальной теме.

DNS-сервер: нет. Но об этом может знать DNS-сервер 4.4.4.4.

DNS-сервер 2: Да, знаю. Что я могу сделать для вас?

Ваш компьютер: вы спасаете жизнь. Спасибо.

Кэширование DNS:

В предыдущем разделе вы видели, как доменное имя преобразуется в IP-адреса.Этот переход через DNS-серверы занимает некоторое время, и пока он не будет завершен и доменное имя не будет преобразовано в IP-адреса, вы не сможете подключиться ни к какому веб-сайту или серверу в Интернете.

Для решения этой проблемы используется кэширование DNS. Здесь, когда вы пытаетесь преобразовать доменное имя в IP-адреса в первый раз, это занимает немного больше времени. Но как только доменное имя разрешено, IP-адреса сохраняются на вашем собственном компьютере. Таким образом, в следующий раз, когда вам понадобится разрешить то же самое доменное имя, это займет не так много времени, как в первый раз.

Проблемы с кэшированием DNS:

Кэширование DNS — это хорошо. Почему кеширование DNS проблематично? Что ж, мир Интернета настолько динамичен, что информация DNS постоянно меняется. Возможно, он менялся несколько раз, пока я пишу эту статью.

Итак, что происходит, когда информация DNS изменяется, и мы используем информацию DNS, кэшированную на нашем собственном компьютере? Ну вот и становится проблематично. В этом случае мы будем использовать старую информацию DNS. У нас могут быть проблемы с подключением, проблемы с ложным перенаправлением и многие другие проблемы.

Чтобы решить эту проблему, нам нужно удалить кеш (также называемый очисткой DNS) и перестроить его. Это тема данной статьи.

Проверка включения кэширования DNS:

Вы можете легко проверить, включено ли кеширование DNS в Ubuntu. Для этого на вашем компьютере должна быть установлена ​​утилита nslookup или dig.

Команды nslookup или dig могут быть недоступны по умолчанию на вашем компьютере с Ubuntu. Но вы можете легко установить его из официального репозитория пакетов Ubuntu.

Сначала обновите кэш репозитория пакетов APT с помощью следующей команды:

Кэш репозитория пакетов APT должен быть обновлен.

Теперь установите nslookup и копайте с помощью следующей команды:

Теперь нажмите y, а затем нажмите, чтобы продолжить.

Теперь должны быть доступны команды nslookup и dig.

Теперь, чтобы проверить, включено ли кэширование, выполните следующую команду:

Как видите, DNS-сервер, используемый для разрешения имени домена, имеет адрес 127.0.0.53, что является петлевым IP-адресом. Итак, кеширование DNS включено. Если он отключен, DNS-сервер должен быть любым, кроме 127.0.0.X.

То же самое можно проверить с помощью команды dig, а также следующим образом:

Как вы видите, петлевые IP-адреса здесь также используются в качестве адресов DNS-серверов. Итак, кэширование DNS включено.

Очистка DNS в Ubuntu 18.04 LTS:

Ubuntu 18.04 LTS использует локальный DNS-сервер и кэширует DNS-запросы по умолчанию. В Ubuntu 18.04 LTS для этой цели используется systemd.

Вы можете запустить следующую команду, чтобы проверить количество кешированных записей DNS и другую информацию об Ubuntu 18.04 LTS:

Как видите, информация о кеше DNS указана в отмеченном разделе на снимке экрана ниже.

Чтобы очистить кеш DNS в Ubuntu 18.04 LTS, выполните следующую команду:

Вы также можете перезапустить службу с разрешением systemd, чтобы очистить кеши DNS в Ubuntu 18.04 LTS.

Чтобы перезапустить службу с разрешением systemd, выполните следующую команду:

Как видите, кеши очищены.

Очистка кэша DNS в Ubuntu 16.04:

В Ubuntu 16.04 LTS кэш DNS по умолчанию не включен. Но некоторые приложения, такие как bind, dnsmasq, nscd и т. д., могут его кэшировать.

Если вы используете nscd для кэширования DNS-запросов, вы можете очистить кеш DNS, просто перезапустив службу nscd.

Вы можете перезапустить службу nscd в Ubuntu 16.04 LTS, чтобы сбросить кеши DNS, с помощью следующей команды:

Если вы используете dnsmasq для кэширования DNS, перезапуск службы dnsmasq с помощью следующей команды должен очистить кеш DNS.

Итак, вот как вы очищаете кеш DNS в Ubuntu 18.04 лтс и 16.04 лтс. Спасибо, что прочитали эту статью.

Читайте также: