首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >代理 IP 链路里的 DNS:为什么浏览器走了代理,解析还在本地

代理 IP 链路里的 DNS:为什么浏览器走了代理,解析还在本地

原创
作者头像
跨境出海观察员
发布于 2026-11-09 14:18:10
发布于 2026-11-09 14:18:10
320
举报

“浏览器已经挂了代理,为什么 DNS 还能查到本地?”这是代理链路排查里很常见的问题。代理配置成功,只说明 TCP 连接从代理出去,不代表域名解析也走了代理。DNS 查询如果仍由本地运营商完成,出口 IP 和解析位置就会分属两个地区。

DNS 解析发生在 TCP 连接之前。代理客户端如果先在本机解析域名,再只把 IP 发给代理,解析请求就已经暴露了本地网络。

一、代理转发的是连接,不一定是解析

HTTP 代理和 SOCKS5 的工作方式不同。HTTP 代理在明文 HTTP 下接收完整 URL,在 HTTPS 下通常只看到 CONNECT 的目标域名;无论哪种,代理端都可以选择自己解析域名。SOCKS5 只转发 TCP/UDP 连接,域名是否在本地解析,取决于客户端实现。

以 curl 为例,两个参数的区别很关键:

代码语言:bash
复制
# 域名交给代理端解析
curl --socks5-hostname 127.0.0.1:1080 https://example.test

# 域名在本地解析,再把 IP 发给代理
curl --socks5 127.0.0.1:1080 https://example.test

第一种把 DNS 也交给代理,第二种只转发 TCP。浏览器里的行为类似,但更隐蔽:系统代理、扩展代理、PAC 脚本、DoH 设置,任何一层都可能改变解析路径。

一次访问通常经过浏览器 DNS 缓存、系统 DNS 缓存、hosts 文件、系统解析器、上游 DNS。代理客户端可能只在其中某一层介入;如果它只接管 TCP,DNS 仍按原路径走。

递归解析器还会向根、顶级域和权威服务器查询;代理端的 DNS 与本地 DNS 可能返回不同的 CDN 节点。出口 IP 相同,页面加载路径和延迟也可能不同。

二、DoH 会绕过系统代理

Chrome/Edge 的“安全 DNS”(DoH)默认可能使用系统解析器,也可能直接向 DoH 服务器发 HTTPS 请求。DoH 请求本身是 HTTPS,如果代理规则只覆盖普通网页流量,DoH 可能绕过代理,直接走本地网络。

结果就是:网页流量从美国出口出去,DNS 查询却由本地网络发往 DoH 服务器,解析位置和出口位置不一致。平台如果同时观察 DNS 解析器和出口 IP,很容易发现矛盾。

PAC 脚本也会造成类似问题。FindProxyForURL 按域名返回代理,某个域名如果命中 DIRECT,就会绕过代理;DoH 域名一旦被判为直连,解析自然落在本地。

三、怎么检查

第一,确认出口 IP 和 DNS 解析器。用两个独立方式核对出口 IP 的归属地和 ASN,再确认 DNS 查询从哪个网络发出。不要只看“代理连接成功”。

第二,用 --socks5-hostname 和 --socks5 对比。前者把域名交给代理,后者本地解析;如果两者结果不同,说明 DNS 路径受客户端实现影响。

第三,检查浏览器 DoH 设置。在设置里搜索“安全 DNS”,确认它是关闭、使用系统解析器,还是自定义 DoH;如果使用自定义 DoH,确认请求是否真的走代理。

第四,检查 PAC 和扩展。PAC 脚本可能对不同域名走不同代理,扩展也可能自己发请求;逐层排查,不要只改系统代理。curl -v 能看到连接目标 IP,但看不到 DNS 请求本身;要确认解析路径,需要结合代理客户端日志、抓包或专用测试域名。

WebRTC 是另一个泄漏面。STUN 请求走 UDP,很多 HTTP 代理不转发 UDP;即使 TCP 流量全部走代理,STUN 仍可能从本地网络发出,暴露公网 IP。

抓包时重点看 TLS ClientHello 的 SNI 和实际连接 IP:SNI 是目标域名,连接 IP 却属于本地 CDN 节点,说明域名是在本地解析的。

第五,登录前测试。用目标站点的登录页做一次完整链路检查,确认出口 IP、DNS 解析位置、WebRTC 候选地址都没有暴露本地网络。不要只用一个公共 DNS 查询结果下结论;不同测试域名可能命中不同的分流规则。

如果团队按环境分配代理,还要确认浏览器代理设置是绑定在单个环境,而不是系统全局;系统全局代理在切换账号时最容易串。

四、总结

代理 IP 不是“换个出口”这么简单。DNS 解析、DoH、PAC、扩展和 WebRTC 都可能让真实网络路径露出来。对多账号运营来说,出口 IP 和 DNS 解析位置必须指向同一地区;只配置代理不检查 DNS,等于把一半链路留在了本地。

排查时建议按“出口 IP → DNS 解析器 → DoH/PAC → WebRTC”的顺序走,每层都留下可复现的结果。这样即使换了代理客户端或浏览器版本,也能快速定位是哪一层没有跟上。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、代理转发的是连接,不一定是解析
  • 二、DoH 会绕过系统代理
  • 三、怎么检查
  • 四、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档