So löschen Sie den DNS-Cache unter DD-WRT


27

Wie kann ich den DNS-Cache in DD-WRT auf meinem Router löschen?

DD-WRT verwendet den Daemon dnsmasq.


Abgesehen von den unten stehenden technisch korrekten Antworten können Sie es
aus- und wieder

Antworten:


21

Laut Flush dnsmasq dns cache :

dnsmasq ist ein einfacher DNS-, TFTP- und DHCP-Server. Es ist vorgesehen, einen gekoppelten DNS- und DHCP-Dienst für ein LAN bereitzustellen. Dnsmasq akzeptiert DNS-Abfragen und beantwortet sie entweder aus einem kleinen lokalen Cache oder leitet sie an einen realen rekursiven DNS-Server weiter. Diese Software ist auch viele billige Router installiert, um DNS-Abfragen zwischenzuspeichern. Starten Sie einfach neu, um den DNS-Cache zu leeren:

# stopservice dnsmasq
# startservice dnsmasq

Auf dd-wrt gibt es kein "sudo". Es gibt weder /etc/init.d auf dd-wrt noch ein Äquivalent.
WhyNotHugo

Hmm ... Der Code war nur ein kurzes Beispiel. Vielleicht sollte ich es löschen. Oder kennen Sie den richtigen Befehl für diese Umgebung?
Justin Ethier

Die andere Antwort ist die einzige mir bekannte Möglichkeit, Dienste auf dd-wrt neu zu starten. Nicht zu sauber, aber ich kenne keinen anderen Weg.
WhyNotHugo

1
Wie wäre es mit stopservice dnsmasqgefolgt von startservice dnsmasq? Siehe barrymorrison.com/tag/dd-wrt
Justin Ethier

Hatte noch nichts davon gehört. Ich habe es auch nach einer kurzen Suche nicht gefunden. Großartige Arbeit :)
WhyNotHugo

18
killall -1 dnsmasq

Senden Sie ein HUP-Signal, um anzugeben, dass der Cache geleert werden soll, und lesen Sie die Konfiguration erneut. Beginnen Sie also mit einem sauberen Slate.


1
Ich denke, dass die Verwendung von SIGHUP die sauberste Methode ist, da die Manpage dies bemerkt und dnsmasqden Cache beim Neustart möglicherweise nicht löscht. Obwohl ich es lieber gesagt hätte, # killall -HUP dnsmasqals # killall -1 dnsmasqweil es einfacher ist, sich zu erinnern / zu verstehen.
James Haigh

1
Tatsächlich führt dies nicht dazu, dass die Konfiguration erneut gelesen wird - dieser Teil ist falsch -, aber das ist für die Frage nicht von Bedeutung, da die Konfiguration nicht erneut gelesen werden muss, um den Cache zu leeren.
James Haigh

7

Da DD-WRT keine Init-Skripte enthält, ist dies wahrscheinlich der einfachste Weg, um dnsmasq neu zu starten:

  1. Töte dnsmasq:

    root@ddwrt6:~# killall dnsmasq
    
  2. Starten Sie dnsmasq:

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

3

Ich habe immer benutzt:

killall -1 dnsmasq

was für mich gut funktioniert hat. Ich verwende einige der neueren Versionen von DD-WRT und

stopservice dnsmasq
startservice dnsmasq

schien auch fehlerfrei zu funktionieren oder brauchte sudo ...


1

Starten Sie den dnsmasq-Dienst über die Benutzeroberfläche neu.

Oder von der Kommandozeilenschnittstelle über

/init.d/dnsmasq restart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.