最后更新于:2025年12月

DNS安全防护
DNS泄漏防护和隐私安全

很多人认为只要开启了 VPN 或科学上网工具,自己的网络活动就完全匿名和安全了。这是一个危险的误解!

即使你使用了最顶级的代理服务,如果配置不当,仍然可能发生 DNS 泄漏(DNS Leak),导致你的真实位置和浏览记录暴露。


什么是 DNS 泄漏?

DNS 是什么?

DNS(Domain Name System),域名系统,是互联网的"电话簿"。

当你访问 www.google.com 时:

  1. 浏览器需要知道这个域名对应的 IP 地址
  2. 它会向 DNS 服务器发起查询
  3. DNS 服务器返回 IP 地址(如 142.250.80.46
  4. 浏览器通过这个 IP 访问网站

DNS 泄漏的危害

正常情况下,DNS 查询应该通过你的 VPN 隧道发送到代理服务器的 DNS。但如果发生泄漏:

PLAINTEXT
❌ 错误流程(发生泄漏):
你的设备 → [本地 DNS 查询] → 运营商 DNS(暴露真实位置)
          ↓
     VPN 隧道 → 代理服务器 → 目标网站

✅ 正确流程(无泄漏):
你的设备 → VPN 隧道 → 代理服务器 → [DNS 查询] → 安全 DNS
                                      ↓
                                 目标网站

泄漏后果:


如何检测 DNS 泄漏?

方法一:使用在线检测工具(推荐)

1. dnsleaktest.com

  1. 确保你的 VPN/代理已开启
  2. 访问 dnsleaktest.com
  3. 点击 “Standard test”“Extended test”
  4. 查看结果:
    • 安全:只显示 VPN 服务商的 DNS
    • 泄漏:显示你的 ISP(运营商)DNS

2. ipleak.net

  1. 访问 ipleak.net
  2. 页面会自动检测:
    • IP 地址(应该是代理服务器的)
    • DNS 服务器
    • WebRTC 泄漏
  3. 向下滚动查看详细信息

3. browserleaks.com/ip

专门检测浏览器层面的泄漏,包括:

方法二:命令行检测(高级用户)

Windows:

BASH
nslookup google.com

查看返回的 DNS 服务器地址,如果是你的运营商 DNS,说明发生泄漏。

Mac/Linux:

BASH
dig google.com

查看 SERVER 字段。


DNS 泄漏的常见原因

1. 未配置代理 DNS

很多新手只设置了 HTTP/SOCKS 代理,但没有配置 DNS 转发。

2. WebRTC 泄漏

浏览器内置的 WebRTC 功能可能绕过代理,直接暴露真实 IP。

3. IPv6 泄漏

如果你的代理只处理 IPv4 流量,IPv6 请求可能直连。

4. 应用程序绕过

某些应用(如游戏、P2P 软件)可能不使用系统代理设置。

5. DNS 缓存

操作系统和浏览器会缓存 DNS 记录,可能在切换代理后仍使用旧 DNS。


解决方案:彻底防止 DNS 泄漏

方案一:v2rayN 中配置防泄漏(推荐)

步骤 1:启用内置 DNS

  1. 打开 v2rayN
  2. 点击 “设置(V)”“参数设置(P)”
  3. 切换到 “DNS 设置” 标签
  4. 勾选 “启用 DNS”
  5. DNS 服务器选择:
    • 国外 DNS8.8.8.8(Google)、1.1.1.1(Cloudflare)
    • 国内 DNS223.5.5.5(阿里)、119.29.29.29(腾讯)

步骤 2:配置路由规则

  1. 在 DNS 设置中,找到 “路由域名”
  2. 选择策略:
    • IPIfNonMatch(推荐):IP 不匹配时使用域名路由
    • AsIs:仅使用域名路由
    • IPOnDemand:优先使用 IP 路由

步骤 3:禁用系统 DNS

  1. 打开 Windows 网络设置
  2. 找到当前使用的网络连接
  3. 右键 → “属性”
  4. 双击 “Internet 协议版本 4 (TCP/IPv4)”
  5. 选择 “使用下面的 DNS 服务器地址”
  6. 填入:
    PLAINTEXT
    首选 DNS:127.0.0.1
    备用 DNS:8.8.8.8

方案二:使用 DNS over HTTPS (DoH)

DoH 将 DNS 查询通过 HTTPS 加密传输,防止中间人窃听。

在浏览器中启用 DoH

Chrome/Edge:

  1. 地址栏输入:chrome://settings/security
  2. 找到 “使用安全 DNS”
  3. 开启开关
  4. 选择提供商:
    • Cloudflare (1.1.1.1)
    • Google (8.8.8.8)
    • 自定义:https://dns.alidns.com/dns-query

Firefox:

  1. 地址栏输入:about:preferences#privacy
  2. 滚动到 “DNS over HTTPS”
  3. 选择 “增加保护”“最大保护”
  4. 选择提供商

在系统中启用 DoH

Windows 11:

  1. 设置 → 网络和 Internet → 以太网/WiFi
  2. 点击当前连接的 “硬件属性”
  3. 找到 “DNS 服务器分配” → 编辑
  4. 选择 “手动”
  5. 启用 “DNS over HTTPS (DoH)”
  6. 填入 DoH 服务器地址

方案三:禁用 WebRTC

WebRTC 可能绕过代理暴露真实 IP。

Chrome/Edge 扩展程序

安装 “WebRTC Network Limiter”“uBlock Origin”

  1. 访问 Chrome 网上应用店
  2. 搜索扩展程序
  3. 点击"添加至 Chrome"
  4. 在扩展设置中启用 WebRTC 阻止

Firefox 内置设置

  1. 地址栏输入:about:config
  2. 搜索:media.peerconnection.enabled
  3. 双击改为 false

方案四:禁用 IPv6

如果你不需要 IPv6,可以直接禁用以避免泄漏。

Windows:

  1. 控制面板 → 网络和共享中心
  2. 点击当前网络连接
  3. 点击 “属性”
  4. 取消勾选 “Internet 协议版本 6 (TCP/IPv6)”
  5. 点击确定

Mac:

  1. 系统偏好设置 → 网络
  2. 选择当前连接 → 高级
  3. 切换到 TCP/IP 标签
  4. 配置 IPv6:“仅本地链接”

方案五:清理 DNS 缓存

每次修改 DNS 设置后,务必清理缓存。

Windows:

BASH
ipconfig /flushdns

Mac:

BASH
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Linux:

BASH
sudo systemd-resolve --flush-caches

Chrome 浏览器:

  1. 地址栏输入:chrome://net-internals/#dns
  2. 点击 “Clear host cache”

推荐的 DNS 服务器列表

国际 DNS(适合代理使用)

提供商 IPv4 IPv6 DoH 地址
Cloudflare 1.1.1.1, 1.0.0.1 2606:4700:4700::1111 https://cloudflare-dns.com/dns-query
Google 8.8.8.8, 8.8.4.4 2001:4860:4860::8888 https://dns.google/dns-query
Quad9 9.9.9.9, 149.112.112.112 2620:fe::fe https://dns.quad9.net/dns-query
OpenDNS 208.67.222.222, 208.67.220.220 - https://doh.opendns.com/dns-query

国内DNS(适合直连使用)

提供商 IPv4 IPv6 DoH 地址
阿里云 223.5.5.5, 223.6.6.6 2400:3200::1 https://dns.alidns.com/dns-query
腾讯云 119.29.29.29, 182.254.116.116 - https://doh.pub/dns-query
114DNS 114.114.114.114, 114.114.115.115 - -
百度DNS 180.76.76.76 - -

TUN 模式下的 DNS 配置

如果你已经开启了 TUN 模式(见上一课),DNS 配置会更加简单:

  1. v2rayN 会自动接管所有 DNS 查询
  2. 确保在 TUN 设置中启用了 “Fake DNS”
  3. Fake DNS 会在本地模拟 DNS 响应,进一步提升速度

验证方法:

BASH
nslookup google.com

返回的服务器应该是 127.0.0.1 或类似本地地址。


完整检查清单

在确认你的配置无误后,按照以下清单逐项检查:


高级技巧:自建 DNS 服务器

对于极客用户,可以考虑自建 DNS 服务器:

方案一:AdGuard Home

方案二:Pi-hole

方案三:CoreDNS


总结

DNS 泄漏是一个容易被忽视但极其重要的安全问题。通过本文的学习,你应该已经掌握:

✅ DNS 泄漏的原理和危害
✅ 如何检测 DNS 泄漏
✅ 多种防止泄漏的方法
✅ 推荐的 DNS 服务器列表
✅ 完整的检查清单

关键要点:

记住:安全是一个持续的过程,而不是一次性的配置。定期检查和维护,才能确保你的隐私真正得到保护。

👉 下一课: iOS/Android 手机端科学上网完整教程

在下一课中,我们将讲解如何在手机上配置科学上网,包括 Shadowrocket、Quantumult X、Clash for Android 等主流客户端的使用教程。


常见问题 FAQ

Q: 使用公共 DNS 会影响速度吗?
A: 优质公共 DNS(如 Cloudflare、Google)通常比运营商 DNS 更快更稳定。

Q: DoH 会降低网速吗?
A: 几乎不会。HTTPS 握手开销很小,且现代浏览器有优化。

Q: 为什么我禁用了 WebRTC 后某些网站无法视频通话?
A: WebRTC 用于实时通信。可以在需要时临时启用,使用后再次禁用。

Q: IPv6 真的有必要禁用吗?
A: 如果你的代理不支持 IPv6,建议禁用。否则可能发生泄漏。

Q: 多久检测一次 DNS 泄漏?
A: 建议每月检测一次,或在更换机场/客户端后立即检测。

版权声明

作者: 易邦

链接: https://e8k.net/posts/dns-leak/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。