什么是DNS污染

​ 某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。某些国家或地区出于某些目的为了防止某网站被访问,而且其又掌握部分国际DNS根目录服务器或镜像,也会利用此方法进行屏蔽。
​ 常用的手段有:DNS劫持和DNS污染。

防除方法

​ 对付DNS劫持,只需要把系统的DNS设置手动切换为国外的DNS服务器的IP地址即可解决。
对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。
​ DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。

验证是否遭遇DNS污染

  1. Powershell中输入

    1
    ipconfig /all 

    在下“DNS 服务器”里找到你使用的DNS服务器地址。

  2. 再输入

    1
    nslookup https://letanga.github.io(你的域名) 你的DNS服务器IP

    查看是否能解析。

  3. 再输入

    1
    nslookup https://letanga.github.io8.8.8.8

    使用Google的DNS服务器验证。

解决办法

  1. 手动修改DNS地址
  2. 使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网
  3. 修改hosts文件,操作系统中hosts的权限优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。
  4. 通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题
  5. 如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入:about:config找到network.proxy.socks_remote_dns一项改成true
  6. 使用DNSCrypt软件,此软件与使用的OpenDNS直接建立相对安全的TCP连接并加密请求数据,从而不会被污染

手动修改DNS地址

  1. 任务栏按鼠标右键打开“网络和Internet”设置

  2. 打开更改适配器选项

  3. 鼠标右键点击连接的适配器属性

  4. 双击列表中的Internet协议版本4

  5. 弹出窗口中选择使用下面的DNS服务地址

  6. 修改需要更换的DNS服务地址

  7. 常用的DNS有:

    • 阿里DNS:223.5.5.5 / 223.6.6.6
    • 114 DNS:114.114.114.114
    • Google DNS:8.8.8.8
    • 百度DNS:180.76.76.76

如何查看网址的ip地址

  1. 运行cmd,ping 网址,可以看到IP在网址后面
  2. 在站长之家,输入网址就可以查看IP

如何修改hosts文件

hosts文件配置优先级比DSN服务器高,Windows 用户hosts文件是在“C:\Windows\system32\drivers\etc,注意这个文件一定是在系统盘,如果你的系统在D盘请自行修改前面的盘符,由于Win10系统默认是没有权限去编辑保存系统里的文件,解决方法:

方法一:把自己的帐户权限提高,在属性-安全里面修改权限,更改hosts为允许安全控制状态

方法二:将hosts文件复制/移动到桌面,用记事本打开!将修改后的hosts文件放入原来的位置替换以前的hosts文件即可

方法三:用Notepad++打开hosts文件,修改后保存时提示使用管理员模式修改点确定再次保存

解决DNS污染问题

打开hosts文件,在网址前面添加网址的IP,如:

1
192.30.255.113 github.com

之后在浏览器输入github.com,系统会跳过DNS服务器直接访问网址IP192.30.255.113