Как очистить кеш DNS на DD-WRT

27

Как очистить кэш DNS в DD-WRT на моем маршрутизаторе?

DD-WRT использует демон dnsmasq.

bobgubko
источник
Помимо технически правильных ответов ниже, вы можете
включить и выключить

Ответы:

21

По данным Flush dnsmasq dns cache :

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
Джастин Этье
Не слышал об этом. Не нашел его и после быстрого гугла. Отличная работа :)
WhyNotHugo
18
killall -1 dnsmasq

Отправьте сигнал HUP, чтобы он очистил кэш и перечитал его конфигурацию, начав с чистого листа.

Limon
источник
1
Я думаю, что использование SIGHUP - самый чистый метод, потому что руководство отмечает это и dnsmasqможет не очистить кеш при перезапуске. Хотя я бы поставил, # killall -HUP dnsmasqа не # killall -1 dnsmasqпотому, что его легче запомнить / понять.
Джеймс Хей
1
На самом деле это не приводит к тому, что он перечитывает свою конфигурацию - эта часть неверна - но это не имеет значения для вопроса, потому что конфигурацию не нужно перечитывать, чтобы очистить кэш.
Джеймс Хей
7

Поскольку в DD-WRT нет сценариев инициализации, я думаю, это будет самый простой способ перезапустить 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

также, кажется, работает без ошибок или необходимости sudo ...

Фил
источник
1

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

Или из интерфейса командной строки через

/init.d/dnsmasq restart
Sean
источник