家里电信光纤上网就出现大规模的DNS解析失败,一直到现在都没有明显好转。
查了一下dnsmasq的文档,发现其实有一个现成的命令行参数–all-servers,含义是向所有上游DNS server发送查询,以最快返回的结果为准。
但openwrt所包装的dnsmasq配置文件和init.d脚本并不支持这个参数,需要稍微改动一下:
编辑配置文件 /etc/config/dhcp,在 config dnsmasq这个section的最后加上:
option all_servers ‘1’
list server ‘114.114.114.114’
list server ‘1.2.4.8’
在 list server 后面写上你要增加的DNS上游服务器IP。要添加多个IP的话,重复list server,每行一个。
编辑init.d脚本 /etc/init.d/dnsmasq,在函数dnsmasq()的第一行
local cfg=”$1″
的后面加上:
append_bool “$cfg” all_servers “–all-servers”
然后运行 /etc/init.d/dnsmasq restart 重启dnsmasq就可以了。