本文详解小火箭(Shadowrocket)的DNS防污染配置原理,通过DoH/DoT加密DNS与本地hosts映射两种方案,有效解决域名解析被劫持导致的连接失败问题,并提供完整的YAML配置示例。
什么是DNS污染及其影响
DNS污染指本地网络对域名解析结果进行篡改,导致用户无法正确获取目标服务器IP,在跨境办公场景下,DNS污染会引起节点连接超时、网页无法打开等问题,小火箭作为iOS平台常用的网络加速工具,提供多种DNS防污染机制。
配置方案一:加密DNS(DoH/DoT)
启用加密DNS服务器
在DNS设置中启用DoH(DNS over HTTPS)或DoT(DNS over TLS),使用可信的公共DNS服务:
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://dns.google/dns-query
- https://cloudflare-dns.com/dns-query
配置fallback机制
当主DNS失效时自动切换到备用服务器,确保解析稳定性。
配置方案二:本地hosts映射
编辑hosts文件
针对频繁访问的域名,手动添加IP映射:
hosts: 'example.com': 203.0.113.10 'cdn.domain.com': 198.51.100.20
使用fake-ip模式
fake-ip会在本地生成虚拟IP,直接返回给客户端,绕过DNS污染:
dns: enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16
TUN模式与系统代理的区别
| 特性 | TUN模式 | 系统代理 |
|---|---|---|
| 流量范围 | 所有流量(含UDP) | 仅HTTP/HTTPS |
| 适用场景 | 游戏、视频通话 | 浏览器访问 |
| 系统要求 | iOS 14+ | 全部支持 |
建议日常网页浏览使用系统代理,需要低延迟的实时应用切换至TUN模式。
分流规则配置要点
规则类型说明
- DOMAIN:精确匹配域名
- DOMAIN-SUFFIX:匹配域名后缀
- IP-CIDR:匹配IP段
- GEOIP:按国家/地区分流
基础配置示例
rules: - DOMAIN-SUFFIX,google.com,Proxy - DOMAIN-KEYWORD,netflix,Proxy - GEOIP,CN,Direct - MATCH,Proxy
规则优先级从上到下匹配,建议将高频使用的域名规则置于顶部。
常见问题FAQ
现象:节点连接成功但无法打开网页
原因:DNS解析被污染,域名无法正确解析
解决方法:在DNS设置中启用DoH,添加Google或Cloudflare的加密DNS服务器
现象:部分网站时而能打开时而不行
原因:主DNS服务器不稳定,fallback未配置
解决方法:配置至少两组fallback DNS,确保主服务器故障时自动切换
现象:开启TUN模式后耗电增加
原因:TUN模式需要持续处理所有网络流量
解决方法:仅在需要时开启TUN模式,日常使用系统代理即可
节点选择建议
稳定的节点是保障良好网络体验的基础,建议选择支持UDP转发的高端专线节点,尤其对于4K视频和游戏场景,低延迟和带宽稳定性至关重要,普通中转节点可满足日常网页浏览需求,而免费节点通常无法保证稳定性和速度。
通过以上DNS防污染配置方法,结合合适的节点选择,可显著提升跨境网络访问的稳定性和速度。
