30

How can I clear the DNS cache in DD-WRT on my router?

DD-WRT uses the dnsmasq daemon.

1
  • Besides the technically correct answers below, you could power cycle it... Commented Dec 16, 2015 at 10:53

6 Answers 6

24

According to Flush dnsmasq dns cache:

dnsmasq is a lightweight DNS, TFTP and DHCP server. It is intended to provide coupled DNS and DHCP service to a LAN. Dnsmasq accepts DNS queries and either answers them from a small, local, cache or forwards them to a real, recursive, DNS server. This software is also installed many cheap routers to cache dns queries. Just restart to flush out dns cache:

# stopservice dnsmasq
# startservice dnsmasq
7
  • There is no "sudo" on dd-wrt. There is not /etc/init.d on dd-wrt, nor any equivalent.
    – WhyNotHugo
    Commented May 6, 2012 at 3:28
  • Hmm... The code was just a quick example. Maybe I should delete it. Alternatively do you know the correct command for this env? Commented May 6, 2012 at 13:09
  • The other answer has the only way that I know of for restarting services on dd-wrt. Not too clean, but I don't know any other way.
    – WhyNotHugo
    Commented May 6, 2012 at 21:15
  • 1
    How about stopservice dnsmasq followed by startservice dnsmasq? See barrymorrison.com/tag/dd-wrt Commented May 7, 2012 at 2:08
  • Hadn't heard about it. Didn't find it after a quick google either. Great job :)
    – WhyNotHugo
    Commented May 7, 2012 at 6:35
20
killall -1 dnsmasq

Send HUP signal to tell it flush the cache an reread its configuration, thus starting over with a clean slate.

2
  • 2
    I think using SIGHUP is the cleanest method because the manpage notes it, and dnsmasq may not clear the cache on restart. Though I'd have put # killall -HUP dnsmasq rather than # killall -1 dnsmasq because it is easier to remember/understand. Commented Apr 20, 2014 at 21:51
  • 2
    Actually it does not cause it to reread its configuration – that part is incorrect – but that doesn't matter for the question because the configuration doesn't need to be reread to clear the cache. Commented Apr 20, 2014 at 22:06
6

Since there are no init scripts on DD-WRT, I guess this would be the easiest way to restart dnsmasq:

  1. Kill dnsmasq:

    root@ddwrt6:~# killall dnsmasq
    
  2. Start dnsmasq:

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

I've always used:

killall -1 dnsmasq

which has worked fine for me. I'm running some of the newer versions of DD-WRT and

stopservice dnsmasq
startservice dnsmasq

also seemed to work without error or needing sudo...

2

Restart the dnsmasq service, either from the user interface.

Or from the command line interface via

/init.d/dnsmasq restart
2

On 21.02 this is what worked.

service dnsmasq restart

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .