➡️什么是DNS污染
DNS污染(DNS Cache Pollution)是通过干扰或篡改域名解析过程,使用户访问错误的IP地址的一种技术。其原理主要包括以下几个步骤:
- DNS查询拦截:当用户向DNS服务器发送域名查询请求时,攻击者或防火墙会监控这些请求。
- 伪造响应:在权威DNS服务器返回正确的IP地址之前,攻击者会向用户的DNS服务器发送伪造的DNS响应,其中包含错误的IP地址。
- 缓存污染:用户的DNS服务器接收到伪造的响应后,会将其缓存下来,并返回给用户。这样,用户在访问该域名时,会被重定向到错误的IP地址。
➡️DNS污染的原因和影响
- 网络审查:某些国家或地区为了防止用户访问特定网站,会利用DNS污染技术屏蔽这些网站。此外,运营商,比如中国移动在GFW之外自己增加了对约60W个网站的封杀,只要包含某些关键词,都会被通杀。
- 网络攻击:攻击者通过伪造DNS响应数据包,污染本地DNS缓存,导致用户被重定向到恶意网站。如果将用户访问的正常网站,尤其是大网站,如果定向到攻击目标,则会导致攻击目标过载而瘫痪。
- 广告劫持:一些互联网服务提供商会劫持DNS查询,将用户引导到包含广告的页面。
- DNS污染是主要方式 相对于IP过滤,尤其是现在是IPv6时代,污染DNS是低成本的墙的方式。
➡️常见的防护方法
- 使用VPN或代理服务器:通过加密连接进行DNS解析,避免本地DNS缓存被污染1。
- 修改Hosts文件:手动指定域名解析,绕过DNS服务器。
- 使用DNSSEC:使用加密DNS服务即可,例如DNSCrypt软件,或使用DoH[DNS over HTTPS] 或 DoT[DNS over TLS]、DNS-over-TLS、DNS-over-QUIC 加密服务,这些服务提供更安全的DNS查询,可以防止DNS污染和劫持。
➡️如何知道DNS是否被污染
1. 验证方法:
当你打开一个网站,打不开,比如:tech.wmzhe.com,感觉不太可能是网站的问题,ping了一下网址,返回127.0.0.1。 解析到本地了,这就不正常。
不用本地dns,换用114.114.114.114 dig一下,仍然是127.0.0.1 难道被墙了? 登陆一台服务器dig一下这个网址,解析出来的ip正常,说明有猫腻。
换用代理能够访问,说明网站被墙了。
2. 受污染的网站举例
tech.wmzhe.com测试:
PS C:\Users\qiu> nslookup tech.wmzhe.com 202.96.128.86
服务器: cache-a.guangzhou.gd.cn
Address: 202.96.128.86
名称: tech.wmzhe.com
Addresses: ::1
127.0.0.1
PS C:\Users\qiu> nslookup tech.wmzhe.com 9.9.9.9
服务器: dns9.quad9.net
Address: 9.9.9.9
非权威应答:
名称: tech.wmzhe.com
Address: 61.164.113.248
➡️支持Doh的DNS服务器列表:
- 微软提供的支持Doh的DNS服务器列表:
在Powershell执行Get-DNSClientDohServerAddress:
PS C:\Users\yourname> Get-DNSClientDohServerAddress
ServerAddress AllowFallbackToUdp AutoUpgrade DohTemplate
------------- ------------------ ----------- -----------
149.112.112.112 False False https://dns.quad9.net/dns-query # ✅
9.9.9.9 False False https://dns.quad9.net/dns-query # ✅
8.8.8.8 False False https://dns.google/dns-query # ❌
8.8.4.4 False False https://dns.google/dns-query # ❌
1.1.1.1 False False https://cloudflare-dns.com/dns-query # ✅
1.0.0.1 False False https://cloudflare-dns.com/dns-query # ✅
2001:4860:4860::8844 False False https://dns.google/dns-query # ❌
2001:4860:4860::8888 False False https://dns.google/dns-query # ❌
2606:4700:4700::1001 False False https://cloudflare-dns.com/dns-query # ✅
2606:4700:4700::1111 False False https://cloudflare-dns.com/dns-query # ✅
2620:fe::9 False False https://dns.quad9.net/dns-query # ✅
2620:fe::fe False False https://dns.quad9.net/dns-query # ✅
2620:fe::fe:9 False False https://dns.quad9.net/dns-query # ✅
- 国内支持DoH的DNS列表 测试整理了一些可用速度较快的加密DNS服务器,国外的就删除了,速度较慢,且解析ip不适用于国内,所以只保留国内的,具体如下:
tls://1.12.12.12
tls://120.53.53.53
https://223.5.5.5/dns-query
https://223.6.6.6/dns-query
https://1.12.12.12/dns-query
https://120.53.53.53/dns-query
https://dns.pub/dns-query
https://doh.pub/dns-query
https://sm2.doh.pub/dns-query
https://dns.alidns.com/dns-query
tls://dns.alidns.com
tls://dot.pub
tls://dns.tuna.tsinghua.edu.cn:8853
如何开启DoH
- Windows10/11
点击Windows开始,设置,网络和Internet
在网络和 Internet 页面上,选择以太网,或者WLAN
点击当前连接接口。 点击编辑DNS 设置DoH 可以选择前面DoH列表中可用的DoH DNS 服务器 2. Chrome 地址栏输入:chrome://settings/security, 回车