Як очистити кеш-пам'ять DNS на DD-WRT


27

Як я можу очистити кеш-пам'ять DNS в DD-WRT на моєму маршрутизаторі?

DD-WRT використовує демон dnsmasq.


Окрім технічно правильних відповідей, наведених нижче, ви можете
вимкнути

Відповіді:


21

Відповідно до кеш-файлу Flush dnsmasq dns :

dnsmasq - це легкий сервер DNS, TFTP та DHCP. Він призначений для надання з'єднаних DNS та DHCP послуг до локальної мережі. Dnsmasq приймає запити DNS і відповідає на них з невеликого, локального кешу або пересилає їх на реальний, рекурсивний DNS-сервер. Це програмне забезпечення також встановлено багато дешевих маршрутизаторів для кешування запитів dns. Просто перезапустіть, щоб очистити кеш-пам'ять dns:

# stopservice dnsmasq
# startservice dnsmasq

На dd-wrt "sudo" немає. На dd-wrt немає /etc/init.d, або будь-якого еквівалента.
WhyNotHugo

Хм ... Код був лише швидким прикладом. Можливо, я повинен її видалити. Або ви знаєте правильну команду для цього env?
Джастін Етьє

Інша відповідь - єдиний спосіб, про який я знаю, для перезавантаження послуг на dd-wrt. Не надто чисто, але я не знаю іншого способу.
WhyNotHugo

1
Як stopservice dnsmasqнаслідок startservice dnsmasq? Дивіться barrymorrison.com/tag/dd-wrt
Джастін Етьє

Я не чув про це. Не знайшли його і після швидкого пошуку в Google. Чудова робота :)
WhyNotHugo

18
killall -1 dnsmasq

Надішліть HUP-сигнал, щоб він змив кеш-пам'ять, перечитав його конфігурацію, таким чином, починаючи з чистого сланця.


1
Я думаю, що використання SIGHUP - це найчистіший метод, тому що manpage відзначає це, і dnsmasqможе не очистити кеш при перезапуску. Хоча я б сказав, # killall -HUP dnsmasqа не # killall -1 dnsmasqтому, що це легше запам'ятати / зрозуміти.
Джеймс Хей

1
Насправді це не змушує його перечитувати конфігурацію - ця частина неправильна - але це не має значення для питання, оскільки конфігурацію не потрібно перечитувати, щоб очистити кеш.
Джеймс Хей

7

Оскільки у DD-WRT немає сценаріїв init, я думаю, це був би найпростіший спосіб перезапустити dnsmasq:

  1. Убити dnsmasq:

    root@ddwrt6:~# killall dnsmasq
    
  2. Запустити dnsmasq:

    root@ddwrt6:~# dnsmasq --conf-file=/tmp/dnsmasq.conf 
    

3

Я завжди використовував:

killall -1 dnsmasq

яка добре працювала для мене. Я запускаю деякі новіші версії DD-WRT і

stopservice dnsmasq
startservice dnsmasq

також, здавалося, працює без помилок або потребуючи судо ...


1

Перезапустіть службу dnsmasq через користувальницький інтерфейс.

Або з інтерфейсу командного рядка через

/init.d/dnsmasq restart
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.