用小火箭(Shadowrocket)的人很多,但 DNS 设置这块经常被随手一填:8.8.8.8、1.1.1.1,完事。问题是,默认的 DNS 查询是明文的——你访问了哪些域名,运营商和中间节点看得一清二楚,代理开得再稳也白搭。想堵住这个口子,得把 DNS 换成 DoH(DNS over HTTPS),让查询走加密通道。
插图来源:Storyset
先理解:DNS 泄漏是怎么发生的#
你开了代理,流量走了节点,但 DNS 查询如果走了本地运营商的服务器,对方依然能看到你的完整访问记录。这就是 DNS 泄漏——隧道是加密的,问路的过程是裸奔的。
DoH 把 DNS 查询包进 HTTPS 里加密传输,中间人只能看到你连了某个 DNS 服务器,看不到你查了什么域名。小火箭原生支持 DoH,配好就行。
小火箭 DNS 五项配置详解#
打开小火箭 → 右下角「设置」→ 找到 DNS 相关选项,一共五项:
1. 默认域名服务器:223.5.5.5#
这是兜底用的传统 DNS,填阿里公共 DNS 的 IP。它的作用是在 DoH 还没建立起来之前,先有一个能用的解析。国内用户用 223.5.5.5 响应快、稳定。
2. 域名服务器(DoH):https://dns.alidns.com/dns-query#
全局默认的加密 DNS。国内场景下阿里 DoH 解析国内域名速度快、准确率高,优先推荐。
3. 代理节点域名服务器:https://dns.alidns.com/dns-query#
专门给"走代理的域名"用的 DNS。为什么要和第 2 项分开? 为了避免循环依赖:如果代理域名的解析本身又要走代理才能完成,就会卡死。把代理流量的 DNS 单独指定,逻辑最干净。
4. 直连域名服务器:https://dns.alidns.com/dns-query#
走直连的国内网站用的 DNS。国内网站配国内 DNS,解析结果准(不会把你导到海外 CDN 节点绕一圈),速度也快。
5. Fallback 回退服务器:https://dns.quad9.net/dns-query#proxy#
备用 DNS,当前面几个都失败时顶上。这里用 Quad9 的 DoH。注意地址后面的 #proxy:它的意思是这条 DNS 查询本身走代理发送。海外 DNS 配 #proxy 很合理——查询走加密隧道出去,不暴露给本地网络。
#proxy 到底是什么意思#
小火箭的 DNS 地址后面可以加 #proxy 或 #direct 后缀,控制这条 DNS 查询走什么通道:
#proxy:DNS 查询通过代理节点发送,适合海外 DNS#direct:DNS 查询直连发送,适合国内 DNS
配错了会怎样?比如海外 DNS 没加 #proxy,查询直连出去走本地网络,等于把"我在查什么"告诉了运营商,DoH 白配了。
免费 DoH 地址合集#
国内:
- 阿里:
https://dns.alidns.com/dns-query - 腾讯:
https://doh.pub/dns-query - 360:
https://doh.360.cn/dns-query
海外:
- Cloudflare:
https://cloudflare-dns.com/dns-query - Google:
https://dns.google/dns-query - Quad9:
https://dns.quad9.net/dns-query
按需替换上面第 2–5 项即可,#proxy 后缀别忘了按场景加。
三个实话#
- DoH 不是加速器。 它只负责把查询加密,不会让网速变快,别指望换了 DNS 就提速。
- DoH 保证不了"防封"。 账号风控是多因素的(IP 质量、行为模式、设备指纹……),DNS 只是其中一环。配好 DoH 是必要卫生习惯,不是免死金牌。
- 配完要验证。 用本站的 DNS 泄露检测工具 跑一遍,确认查询出口和你预期的一致,没泄漏才算完事。