域名污染(DNS污染)和域名被墙(GFW封锁)是两种常见的网络封锁手段,但它们的成因和解决方法不同。以下是详细的应对策略。
一、域名污染(DNS污染)的解决方案
域名污染指DNS解析被篡改,用户访问域名时被导向错误的IP(通常是虚假或无效地址)。
1. 检测是否被DNS污染
# 使用dig或nslookup对比不同DNS解析结果 dig example.com @8.8.8.8 # Google DNS dig example.com @114.114.114.114 # 国内DNS
-
如果国内DNS返回错误IP,国外DNS返回正确IP → 可能是DNS污染
-
如果国内外DNS均返回错误IP → 可能是域名被墙
2. 解决方案
(1)更换DNS服务器
-
推荐公共DNS:
-
国际:
8.8.8.8
(Google)、1.1.1.1
(Cloudflare) -
国内:
223.5.5.5
(阿里)、119.29.29.29
(腾讯)
-
(2)使用加密DNS(DoH/DoT)
-
DoH(DNS over HTTPS):
-
Firefox:
about:config
→ 设置network.trr.mode=2
(强制使用DoH) -
Chrome:启用
Secure DNS
(设置 → 隐私和安全 → 安全DNS)
-
-
DoT(DNS over TLS):
-
Android 9+ 支持,可在Wi-Fi设置中启用
-
(3)修改本地hosts文件
# Windows:C:\Windows\System32\drivers\etc\hosts # Linux/Mac:/etc/hosts # 添加正确的IP映射 123.123.123.123 example.com
(4)使用VPN或代理
-
VPN(如WireGuard、Shadowsocks)可绕过DNS污染
-
代理(如Clash、V2Ray)可强制使用境外DNS
二、域名被墙(GFW封锁)的解决方案
域名被墙指域名或IP被GFW(防火长城)封锁,导致国内无法访问,但国外仍可访问。
1. 检测是否被墙
# 使用ping或traceroute测试 ping example.com # 国内超时,国外正常 tracert example.com # 路由在某个国内节点中断
-
如果国外能访问,国内不能 → 可能是被墙
-
如果国内外均不能访问 → 可能是服务器问题
2. 解决方案
(1)更换域名或申请新域名
-
注册新域名(如
.com
→.xyz
) -
使用子域名(如
blog.example.com
代替example.com
)
(2)使用CDN隐藏真实IP
-
Cloudflare(免费版可隐藏IP)
-
国内CDN(如阿里云CDN、腾讯云CDN,需备案)
(3)更换服务器IP(如被IP封锁)
-
更换VPS IP(AWS、Google Cloud可弹性更换)
-
使用Anycast IP(如Cloudflare的代理IP)
(4)使用反向代理或镜像站点
-
Nginx反向代理:
server { listen 80; server_name new-domain.com; location / { proxy_pass http://被墙的域名; } }
-
GitHub Pages/Vercel 托管静态镜像
(5)使用SSR/V2Ray/Trojan等代理
-
搭建代理服务器,让国内用户通过代理访问
三、长期预防措施
-
启用DNSSEC(防止DNS劫持)
-
避免敏感内容(减少被墙风险)
-
监控域名解析(定期检查DNS记录)
-
使用HTTPS(防止流量劫持)
总结
问题 | 解决方案 |
---|---|
DNS污染 | 换DNS、DoH/DoT、hosts、VPN |
域名被墙 | 换域名、CDN、反向代理、代理/VPN |
如果问题严重,建议更换域名+CDN+加密DNS组合使用,提高可用性。