Skip to content
银河录像局
锦云 机场

DNS泄露测试与防护完全指南:如何确保你的隐私没有裸奔

最后更新:2026年7月1日

你以为连上了 VPN / 代理就安全了?

大错特错。

很多人不知道,即使你的流量走了代理,DNS 查询可能还在裸奔——你的 ISP、你的网络运营商、甚至防火墙,依然能清楚地知道你访问了哪些网站。

这就是 DNS 泄露(DNS Leak)

本文将从原理、检测、防护三个维度,带你彻底搞懂 DNS 泄露,并手把手教你堵住这个隐私漏洞。


📋 目录

  1. 什么是 DNS 泄露?
  2. DNS 泄露有什么风险?
  3. 8 种方法检测 DNS 是否泄露
  4. DNS 泄露的 6 大原因
  5. 各平台防泄露配置实战
  6. 进阶:WebRTC 泄露防护
  7. 常见问题 FAQ

一、什么是 DNS 泄露?

1.1 DNS 是什么?

DNS(Domain Name System) 是互联网的"电话簿"。当你访问 google.com 时,浏览器不知道 Google 的 IP 地址是多少,它需要先去问 DNS 服务器:

你访问 google.com

浏览器问 DNS 服务器:google.com 的 IP 是多少?

DNS 服务器回答:172.217.160.78

浏览器连接 172.217.160.78

1.2 什么是 DNS 泄露?

当你使用代理 / VPN 时,正常情况应该是这样的:

你的电脑 → [加密隧道] → 代理服务器 → DNS 查询(在代理端完成)→ 目标网站

DNS 泄露时变成了这样:

你的电脑 → [加密隧道] → 代理服务器 → 目标网站

     ↘ DNS 查询(直接走本地 ISP)→ 你的 ISP 看到你访问了什么

也就是说,你的流量虽然加密了,但 DNS 查询却明明白白地发给了本地运营商。运营商只要看一下 DNS 查询记录,就知道你访问了哪些网站。

1.3 正常 vs 泄露对比

项目正常(无泄露)DNS 泄露
流量路径全部走代理大部分走代理
DNS 查询在代理服务器端在本地 ISP
ISP 能看到什么只有加密流量你访问的所有域名
隐私等级⭐⭐⭐⭐⭐⭐⭐

二、DNS 泄露有什么风险?

2.1 隐私层面

风险说明
访问记录被监控ISP 可以记录你访问的所有网站
精准广告追踪运营商可以基于你的浏览习惯投放广告
数据被出售部分运营商会将用户数据出售给第三方

2.2 安全层面

风险说明
防火墙识别GFW 可以通过 DNS 查询判断你在访问境外网站
账号风险敏感网站的 DNS 查询可能触发风控
DNS 劫持恶意运营商可以篡改 DNS 响应,把你引导到钓鱼网站

2.3 实际影响有多大?

举个例子:

你用代理访问了 chat.openai.com

  • 没有 DNS 泄露: 你的 ISP 只看到一堆加密流量,不知道你在干嘛
  • 有 DNS 泄露: 你的 ISP 看到你查询了 chat.openai.com 的 DNS,清清楚楚

对于普通浏览,DNS 泄露可能只是隐私问题;但对于敏感访问,DNS 泄露可能带来真实的安全风险


三、8 种方法检测 DNS 是否泄露

3.1 在线检测网站(最简单)

检测网站地址特点
DNS Leak Testhttps://www.dnsleaktest.com最经典,标准测试/扩展测试
ipleak.nethttps://ipleak.net综合检测,还能测 WebRTC
BrowserLeakshttps://browserleaks.com/dns详细的浏览器指纹检测
DNS Checkhttps://dnscheck.tools界面简洁,支持多轮测试

测试步骤

  1. 连接你的代理 / VPN
  2. 打开检测网站
  3. 点击"开始测试"或"Standard Test"
  4. 查看结果

如何判断是否泄露?

  • 正常: 显示的 DNS 服务器是你代理节点所在国家的 DNS,且不是你本地 ISP 的 DNS
  • 泄露: 显示了你本地 ISP 的 DNS 服务器,或出现国内 DNS

3.2 命令行检测(进阶)

Windows

cmd
nslookup google.com

