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

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

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

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

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

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

instagram viewer

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

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

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

Просмотр кэша DNS для systemd-resolved

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

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

sudo killall -USR1 systemd-разрешено

Использовать команда журналаctl и стандартный оператор вывода для сохранения вывода в текстовый файл:

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

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

ВИМ ~/cache.txt

В файле найдите «CACHE:», нажав Побег, набрав "/CACHE:", и удар Входить. Все записи DNS, перечисленные в разделе КЭШ: являются частью локального кеша DNS. Нажимать н чтобы перейти к следующему набору записей DNS, если вы используете Vim.

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

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

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

строки sudo /var/cache/nscd/hosts | уникальный

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

судо nscd -g

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

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

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

статус sudo systemctl dnsmasq

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

sudo pkill -USR1 dnsmasq

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

sudo journalctl -u dnsmasq > ~/cache.txt

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

кот ~/cache.txt

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

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

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

Использование systemd-разрешения

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

sudo resolvectl флеш-кеши

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

sudo systemd-resolved --flush-caches

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

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

sudo /etc/init.d/nscd перезапустить

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

судо nscd -g

Если это так, используйте флаг с помощью команды nscd для очистки записей (я означает аннулировать):

sudo nscd -я хосты

Удалить кеш DNS dnsmasq

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

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

sudo systemctl перезапустить dnsmasq

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

служба dnsmasq перезапустить

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

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

копать google.com

Очистить кэш DNS Google Chrome

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

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

Для начала введите "хром://сетевые-внутренние/#dns" в адресной строке и нажмите Входить:

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

Linux — лучшая ОС для изучения работы в сети

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

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