Як очистити кеш-пам'ять DNS в Ubuntu?


45

У мене в Ubuntu 9.10 у мене проблеми, пов'язані з вирішенням DNS.
Перш ніж поскаржитися на провайдера, я хотів би оновити свій локальний кеш 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?
ексгума

@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-оренд. Якщо встановлено --не опитування, SIGHUP також перечитує /etc/resolv.conf. SIGHUP НЕ перечитує файл конфігурації.


це виглядає розумно. хоча, я маю знайти ще одну з проблем, які у мене були (які пов'язані з новими сайтами в / etc / hosts та Opera), щоб перевірити це та позначити як прийняте замість іншого: P
igorsantos07

Це добре. Я насправді натрапив на це, щоб очистити свій власний запис у кешований dns. Однак, знайшовши рішення, я відчув, що тут слід додати свої висновки. Я не знаю, у якій версії Ubuntu почав використовувати dnsmasq.
ytjohn

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
Мілан Симек

Працював в ubuntu 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.