查看返回的 DNS 服务器地址,如果是本地 ISP 的 DNS,可能有泄露。

macOS / Linux

bash
dig google.com
# 或
nslookup google.com

3.3 浏览器扩展检测

安装 WebRTC Network LimiterDNS Leak Test 等扩展,可以实时监控 DNS 查询。

3.4 抓包检测(专业级)

使用 Wireshark 抓包,过滤 dns 协议,查看 DNS 请求是否走了代理接口。


四、DNS 泄露的 6 大原因

原因 1:系统 DNS 设置错误

最常见的原因——你的系统 DNS 还设置着本地 ISP 的 DNS 服务器。

解决: 手动修改 DNS 为公共 DNS(如 Cloudflare 1.1.1.1、Google 8.8.8.8)

原因 2:客户端未开启 DNS 隧道

很多代理客户端默认不代理 DNS 查询,需要手动开启。

解决: 在客户端设置中开启"远程 DNS"或"DNS 隧道"

原因 3:IPv6 DNS 泄露

即使 IPv4 的 DNS 走了代理,IPv6 的 DNS 可能还在裸奔

解决: 禁用 IPv6,或确保 IPv6 DNS 也走代理

原因 4:WebRTC 泄露

WebRTC(网页实时通信)会绕过代理,直接泄露你的真实 IP 和本地 DNS。

解决: 浏览器禁用 WebRTC,或使用支持 WebRTC 防护的客户端

原因 5:多网卡 / 多网络环境

电脑同时连接 WiFi 和有线,或者 VPN 切换时 DNS 没有跟着切换。

解决: 确保代理开启后只有一个网络接口在使用

原因 6:运营商强制 DNS 劫持

部分运营商会强制劫持所有 DNS 请求(端口 53),不管你怎么设置都没用。

解决: 使用 DoH(DNS over HTTPS)或 DoT(DNS over TLS)


五、各平台防泄露配置实战

5.1 Clash Verge Rev(Windows / macOS)

Clash 系列默认就有很好的 DNS 防泄露能力,但需要正确配置。

推荐配置

yaml
dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://dns.cloudflare.com/dns-query
    - https://dns.google/dns-query
  fallback:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN

操作步骤

  1. 打开 Clash Verge Rev
  2. 点击左侧「设置」
  3. 找到「DNS 设置」
  4. 确保 DNS 服务 已开启
  5. 模式选择 Fake-IP(防泄露最强)
  6. 配置 DNS 服务器为 DoH 地址

📖 详细教程: Clash Verge Rev 进阶教程

5.2 v2rayN(Windows)

开启 DNS 泄露防护

  1. 打开 v2rayN
  2. 点击「设置」→「DNS 设置」
  3. 勾选「使用本机 DNS 服务器」
  4. 配置 DNS 服务器:
    1.1.1.1
    8.8.8.8
  5. 勾选「域名解析策略」→「IPIfNonMatch」

📖 详细教程: v2rayN 完全指南

5.3 Shadowrocket(iOS)

小火箭的防泄露配置非常重要,因为 iOS 的网络环境比较特殊。

配置步骤

  1. 打开 Shadowrocket
  2. 点击「设置」→「DNS」
  3. 配置 DNS:
    • 系统 DNS: 关闭(或设置为 1.1.1.1)
    • 远程 DNS: 1.1.1.1、8.8.8.8
  4. 开启「IPv6」→「关闭」(防止 IPv6 泄露)
  5. 返回「设置」→ 开启「路由」→「配置」→ 选择「代理」或「规则」

💡 小技巧: Shadowrocket 可以在「设置」→「更多」→「WebRTC」中禁用 WebRTC

5.4 Hiddify(全平台)

Hiddify 默认就有较好的 DNS 防泄露能力。

  1. 打开 Hiddify
  2. 点击「设置」→「通用设置」
  3. 找到「DNS 设置」
  4. 选择「智能 DNS」模式
  5. 确保「远程 DNS」已开启

5.5 系统级防泄露(终极方案)

如果你想从系统层面彻底杜绝 DNS 泄露,可以直接修改系统 DNS。

