DD-WRT使用DNSMasq时设置静态DNS服务器的方法

几个月前为了能让路由器支持自定义DDNS服务,于是给自己的Buffalo刷了DD-WRT的第三方固件(Buffalo自带固件中也有DDNS,但是那几个服务提供商现在不是倒了就是转提供付费服务了…),版本:DD-WRT v24-sp2 (08/07/10) std。DDNS倒是支持了,但最近想修改路由器DHCP给客户端的DNS解析服务器地址却发现不那么管用了,一番折腾后,发现原因如下:

DD-WRT内置了两种DHCP服务器,标准的uDHCPd和DNSMasq,根据官方wiki中的介绍,前者会比后者占用更多的内存,只用DNSMasq做DHCP服务器的话,可以节省300kb左右的内存,这足以用于建立一个更多的PPTP隧道链接!
默认情况下,DD-WRT会启用DNSMasq作为DHCP服务端,这就导致了在设置页Setup->Basic Setup->Network Setup->DHCP部分的三条Static DNS设置后不起作用,因为这里的选项是对应标准uDHCPd服务端的,就算设置了分配给DHCP客户端的DNS服务器地址还是路由器的内网IP,也就是还会默认以ISP提供的DNS解析服务器为准(咱们这ISP的解析污染的都差不多了…)。这时就需要取消下面选项中的Use DNSMasq for DNS,让标准服务提供客户端DNS解析服务器地址,当然这样会消耗更多的内存,显然是下策。上策就是到Services->Services->DNSMasq->Additional DNSMasq Options中填入如下内容:dhcp-option=6, 114.114.114.114, 8.8.8.8,这样应用设置并让客户端重新连接刷新DHCP信息后,就可以看到已经在使用指定的DNS解析服务器地址了。

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具v2<<加密后发布,原文只有博主可以看到。