科学上网安全与隐私保护指南:DNS 泄露、WebRTC 泄露与浏览器指纹防护
很多人以为开了代理就万事大吉——流量加密了,IP 隐藏了,GFW 突破了。但事实上,你的 DNS 请求可能在走本地直连,你的浏览器可能通过 WebRTC 暴露真实 IP,你的浏览器指纹可能让你在全网被追踪。
翻墙只是第一步,安全才是关键。本文全面讲解科学上网中常见的隐私泄露风险和防护方案。
一、DNS 泄露:最常见也最容易被忽视
什么是 DNS 泄露?
当你访问一个网站时,浏览器需要通过 DNS 查询将域名解析为 IP 地址。如果你的代理软件没有正确处理 DNS 请求,这些查询可能直接通过你的本地网络发出,暴露你正在访问哪些网站。
简单来说:你翻了墙,但你访问了什么网站,ISP 看得一清二楚。
如何检测 DNS 泄露?
方法一:在线检测工具
- DNS Leak Test — 点击「Extended test」查看 DNS 服务器位置
- ipleak.net — 综合检测 DNS、WebRTC、IPv6 泄露
- browserleaks.com/dns — 详细的 DNS 泄露检测
判断标准
- 如果检测结果显示的 DNS 服务器位于你所在的国家/地区(如中国),说明存在 DNS 泄露
- 如果 DNS 服务器位于代理节点所在的国家/地区,说明 DNS 已正确走代理
DNS 泄露的常见原因
- 系统 DNS 未走代理:浏览器使用系统 DNS,而系统 DNS 走的是本地网络
- IPv6 DNS 泄露:代理软件只处理了 IPv4,IPv6 的 DNS 请求直连发出
- HTTP/3 (QUIC) 泄露:部分浏览器通过 QUIC 协议直接发出 DNS 请求,绕过代理
- 分流规则导致:代理规则将国内域名直连,但 DNS 查询也走了直连
如何防止 DNS 泄露?
方案一:开启代理软件的 DNS 远程解析
大多数代理客户端都支持远程 DNS 解析,确保 DNS 查询通过代理隧道发出:
Clash / Mihomo:
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
nameserver:
- https://dns.google/dns-query
- https://1.1.1.1/dns-query
fallback:
- https://dns.google/dns-query
- tls://8.8.8.8:853
Sing-box:
{
"dns": {
"servers": [
{ "tag": "remote", "address": "https://dns.google/dns-query" },
{ "tag": "local", "address": "https://dns.alidns.com/dns-query" }
],
"rules": [
{ "domain_suffix": [".cn"], "server": "local" },
{ "query_type": ["A", "AAAA"], "server": "remote" }
]
}
}
方案二:使用 fake-ip 模式
fake-ip 模式是 Clash/Mihomo 提供的 DNS 处理方式,它返回一个虚拟 IP 给客户端,实际的 DNS 解析在代理服务端完成,从根本上杜绝 DNS 泄露。
方案三:禁用 IPv6
如果你的代理不支持 IPv6,禁用系统 IPv6 可以防止 IPv6 DNS 泄露:
macOS:
# 查看当前 IPv6 状态
networksetup -getinfo Wi-Fi
# 禁用 IPv6
networksetup -setv6off Wi-Fi
Windows:
# 以管理员身份运行
netsh interface ipv6 set state disabled
方案四:使用加密 DNS (DoH/DoT)
将系统 DNS 改为加密 DNS,防止 ISP 窥探:
- Cloudflare:
https://1.1.1.1/dns-query - Google:
https://dns.google/dns-query - 阿里 DNS:
https://dns.alidns.com/dns-query
更多加密 DNS 服务器可参考:国内外知名免费公共 DoT/DoH 加密 DNS 服务器
二、WebRTC 泄露:浏览器中的后门
什么是 WebRTC 泄露?
WebRTC(Web Real-Time Communication)是浏览器内置的实时通信技术,用于视频通话、屏幕共享等功能。问题是,WebRTC 会直接获取你的本地 IP 地址,即使你开了代理。
这意味着:你的真实 IP 可能通过 WebRTC 被网站获取,代理形同虚设。
如何检测 WebRTC 泄露?
访问以下网站检测:
- browserleaks.com/webrtc — 最详细的 WebRTC 检测
- ipleak.net — 综合检测
如果检测结果中出现了你的真实公网 IP 或内网 IP(如 192.168.x.x),说明存在 WebRTC 泄露。
如何防止 WebRTC 泄露?
方案一:浏览器扩展
安装 WebRTC 控制扩展:
- Chrome/Edge:WebRTC Leak Prevent
- Firefox:在
about:config中设置media.peerconnection.enabled = false - Safari:开发菜单 → WebRTC 限制 → 关闭 ICE 候选
方案二:代理软件处理
部分代理客户端可以处理 WebRTC 流量:
Clash / Mihomo:
# 在 TUN 模式下,WebRTC 流量会被代理处理
tun:
enable: true
stack: system
dns-hijack:
- any:53
方案三:禁用 WebRTC(不推荐)
完全禁用 WebRTC 会导致部分网页应用(如 Google Meet、Discord 网页版)无法使用,仅在必要时采用。
三、浏览器指纹:比 Cookie 更难防范的追踪
什么是浏览器指纹?
浏览器指纹是通过收集浏览器的各种属性(屏幕分辨率、字体、插件、Canvas 渲染特征等)生成的唯一标识。即使用户清除 Cookie、使用隐身模式,指纹依然不变。
研究表明,仅靠 Canvas 指纹就能识别超过 99% 的用户。
指纹类型
| 类型 | 原理 | 可变性 |
|---|---|---|
| Canvas 指纹 | 不同设备渲染 Canvas 有细微差异 | 低 |
| WebGL 指纹 | GPU 信息和渲染差异 | 低 |
| 字体指纹 | 安装的字体列表 | 中 |
| 音频指纹 | 音频处理差异 | 低 |
| 硬件指纹 | CPU/GPU/内存信息 | 低 |
| 行为指纹 | 鼠标轨迹、打字节奏 | 高 |
如何防护浏览器指纹?
方案一:使用反指纹浏览器
- Mullvad Browser:Tor 项目和 Mullvad 合作开发,不走 Tor 网络但有反指纹保护
- Brave Browser:内置指纹随机化功能
- LibreWolf:Firefox 的隐私增强分支
方案二:浏览器扩展
- CanvasBlocker(Firefox):阻断 Canvas 指纹采集
- Trace(Chrome):综合反指纹扩展
- User-Agent Switcher:随机化 UA 字符串
方案三:隐私设置调整
- 禁用第三方 Cookie:浏览器设置 → 隐私 → 阻止第三方 Cookie
- 启用「请勿追踪」:虽然效果有限,但聊胜于无
- 定期清除浏览数据:Cookie、缓存、本地存储
- 禁用不必要的插件:每个插件都会增加指纹独特性
四、流量指纹:GFW 的终极武器
什么是流量指纹?
GFW 不仅仅通过 IP 和域名封锁网站,还能通过分析流量特征(包大小、时间间隔、协议特征)来识别代理流量。即使你使用了加密代理,流量模式本身也可能暴露你在翻墙。
防护策略
- 使用 Reality 协议:目前抗流量分析能力最强的协议,详见代理协议详解
- 使用 TLS 伪装协议:Trojan、VLESS+XTLS 等协议将流量伪装为正常 HTTPS
- 开启多路复用:减少连接数量,降低特征
- 避免大流量下载:持续高流量容易被标记为异常
- 使用 CDN 中转:通过 Cloudflare 等 CDN 隐藏真实服务器 IP
五、综合安全检查清单
将以下清单逐项对照,确保你的科学上网配置是安全的:
DNS 安全
- 代理软件已开启远程 DNS 解析
- 使用 fake-ip 模式或 DoH/DoT 加密 DNS
- 已禁用或正确处理 IPv6 DNS
- DNS Leak Test 检测通过
WebRTC 安全
- WebRTC 泄露检测通过
- 已安装 WebRTC 控制扩展或禁用 WebRTC
- 使用 TUN 模式让 WebRTC 走代理
浏览器隐私
- 使用反指纹浏览器或安装反指纹扩展
- 禁用第三方 Cookie
- 定期清除浏览数据
- 最小化安装浏览器插件
账号安全
- 翻墙账号与日常账号分离
- 使用不同密码,启用两步验证
- 不在免费节点上登录重要账号
- 使用隐私搜索引擎(DuckDuckGo、Startpage)
系统安全
- 关闭系统自动代理检测
- 检查系统代理设置是否正确
- 确保 kill switch(断网保护)已开启
- 定期更新代理软件和系统
六、推荐安全配置组合
| 安全级别 | DNS | WebRTC | 浏览器 | 代理协议 |
|---|---|---|---|---|
| 基础 | 代理远程解析 | 扩展控制 | Chrome + 隐身模式 | 任意 |
| 中级 | fake-ip + DoH | 禁用 WebRTC | Brave | VLESS/Trojan |
| 高级 | fake-ip + DoH + IPv6 禁用 | TUN 模式 | Mullvad Browser | Reality |
延伸阅读
- 代理协议详解:Shadowsocks、VMess、VLESS、Trojan、Hysteria2、Reality 该选哪个?
- 国内外知名免费公共 DoT/DoH 加密 DNS 服务器
- Sing-box 新手入门:从零配置到科学上网
- 开源翻墙工具新动向:Hiddify、NekoBox、Mihomo 值得尝试吗?
📅 更新时间:2026年7月6日 💬 互动:你遇到过 DNS 泄露或 WebRTC 泄露吗?是怎么解决的?欢迎评论区分享。