解决dns抽风的问题

家里电信光纤上网就出现大规模的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就可以了。

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Linux分类目录。将固定链接加入收藏夹。