Посмотреть кэш днс линукс

Обновлено: 08.07.2024

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

В этой статье приведены инструкции по очистке кеша DNS в разных операционных системах и веб-браузерах.

Очистить / очистить кеш DNS в Windows

Процесс очистки кеша DNS одинаков для всех версий Windows. Вам нужно открыть командную строку с правами администратора и запустить ipconfig /flushdns .

Windows 10 и Windows 8

Чтобы очистить кеш DNS в Windows 10 и 8, выполните следующие действия:

Введите cmd в строку поиска Windows.

Щелкните правой кнопкой мыши командную строку и выберите Запуск от имени администратора. Откроется окно командной строки.

В командной строке введите следующую строку и нажмите Enter:

Windows 7

Чтобы очистить кеш DNS в Windows 7, выполните следующие действия:

Щелкните по кнопке Пуск.

Введите cmd в текстовое поле поиска меню «Пуск».

Щелкните правой кнопкой мыши командную строку и выберите Запуск от имени администратора. Откроется окно командной строки.

В командной строке введите следующую строку и нажмите Enter:

Очистить / очистить кеш DNS в Linux

В Linux кэширование DNS на уровне ОС отсутствует, если не установлена и не запущена служба кэширования, такая как Systemd-Resolved, DNSMasq или Nscd. Процесс очистки кеша DNS отличается в зависимости от дистрибутива Linux и службы кэширования, которую вы используете.

Systemd решено

Большинство современных дистрибутивов Linux, таких как Ubuntu 18.04, используют службу с разрешением systemd для кэширования записей DNS.

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

Если служба запущена, команда будет печатать как active . В противном случае вы увидите inactive .

Чтобы очистить кэш Systemd Resolved DNS, введите:

DNSMasq

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

Если ваша система использует Nscd, чтобы очистить кеш DNS, вам необходимо перезапустить службу Nscd:

Очистить / очистить кеш DNS в macOS

Команда для очистки кеша в macOS немного отличается в зависимости от используемой версии. Команда должна быть выполнена от имени пользователя с правами системного администратора (пользователь sudo).

Чтобы очистить кеш DNS в macOS, выполните следующие действия:

Перейдите в Приложения> Утилиты> Терминал. Это откроет окно терминала.

В командной строке введите следующую строку и нажмите Enter:

Для более ранних версий macOS команда очистки кеша отличается.

macOS версии 10.11 и 10.9

macOS версии 10.10

macOS версии 10.6 и 10.5

Очистить / очистить кеш DNS браузера

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

Гугл Хром

Чтобы очистить кеш DNS Google Chrome , выполните следующие действия:

Если это не сработает, попробуйте очистить кеш и файлы cookie.

Этот метод должен работать для всех браузеров на базе Chrome, включая Chromium , Vivaldi и Opera .

Fire Fox

Чтобы очистить кеш DNS Firefox, выполните следующие действия:

  1. В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:
  2. Щелкните ⚙ Options (Preferences) .
  3. Щелкните вкладку Конфиденциальность и безопасность или Конфиденциальность слева.
  4. Прокрутите вниз до раздела « History » и нажмите кнопку « Clear History. .
  5. Выберите временной диапазон для очистки. Выберите «Все», чтобы удалить все.
  6. Установите все флажки и нажмите «Очистить сейчас».

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

  1. Откройте новую вкладку и введите about:config в адресной строке Firefox.
  2. Найдите network.dnsCacheExpiration , временно установите значение 0 и нажмите OK. После этого верните значение по умолчанию и нажмите OK.
  3. Найдите network.dnsCacheEntries , временно установите значение 0 и нажмите OK. После этого верните значение по умолчанию и нажмите OK.

Выводы

Мы показали вам, как очистить или очистить кеш DNS в операционных системах Windows, Linux и macOS.

Пользователи Linux и macOS могут использовать команду dig для запроса и устранения проблем с DNS.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Сразу отметим, что речь в данной статье пойдет исключительно о клиентской части системы DNS в linux. О серверной части мы поговорим в другой статье (она-то как раз гораздо проще для восприятия). Итак, начнем.

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

Современные программисты достаточно ленивы и собирают свои программы динамически, т.е. с использованием разделяемых библиотек. Они позволяют им не заботиться о ряде функциональных возможностей, таких как работа с сетью, шифрованием или DNS. Действительно, вам бы не понравилось переносить один и тот же код из программы в программу только ради того, чтобы дать ей возможность преобразовывать имена в IP адреса. А если в этом коде потом обнаружиться баг или серьезная уязвимость? Нет. Вся функциональность нынче вынесена в библиотеки. И так уж получилось, что в linux самой популярной библиотекой для преобразования имен является libnss. Т.е. повторюсь, это совсем не обязательно, что ваша программа будет собрана с использованием libnss. Да, большинство (99% программ) будут следовать законам libnss, однако имейте ввиду, что возможна сборка с какой-нибудь другой библиотекой, или вообще статически с самописным кодом. Это будет лишь означать, что настраиваться DNS в этих немногочисленных случаев по-особому.

  • какие модули libnss будет использовать для перобразования имен в адреса
  • в каком порядке (приоритет) их вызывать.

