背景:日益严重的dns抢答,造成很多时候无法获得真正的权威dns回应。经过排查发现,大部分运营商的dns抢答针对的是UDP 53端口,因此,对之前搭建的内网dnsmasq进行改造,以支持上发到使用非标端口的DNS服务器进行查询,从而避免运营商的DNS缓存甚至DNS投毒。

dnsmasq服务器的搭建参考之前的文件,本文在此基础上进行相关改动:《DNS服务器部署》

1、注释掉resolv-file选项,目的是防止其从Linux系统配置的resolv.conf里读取上游DNS:

#resolv-file=/etc/resolv.conf

2、使用server添加上游非标dns,如果是一个非标dns,则直接使用以下命令即可:

server=202.141.162.123#5353

2、如果是两个及以上非标dns,则需要使用以下命令即可:

server=/#/202.141.162.123#5353
server=/#/202.141.176.93#5353

3、做完以上操作后,需要重启dnsmasq才能生效。

附录,各类支持非标端口DNS(支持TCP和UDP的53及5353端口):

国内支持非标端口DNS:

中科大防DNS
202.141.162.123 中国电信
202.38.93.153 教育网
202.141.176.93 中国移动

海外支持非标端口DNS

OpenDNS (推荐):
支持5353,443端口
208.67.222.222
208.67.220.220

AdGuard DNS:
使用以下服务器拦截广告,跟踪和钓鱼
176.103.130.130
176.103.130.131
2a00:5a60::ad1:0ff
2a00:5a60::ad2:0ff

默认 + 拦截成人网站 + 安全搜索
176.103.130.132
176.103.130.134
2a00:5a60::bad1:0ff
2a00:5a60::bad2:0ff

注意:非海外服务器请使用国内DNS,否则会存在两个问题:1、相关DNS请求过墙可能会被干扰,造成解析结果不准确;2、海外DNS服务器请求到的都是该域名针对海外解析的IP,可能会在国内访问存在卡顿问题。如腾讯,在海外的IP国内连接比较卡顿。