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


45

У меня проблемы, связанные с решением DNS в моей Ubuntu 9.10.
Прежде чем жаловаться своему провайдеру, я бы хотел обновить свой локальный DNS-кеш, как в Windows ipconfig /flushdns.

Как я могу сделать это в Ubuntu?

Ответы:


54

О, Ubuntu не кэширует DNS по умолчанию. Так что нечего смывать! (но, возможно, ваш SOHO роутер это делает). Установка nscd сделает Ubuntu кеш DNS, после чего вы сможете очистить кеш - но это уже не тот момент, когда он еще не установлен!


3
Из любопытства я на 14.04 и при запуске говорю, nslookupчто ответ приходит с сервера 127.0.0.1. Но, насколько мне известно, DNS-кэширование не установлено (ни то, nscdни другое dnsmasq). Я на Kubuntu ... это может быть KDE Network Manager?
exhuma

@ exhuma то же самое здесь, на Ubuntu 14.04, так что это не вещь Kubuntu.
LJ_1102

2
@ LJ_1102 @ exhuma Это будет сетевой менеджер Ubuntu, он слушает как локальный DNS-сервер, но перенаправляет все запросы на то, что определено. Как побочный эффект (или дизайн), это позволяет вам менять DNS-серверы «на лету» из интерфейса, не требуя корневых разрешений. Смотрите, например, этот вопрос: unix.stackexchange.com/questions/59414/…
Рагд Хамзех

19

Ubuntu 12.04 и выше использует dnsmasq для локального кэша. Отправка SIGHUP (sudo killall -HUP dnsmasq) перечитает кеш.

ЗАМЕЧАНИЯ
Когда он получает SIGHUP, dnsmasq очищает свой кеш, а затем перезагружает / etc / hosts и / etc / ethers, а также любой файл, предоставленный --dhcp-hostsfile, --dhcp-optsfile или --addn-hosts. Сценарий изменения аренды dhcp вызывается для всех существующих аренд DHCP. Если установлен параметр --no-poll, SIGHUP также перечитывает файл /etc/resolv.conf. SIGHUP НЕ перечитывает файл конфигурации.


это выглядит разумно. хотя мне нужно найти еще одну проблему, с которой я столкнулся (которая связана с новыми сайтами в / etc / hosts и Opera), чтобы проверить это и пометить как принятые вместо других: P
igorsantos07

Все в порядке. Я действительно наткнулся на это, пытаясь очистить мою собственную запись в кэше DNS. Однако, как только я нашел решение, я решил добавить сюда свои выводы. Я не знаю, с какой версии Ubuntu начала использовать dnsmasq.
2012 года

1
Это работает и должно быть действительно отмечено как ответ!
HDave

1
Если правки меньшинств не были запрещены и осуждались, я бы исправил «SIGUP» в SIGHUP .
Джеймс Хей

@Igoru: Вы можете использовать digдля проверки, действительно ли очищен кеш. Я хотел очистить кеш на одном из моих маршрутизаторов OpenWrt, который я пробовал dig @192.168.0.3 nixos.orgнесколько раз (подойдет любой существующий домен). Во время кеширования время запроса обычно составляет 1 мс, но после каждого killall -HUP dnsmasqзапуска (как root) на маршрутизаторе я получал около 27 мс после каждого его очистки.
Джеймс Хей

13

Попробуйте следующее:

sudo /etc/init.d/dns-clean start

Меня устраивает.


1
Я полагаю, что после этого ответа все изменилось, так как похоже, что это не сработает в 14.04. Эй, Ubuntu, было бы неплохо, если бы существовал интерфейс для этого, который не был бы связан со спецификой конкретных систем разрешения имен и версий ОС (и, возможно, дистрибутивов ОС позже ...).
Croad Langshan

Работает ли в 15.04
Милан Симек

Работал в убунту 14.04.5. Этот скрипт предоставляется пакетом pppconfig. Я думаю, что он не включен по умолчанию в дистрибутив.
ssoto

1

У меня просто была эта проблема с сайтом, для которого я сменил DNS, и поискал решение, я нашел эту страницу.

По моему опыту, Firefox иногда сохраняет свой собственный кэш DNS и не очищает его вовремя. Поэтому, если вы просматриваете сайт в Firefox и продолжаете видеть старый сайт, пробная версия Chrome может решить эту проблему. Если это работает, вы можете очистить кеш в Firefox. Это произошло в Ubuntu, я не знаю, происходит ли это на Windows или OSX.

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


1

В зависимости от контекста вашего вопроса вам может потребоваться очистить кеш вашего веб-браузера.

В Firefox это делается с помощью: предпочтений -> конфиденциальности -> очистки вашей недавней истории [просто поставьте галочку "кеш" там]

В Chrome: перейдите к chrome: // net-internals / # dns и нажмите кнопку «Очистить кэш хоста». (см. другой ответ )

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.