解决DNS污染导致无法访问部分网站问题
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
是运营商阻断其当地管辖范围内用户访问特定网络或为了不为人知目的而做的一种缺德做法。
是一些恶意分子通过莫些不为人知(对于小白来讲...)的技术手段进行不限于恶意篡改、中间人劫持使用者所使用设备DNS的一种行为。
以常用图形操作系统Windows为例,打开CMD或Powershell,输入nslookup(查询域名对应解析)后空格加上需要查询的域名例如 www.baidu.com
将会返回如下讯息:
DNS域名服务器讯息
服务器:本次DNS域名查询系统hostname
Address:本次DNS域名查询是通过哪个进行查询
通过相关DNS域名服务器查询后的结果
应答权威性:本次返回的查询结果是通过权威DNS域名查询服务器所返回结果还是非权威DNS域名查询服务器所返回
名称:直接查询返回的域名 [与查询域名一致说明没有设置cname解析]
Addresses:返回所查询域名后面对应的IPv4、IPv6地址 [有此结果说明域名有设置正向解析A、AAAA]
Aliases:返回所查询域名后面IPv4、IPv6地址对应的域名 [有此结果说明域名有设置反向解析A、AAAA]
上述所查询结果中如果Addresses与实际并不一致就证明你设备所使用DNS存在污染或劫持,这里举一个查询网址:www.tkxdl1.com 的例子:
左图是另一个地区的Linux服务器通过nslookup查询后得出的结果,右图是在中国地区内的一台Windows上通过nslookup查询后得出的结果。
我们可以看到两边返回的结果并不一致说明左侧可能出现了DNS污染或就是出现了DNS污染,当然在本机上进行nslookup进行DNS域名解析记录查询并不能完全断定是否就是出现了DNS污染。
不过我们可以肯定的是当向一个公网DNS域名查询系统查询域名对应IP地址时,其不应该返回如下所列IP:
127.0.0.1或127.0.0.1~127.255.255.255范围内
192.168.1.1或192.168.1.1~192.168.255范围内
10.0.0.1~10.255.255.255范围内
上述IP全部都属于局域网IP或本地环回IP,一个部署在公网进行对全球服务的网站是不可能通过一个局域网IP或一个本地环回IP使全球用户对其进行访问的!
在进行完初步判断后我们需要进一步确定是否是DNS污染造成无法访问对方网站,我们可以使用例如“站长之家Ping”对其进行ping查询或直接使用其DNS域名查询服务直接查询域名后面的IP也可以。
我们可以从上图看到其网站是对部分地区做了阻断访问处理,在其域名解析服务商上做了相关设置而导致。
上述例子虽然并不是污染导致,但与DNS污染或劫持后结果类似,都是DNS返回了错误IP所致无法访问,唯一不一样的地方在于例子中的网址域名在部分地区返回错误IP是网站运营者所设置,而DNS污染绝大多数情况是运营商或访问者网络服务提供商所致。
想要根绝DNS污染的方法之一就是不使用运营商分发的DNS进行上网服务,或者以更加安全的DNS查询方式进行上网服务,这里所提到的“更安全的DNS查询方式”指Doh。
DNS污染与DNS劫持
方法一:有部分中国大陆地区的运营商会做出此举侵犯当地用户权益的行为,这种请自行切换DNS为119.29.29.29
(腾讯云公共DNS)或223.5.5.5
(阿里云公共DNS)
:做完 方法一 后以管理員方式打开Powershell输入如下命令添加Doh
打开 windows设置 -> 网络和Internet -> WLAN 或者 以太网 (取决于你的网络类型)-> 硬件属性 -> DNS
配置下列dns设置,dns加密方式下列两种皆可
除开上述普通方法外还有其他更加根绝的方法。
首先第一个就是自建私有DNS域名查询系统,你可以选择一台允许开放UDP 53
端口且处于公网环境下的服务器进行搭建,也可以在自己所处内部局域网进行搭建,无论你选择什么方式进行搭建自己私有的DNS域名查询系统,都意味着你需要一定的知识技能储备以及相关维护技能等。
第二个方法是在自己局域网内处于最边界或自己进行上网设备网关所处路由器内进行DNS劫持,相当于在局域网内就提前将域名重定向至目的地IP而不是向公共DNS域名解析服务器进行域名解析查询,此类做法也能在一定程度上完全根绝公共域名DNS解析服务或运营商DNS域名解析服务被污染、劫持的危险,不过此类方法并不一定适用于所有家用路由器,例如Xioami home router的绝大部分产品基本上都支持路由器内写死hosts表或进行DNS重定向等操作。