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

25

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. 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. 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
  • 1
    You can do this in one command: restart_dns Commented May 16, 2013 at 23:09
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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.