OpenWRT路由器unbound+dnsmasq解决DNS污染与劫持

首先安装unbound:

然后修改/etc/unbound/unbound.conf文件,把以下内容相关的条目的注释取消,并按如下形式修改:

启动unbound:

配置dnsmasq的转发功能:

修改/etc/dnsmasq.conf文件,在末尾直接按如下格式添加被劫持污染的站点:

example.com改为需要的域名,127.0.0.1#5353表示转发至unbound,5353是unbound的本地端口号,下面是一个例子:

然后转至luci进行下一步配置:

WAN接口的高级设置里,取消“使用端局通告的DNS服务器”的勾并留空下面的自定义服务器,我们只用DHCP/DNS设置中的条目来控制DNS服务器,不希望这里通告的DNS服务器影响我们的配置:

 

记得点击保存&应用后,切换到DHCP/DNS设置中,在DNS转发配置中填入默认的国内DNS,强烈推荐用114DNS代替ISP的DNS,如果你希望全局转发至unbound完全使用国外公众DNS,此处填写127.0.0.1#5353:

 

填入完毕后点击保存并应用,dnsmasq自动重启,至此配置完成。

 

PC端测试(Windows)

清空DNS缓存:

nslookup直接向GoogleDNS查询twitter.com,结果被污染:

加 -v 参数的nslookup通过TCP向GoogleDNS获得真实结果:

不加任何参数的nslookup,默认查询方式,向路由器的dnsmasq查询,结果正常,DNS转发生效:

OVER!

 

参考:国内DNS劫持与污染状况分析

2 条评论

  1. 引用: OpenWRT路由器unbound+dnsmasq解决DNS污染与劫持 | OnlyForTest

  2. 引用: h2byte:那些从墙上学会的知识 – 海浪家园

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入正确的验证码