И только когда libnss, пройдясь по всем модулям, так и не сможет найти соответствующий запрашиваемому имени IP адрес, тогда вам будет возвращен ответ примерно такого вида

Заглянем в /etc/nsswitch.conf

passwd: files mymachines systemd
group: files mymachines systemd
shadow: files

hosts: files mymachines myhostname dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

Мы видим много разных строчек. Действительно, libnss отвечает далеко не только за преобразование имен хостов в IP-адреса, а также за преобразование имен пользователей в uid, групп в gid, имен протоколов в номера портов и т.д. Заострим наш взгляд на строке начинающейся с "hosts:", ведь именно о ней-то мы и говорим. Здесь все очень просто - мы определяем, какие модули мы хотим использовать для преобразования имен хостов в IP-адреса и в какой последовательности. Почти наверняка на первом месте у вас будет "files", что означает, что при поступлении запроса на резолвинг, мы сначала вызываем модуль "files", который в свою очеред заглядывает в /etc/hosts в поисках интересующего пользователя имени. Рассмотрим самые распространенные модули, что они делают и как настраиваются на диаграмме


Подведем промежуточный итог:

files

Модуль files не настраивается. Работает с /etc/hosts в качестве базы данных имен и адресов. Синтаксис /etc/hosts предельно простой: IP адрес, полное имя (FQDN) набор алиасов (дополнительных имен)

resolve

myhostname

Модуль myhostname не настраиваются. Тоже часть systemd. Резолвит локальные имена машины сами в себя. Например можно пингануть hippo.localhost и вы получите результат. Зачем она надо, спросите вы, если уже есть /etc/hosts? Модуль myhostname надежнее. Редактируя /etc/hosts, человек может совершить ошибку, тогда как myhostname общается напрямую с ядром и ошибок не совершает

mymachines

Модуль mymachines позволяет резолвить имена контейнеров, запущенных systemd.

Модуль dns настраивается через /etc/resolv.conf, в качестве базы данных использует DNS сервера, обращаясь к ним через сеть. Соответственно узнать или прописать адреса DNS серверов можно в указанном файле. И тут стоит быть осторожным. Так как модуль dns является самым популярным способом резолвинга имен хостов в linux, файл /etc/resolv.conf является объектом пристального внимания разнообразных автоматических конфигураторов сети, таких как NetworkManager и т.п. Если вы работаете с одним из таких конфигураторов, то менять настройки надо в их собственных конфигурационных файлах, а не напрямую в /etc/resolv.conf, так как весьма вероятно, что им это не понравится, и ваша конфигурация будет перезаписана. Синтаксис /etc/resolv.conf простой и задается в формате ключ/значение: nameserver указывает на IP адрес DNS сервера, search позволяет указать домен поиска при использовании коротких имен без доменной части.

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

  • на этапе вызова модуля (например systemd-resolved, имеют свой собственный кэш)
  • в самом libnss (демон nscd если запущен, то скорее всего кэширует результаты резолвинга)
  • в демонах кэша, которые еще называют stub-resolver, такие как dnsmasq и systemd-resolved, с недавних пор получивший функцию stub-resolver'а
  • на самих DNS серверах

Проверить, запущен ли nscd, можно с помощью systemctl

systemctl status nscd

ps -A | grep nscd

Настраивается nscd через /etc/nscd.conf. Его синтаксис перекликается с таковым у /etc/nsswitch.conf, например, имена сервисов и там, и там одинаковые. Кроме того, поддерживается ряд глобальных параметров

Т.е. для включения кэша в nscd (этот кэш первичный, т.е. отрабатывает ДО вызова любого модуля из /etc/nsswitch.conf) вам достаточно убедиться в наличии строки

enable-cache hosts yes

Простого перезапуска nscd бывает недостаточно для очистки кэша. Для очистки кэша резолвинга имен хостов в nscd используйте команду

Этой же командой вы можете очистить кэш и других сервисов, например passwd или groups. Просто замените "hosts" на нужный сервис

systemd-resolved

О systemd-resolved мы уже писали в статье Переходим на systemd-resolved. Но на всякий случай напомним. Для очистки кэша systemd-resolved в большинстве случаев достаточно просто перезапустить systemd-resolved командой

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

Итак, давайте посмотрим, как мы можем очистить кэш DNS в наших системах Debian.

Мы выполнили команды и процедуры, упомянутые в этой статье, в системе Debian 10 Buster. Поскольку мы используем командную строку Linux - Терминал для очистки кэша, вы можете открыть его, выполнив поиск через поиск в Панели запуска приложений.


Доступ к Панели запуска приложений можно получить с помощью клавиши Super / Windows на вашем ноутбуке.

Метод 1: Использование systemd-resolver

На большинстве систем Linux работает демон systemd-resolver. Ваша система уже использует это для многих вещей. Поэтому давайте использовать его для очистки кэша с помощью следующей команды:



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

Затем снова запустите команду «systemd-resolution –flush-caches».

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


Размер кеша 0 в приведенных выше выходных данных показывает, что кеш DNS очищен.

Метод 2: Использование утилиты et /etc/init.d/networking

Еще один способ очистить кэш DNS - перезапустить утилиту /etc/init.d/networking. Для этого выполните в своем терминале следующую команду:


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

Теперь вы изучили два эффективных метода очистки кеша DNS в Debian. В обоих случаях процесс довольно прост и не требует перезагрузки системы Linux.

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

Кэш DNS - это временная база данных, в которой хранится информация о предыдущих поисках DNS. Другими словами, всякий раз, когда вы посещаете веб-сайт, ваша ОС и веб-браузер будут вести учет домена и соответствующего IP-адреса. Это исключает необходимость повторяющихся запросов к удаленным DNS-серверам и позволяет вашей ОС или браузеру быстро разрешать URL-адреса веб-сайта.

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

Очистить / очистить кэш DNS в Windows

Процесс очистки DNS-кэша одинаков для всех версий Windows. Вам нужно открыть командную строку с правами администратора и запустить ipconfig /flushdns .

Windows 10 и Windows 8

Чтобы очистить кэш DNS в Windows 10 и 8, выполните следующие действия:

Введите cmd в строке поиска Windows.

Щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора». Это откроет окно командной строки.

В командной строке введите следующую строку и нажмите Enter:

Windows 7

Чтобы очистить кэш DNS в Windows 7, выполните следующие действия:

Нажмите на кнопку Пуск.

Введите cmd в текстовое поле поиска меню «Пуск».

Щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора». Это откроет окно командной строки.

В командной строке введите следующую строку и нажмите Enter:

Очистить / очистить кэш DNS в Linux

В Linux отсутствует кэширование DNS на уровне ОС, если не установлена ​​и не запущена служба кэширования, такая как Systemd-Resolved, DNSMasq или Nscd. Процесс очистки DNS-кэша отличается в зависимости от дистрибутива Linux и используемой вами службы кэширования.

Systemd Resolved

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


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


Если служба работает, команда напечатает active . В противном случае вы увидите inactive .

Чтобы очистить кэш DNS Systemd Resolved, введите:

Dnsmasq

Dnsmasq - это облегченный кеширующий сервер имен DHCP и DNS.

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

Nscd - это демон кэширования, и он является предпочтительной системой кэширования DNS для большинства дистрибутивов на основе RedHat.

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

Очистить / очистить кэш DNS на macOS

Команда для очистки кэша в macOS немного отличается в зависимости от используемой версии. Команда должна выполняться как пользователь с правами системного администратора (пользователь sudo).

Чтобы очистить кэш DNS в macOS, выполните следующие действия:

Перейдите в Приложения> Утилиты> Терминал. Это откроет окно терминала.

В командной строке введите следующую строку и нажмите Enter:

Для более ранних версий macOS команда очистки кэша отличается.

macOS версии 10.11 и 10.9

Очистить / очистить кэш DNS браузера

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

Google Chrome

Чтобы очистить DNS-кеш Google Chrome , выполните следующие действия:

Если это не работает для вас, попробуйте очистить кэш и куки.

Этот метод должен работать для всех браузеров на основе Chrome, включая Chromium , Vivaldi и Opera .

Firefox

Чтобы очистить DNS-кэш Firefox, выполните следующие действия:

  1. В верхнем правом углу щелкните значок гамбургера, ☰ чтобы открыть меню Firefox:
  2. Нажмите на ⚙ Options (Preferences) ссылку.
  3. Нажмите на вкладку «Конфиденциальность и безопасность» или «Конфиденциальность» слева.
  4. Прокрутите вниз до History раздела и нажмите на Clear History. кнопку.
  5. Выберите временной диапазон, чтобы очистить. Выберите «Все», чтобы удалить все.
  6. Выберите все поля и нажмите «Очистить сейчас».

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

  1. Откройте новую вкладку и введите about:config в адресную строку Firefox.
  2. Найдите network.dnsCacheExpiration , временно установите значение 0 и нажмите ОК. После этого измените значение по умолчанию и нажмите ОК.
  3. Найдите network.dnsCacheEntries , временно установите значение 0 и нажмите ОК. После этого измените значение по умолчанию и нажмите ОК.

Вывод

Вы узнали, как очистить или очистить кэш DNS в операционных системах Windows, Linux и macOS.

Пользователи Linux и macOS могут использовать команду dig для запроса и устранения проблем с DNS.

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