Windows

  1. 「设置」→「网络和 Internet」→「更改适配器选项」
  2. 右键当前网络 →「属性」
  3. 双击「Internet 协议版本 4 (TCP/IPv4)」
  4. 选择「使用下面的 DNS 服务器地址」
  5. 填写:
    • 首选 DNS:1.1.1.1(Cloudflare)
    • 备用 DNS:8.8.8.8(Google)
  6. 同样配置 IPv6(推荐禁用)

macOS

  1. 「系统设置」→「网络」→ 当前网络「详细信息」
  2. 点击「DNS」
  3. 添加 DNS 服务器:1.1.1.18.8.8.8

六、进阶:WebRTC 泄露防护

6.1 什么是 WebRTC 泄露?

WebRTC(Web Real-Time Communication) 是浏览器的实时通信技术,用于视频通话、文件传输等。但它有一个"副作用"——会绕过代理,直接暴露你的真实 IP

6.2 如何检测 WebRTC 泄露?

访问:https://ipleak.net

如果在「WebRTC addresses」下看到了你的真实 IP,说明存在 WebRTC 泄露。

6.3 防护方法

方法一:浏览器禁用 WebRTC

Chrome / Edge:

  • 安装扩展:WebRTC ControlWebRTC Network Limiter
  • 打开扩展,选择「禁用 WebRTC」

Firefox:

  • 地址栏输入 about:config
  • 搜索 media.peerconnection.enabled
  • 设置为 false

Safari:

  • 「开发」菜单 →「实验性功能」→ 关闭 WebRTC 相关选项

方法二:客户端级防护

部分代理客户端(如 Shadowrocket、Clash Verge Rev)支持 WebRTC 防护,在设置中开启即可。

方法三:使用 uBlock Origin

uBlock Origin 有 WebRTC 防护功能:

  1. 打开 uBlock Origin 设置
  2. 勾选「阻止 WebRTC 泄露本地 IP 地址」

七、常见问题 FAQ

Q:DNS 泄露和 IP 泄露是一回事吗? A: 不是。IP 泄露是别人能看到你的真实 IP;DNS 泄露是别人能看到你访问了哪些域名。两者都危险,但泄露的信息不同。

Q:用了代理就一定不会有 DNS 泄露吗? A: 不一定。很多客户端默认不代理 DNS,需要手动配置。建议每次连接后都用检测网站验证一下。

Q:Fake-IP 模式是什么?安全吗? A: Fake-IP 是 Clash 的一种 DNS 模式,它返回一个假的 IP 地址,所有 DNS 查询都在客户端内部完成,完全不会发出真实 DNS 请求,是防泄露最强的模式。

Q:DoH 和 DoT 是什么?有必要用吗? A: DoH(DNS over HTTPS)和 DoT(DNS over TLS)是加密的 DNS 协议。即使 DNS 请求被截获,别人也看不到内容。如果你的运营商有 DNS 劫持行为,强烈建议使用。

Q:我用的是机场,需要担心 DNS 泄露吗? A: 需要。即使是付费机场,如果客户端配置不当,同样可能发生 DNS 泄露。养成定期检测的好习惯。

Q:DNS 泄露会导致账号被封吗? A: 一般不会直接导致账号被封,但会增加被风控的概率。对于敏感账号(如 ChatGPT、PayPal),建议确保没有 DNS 泄露。

Q:手机上需要防 DNS 泄露吗? A: 需要!移动端的 DNS 泄露问题更常见,因为移动网络环境更复杂。特别是使用 Shadowrocket 等 iOS 客户端时,一定要正确配置 DNS。


📝 总结

DNS 泄露是科学上网中最容易被忽视的隐私漏洞,但修复起来并不难。

记住这 3 步:

  1. 检测: 连上代理后,用 dnsleaktest.com 测一下
  2. 配置: 确保客户端开启了 DNS 隧道,系统 DNS 设置正确
  3. 验证: 配置完再测一次,确认没有泄露

防泄露优先级:

  • ✅ 开启客户端 DNS 隧道(最重要)
  • ✅ 使用 Fake-IP / Redir-Host 模式
  • ✅ 禁用 WebRTC
  • ✅ 使用 DoH / DoT 加密 DNS
  • ✅ 禁用 IPv6(如果不需要)

隐私安全不是一劳永逸的事,养成定期检测的习惯,才能真正保护好自己。


相关阅读: