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

Понравилось? Поделитесь...

Очистка локального кеша DNS может исправить ошибки HTTP и защитить вас от спуфинга DNS. Вот как это сделать в Linux.

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

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

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

Зачем очищать кэш DNS в Linux?

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

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

Как просмотреть локальный кэш DNS в Linux

До появления systemd большинство дистрибутивов Linux не имели общесистемного DNS-кэширования, если только такие программы, как dnsmasq или nscd, не были настроены вручную.

В следующих разделах вы узнаете, как просмотреть содержимое кеша DNS, сгенерированного systemd-resolved, nscd и dnsmasq, чтобы вы могли понять кэшированные данные, прежде чем решите их сбросить.

Просмотр DNS-кэша для разрешенных systemd

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

Начните с отправки сигнала SIGUSR1, чтобы отключить службу, разрешенную systemd:

sudo killall -USR1 systemd-resolved

Используйте команду journalctl и стандартный оператор вывода, чтобы сохранить вывод в текстовый файл:

sudo journalctl -u systemd-resolved > ~/cache.txt

Затем вы можете просмотреть содержимое файла с помощью текстового редактора, такого как Vim:

vim ~/cache.txt

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

В файле найдите «CACHE:», нажав Escape, введя «/CACHE:» и нажав Enter. Все записи DNS, перечисленные в разделе CACH:, являются частью локального кэша DNS. Нажмите n, чтобы перейти к следующему набору записей DNS, если вы используете Vim.

Просмотр локального кэша DNS для nscd

Чтобы просмотреть локальный кеш, сгенерированный nscd, прочитайте содержимое базы данных хоста nscd с помощью команды string.

В дистрибутивах на основе Debian и Ubuntu этот файл находится в /var/cache/nscd/hosts. Выполните следующую команду, чтобы просмотреть файл:

sudo strings /var/cache/nscd/hosts | uniq

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

Чтобы просмотреть общую статистику о кэше DNS nscd, используйте флаг -g:

sudo nscd -g

Отобразить кэш DNS, сгенерированный dnsmasq

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

Для этого сначала убедитесь, что dnsmasq запущен с помощью команды systemctl:

sudo systemctl status dnsmasq

Если статус отображается как активный, выполните следующую команду, чтобы отключить службу:

sudo pkill -USR1 dnsmasq

С помощью команды journalctl извлеките журналы dnsmasq и сохраните их в текстовый файл:

sudo journalctl -u dnsmasq > ~/cache.txt

Наконец, просмотрите содержимое файла с помощью программы просмотра файлов, такой как cat или меньше:

cat ~/cache.txt

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

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

Вот как очистить кеш DNS в Linux:

Использование systemd-resolved

Вы можете использовать команду resolvectl для очистки кеша DNS, хранящегося в systemd-resolved:

sudo resolvectl flush-caches

Если вы используете Ubuntu 17.04 или 18.04, используйте команду systemd-resolved для очистки кеша:

sudo systemd-resolved --flush-caches

Очистите DNS-кэш nscd в Linux

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

sudo /etc/init.d/nscd restart

Если это не сработает, сначала проверьте, является ли локальный кэш, хранящийся на вашем компьютере, постоянным. Вы можете использовать флаг -g, чтобы проверить это:

sudo nscd -g

Если это так, используйте флаг -i с командой nscd для удаления записей (i означает удаление):

sudo nscd -i hosts

Удалите DNS-кэш dnsmasq

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

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

sudo systemctl restart dnsmasq

Или выполните следующую команду:

service dnsmasq restart

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

После очистки кеша DNS лучше всего просмотреть записи локального кеша и посмотреть, не были ли удалены данные. Вы можете использовать dig, одну из многих команд сетевой отладки Linux, и проверить значение времени опроса в выходных данных. Если прошло более 0 мс, кеш был очищен (0 мс означает, что запись домена все еще находится в кеше).

dig google.com

Очистите DNS-кэш Google Chrome

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

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

Чтобы начать, введите «chrome://net-internals/#dns» в строке URL и нажмите Enter:

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

Нажмите «Очистить кэш хоста», чтобы удалить записи DNS, хранящиеся в Google Chrome.

Linux — лучшая ОС для изучения сетевого взаимодействия

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

Большинство веб-серверов работают под управлением Linux, что является одной из причин, почему Linux идеально подходит, если вы хотите научиться работать в сети или хотите знать, как работают компьютеры в целом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *