第16章 隐私保护实践¶
隐私保护是科学上网的重要目标。本章介绍如何防止各种隐私泄露,保护个人信息安全。
16.1 DNS泄漏防护¶
16.1.1 什么是DNS泄漏¶
DNS泄漏原理:
正常代理流程:
用户 → 代理 → 目标网站
(全程加密)
DNS泄漏:
用户 → 本地DNS → ISP DNS服务器
(明文查询)
↓
ISP看到你查询的域名
即使流量走代理,仍暴露访问意图
示例:
访问google.com
1. DNS查询google.com(ISP看到)
2. 通过代理访问(加密,ISP看不到)
结果:ISP知道你想访问Google
16.1.2 检测DNS泄漏¶
在线检测工具:
1. DNS Leak Test
https://www.dnsleaktest.com
2. IP Leak
https://ipleak.net
3. BrowserLeaks
https://browserleaks.com/dns
检测方法:
1. 启用代理
2. 访问检测网站
3. 查看DNS服务器
4. 如果显示本地ISP DNS = 泄漏
5. 应该显示代理服务器DNS
手动检测:
# Windows
nslookup google.com
# 查看Server地址
# Linux/macOS
dig google.com
# 查看SERVER字段
# 或
nslookup google.com
16.1.3 防止DNS泄漏¶
方法1:代理DNS查询
Clash配置:
dns:
enable: true
enhanced-mode: fake-ip # 或redir-host
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
工作原理:
1. 国内域名 → 国内DNS
2. 国外域名 → 通过代理查询国外DNS
方法2:加密DNS(DoH/DoT)推荐
重要趋势(2025):
美国行政命令要求联邦政府强制使用加密DNS
标志着加密DNS成为网络安全标准
DNS over HTTPS (DoH):
- DNS查询通过HTTPS加密
- ISP无法看到查询内容
- 浏览器原生支持
推荐DoH提供商:
隐私优先:
- Cloudflare: https://1.1.1.1/dns-query
✓ 最快速度
✓ 不记录日志
✓ DNSSEC支持
- Quad9: https://dns.quad9.net/dns-query
✓ 非营利组织
✓ 阻止恶意域名
✓ 强隐私保护
- NextDNS: https://dns.nextdns.io
✓ 可自定义过滤
✓ 广告拦截
✓ 详细分析
国内DoH:
- 阿里DNS: https://dns.alidns.com/dns-query
- 腾讯DNS: https://doh.pub/dns-query
- 360DNS: https://doh.360.cn/dns-query
Clash DoH配置:
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://dns.alidns.com/dns-query
- https://doh.pub/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://dns.quad9.net/dns-query
DNS over TLS (DoT):
- DNS查询通过TLS加密
- 端口:853
- 某些网络环境更稳定
dns:
enable: true
nameserver:
- tls://dns.alidns.com
- tls://1.1.1.1
fallback:
- tls://dns.quad9.net
DNS over QUIC (DoQ):
- 新兴标准
- 基于QUIC协议
- 更快速度和更低延迟
方法3:修改系统DNS
Windows:
1. 控制面板 → 网络连接
2. 网络适配器 → 属性
3. IPv4 → 属性
4. 使用下面的DNS服务器:
首选:1.1.1.1
备用:8.8.8.8
macOS:
系统偏好设置 → 网络 → 高级 → DNS
添加:
1.1.1.1
8.8.8.8
Linux:
sudo vi /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8
# 防止被覆盖
sudo chattr +i /etc/resolv.conf
方法4:强制DNS通过代理
V2Ray配置:
{
"dns": {
"servers": [
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
]
},
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
]
}
]
},
"outbounds": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
}
],
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "proxy",
"network": "udp",
"port": "53"
}
]
}
}
16.2 WebRTC泄漏预防¶
16.2.1 WebRTC泄漏原理¶
什么是WebRTC?
泄漏机制:
WebRTC建立连接时:
1. 收集本地IP地址
- 内网IP
- 公网IP
2. 通过STUN服务器
获取NAT外部IP
3. 发送给对方
建立P2P连接
结果:
网页JavaScript可读取真实IP
绕过代理/VPN
16.2.2 检测WebRTC泄漏¶
在线检测:
1. BrowserLeaks WebRTC
https://browserleaks.com/webrtc
2. IP Leak
https://ipleak.net
3. Perfect Privacy
https://www.perfect-privacy.com/webrtc-leaktest/
检测结果:
- 显示代理IP = 安全
- 显示真实IP = 泄漏
手动检测:
<!-- 在浏览器控制台运行 -->
<script>
var pc = new RTCPeerConnection({iceServers:[]});
pc.createDataChannel('');
pc.createOffer().then(offer=>pc.setLocalDescription(offer));
pc.onicecandidate = function(ice){
if(!ice || !ice.candidate) return;
console.log(ice.candidate.candidate);
};
</script>
16.2.3 防止WebRTC泄漏¶
方法1:浏览器扩展(推荐)
Chrome/Edge(兼容Manifest V3):
- WebRTC Leak Prevent
✓ 兼容Manifest V3
✓ 70,000+用户
✓ 主动维护
- WebRTC Protect - Protect IP Leak
✓ Manifest V3兼容
✓ 100,000+用户
✓ 控制WebRTC流量路由
- WebRTC Leak Shield
✓ 内置测试工具
✓ 自定义保护模式
✓ IPv4/IPv6支持
- uBlock Origin(启用WebRTC保护)
✓ 综合隐私保护
✓ 广告拦截+WebRTC防护
Firefox:
- WebRTC Protect(推荐)
✓ 完整WebRTC控制
- Disable WebRTC
- uBlock Origin
注意:
2025年后Chrome扩展必须兼容Manifest V3
旧版扩展可能已停止工作
方法2:浏览器设置
Firefox:
1. 地址栏输入:about:config
2. 搜索:media.peerconnection.enabled
3. 改为:false
4. 重启浏览器
Chrome(需扩展):
Chrome不支持原生禁用
必须使用扩展
Edge(Chromium):
edge://flags
搜索:WebRTC
禁用相关选项
方法3:使用Tor浏览器
方法4:防火墙规则
# Linux - 阻止STUN服务器
# 添加iptables规则
iptables -A OUTPUT -p udp --dport 3478 -j DROP
iptables -A OUTPUT -p udp --dport 19302 -j DROP
# 保存规则
iptables-save > /etc/iptables/rules.v4
# Windows防火墙
# 创建出站规则阻止UDP 3478、19302端口
16.3 IPv6泄漏处理¶
16.3.1 IPv6泄漏问题¶
泄漏原因:
问题场景:
1. 系统同时启用IPv4和IPv6
2. 代理仅支持IPv4
3. 访问双栈网站(支持IPv4/IPv6)
泄漏过程:
网站同时提供IPv4和IPv6
浏览器优先使用IPv6
IPv6流量 → 不经过代理 → 直接访问
ISP看到IPv6流量
结果:
IPv4流量走代理(加密)
IPv6流量直连(明文)
隐私泄漏
16.3.2 检测IPv6泄漏¶
在线检测:
1. Test IPv6
https://test-ipv6.com
2. IP Leak
https://ipleak.net
3. IPv6 Leak Test
https://ipv6leak.com
检测方法:
1. 启用代理
2. 访问检测网站
3. 查看IPv6地址
4. 如果显示 = 泄漏
5. 应该不显示或显示代理IPv6
16.3.3 防止IPv6泄漏¶
方法1:禁用IPv6(推荐)
# Linux
# 临时禁用
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
# 永久禁用
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p
# Windows
# 控制面板 → 网络连接 → 网络适配器属性
# 取消勾选:Internet 协议版本 6 (TCP/IPv6)
# 或PowerShell(管理员)
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
# macOS
networksetup -setv6off Wi-Fi
networksetup -setv6off Ethernet
方法2:代理IPv6流量
Clash配置:
ipv6: false # 禁用IPv6
或
ipv6: true # 启用IPv6代理(需节点支持)
V2Ray配置:
{
"inbounds": [{
"listen": "::", // 监听IPv6
"port": 1080
}]
}
注意:
- 需要节点支持IPv6
- 大多数节点仅支持IPv4
- 建议直接禁用IPv6
方法3:防火墙阻止IPv6
# Linux ip6tables
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -P FORWARD DROP
# 保存规则
ip6tables-save > /etc/iptables/rules.v6
# Windows防火墙
# 创建规则阻止所有IPv6出站流量
16.4 匿名支付方式¶
16.4.1 传统支付的隐私问题¶
支付信息暴露:
支付宝/微信支付:
✗ 实名认证
✗ 绑定银行卡
✗ 交易记录
✗ 收款方信息
✗ 可追溯
信用卡:
✗ 个人信息
✗ 账单地址
✗ 交易记录
✗ 银行监控
PayPal:
✗ 绑定支付方式
✗ 交易历史
✗ 收款方可见姓名
16.4.2 增强隐私的支付方式¶
虚拟信用卡:
Privacy.com(美国):
✓ 生成一次性虚拟卡号
✓ 限制金额
✓ 隐藏真实卡号
✗ 需要美国银行账户
Revolut(欧洲):
✓ 虚拟卡
✓ 一次性卡号
✓ 控制支出
✗ 需要欧洲账户
国内方案:
- 部分银行提供虚拟卡
- 云闪付虚拟卡
预付卡/礼品卡:
优势:
✓ 无需身份验证
✓ 限定金额
✓ 用完即丢
类型:
- Amazon礼品卡
- Google Play礼品卡
- Steam礼品卡
- 预付费信用卡
注意:
⚠️ 某些商家不接受
⚠️ 可能有手续费
⚠️ 余额可能过期
加密货币:
Bitcoin(比特币):
✓ 去中心化
✓ 无需身份
⚠️ 可追溯(链上透明)
Monero(门罗币):
✓ 完全匿名
✓ 隐私保护
✓ 不可追溯
✗ 接受度较低
使用建议:
1. 通过去中心化交易所购买
2. 使用专用钱包
3. 不要KYC验证
4. 使用混币服务(比特币)
5. Tor网络访问
16.4.3 匿名支付最佳实践¶
购买VPS示例:
方案1:加密货币
1. 购买Monero/Bitcoin
2. 选择接受加密货币的VPS商家
3. 使用Tor浏览器访问
4. 临时邮箱注册
5. 加密货币支付
6. 完全匿名
方案2:礼品卡
1. 现金购买礼品卡
2. 使用Tor访问
3. 临时邮箱
4. 礼品卡支付
5. 相对匿名
方案3:虚拟信用卡
1. 申请虚拟卡
2. VPN/代理访问
3. 虚拟卡支付
4. 低度匿名
16.5 数字足迹清理¶
16.5.1 浏览器指纹防护¶
什么是浏览器指纹:
浏览器指纹(Browser Fingerprinting):
通过收集设备和浏览器信息创建唯一标识
收集的信息:
- 屏幕分辨率
- 操作系统版本
- 浏览器版本
- 安装的字体
- Canvas指纹
- WebGL渲染信息
- 音频指纹
- CPU核心数
- 设备内存
- 触摸支持
- 时区设置
- 语言设置
威胁:
即使使用隐私模式/代理/VPN
仍然可能被识别和追踪
Firefox 145反指纹技术
Firefox 145新增防护:
核心改进:
✓ 将可识别用户从65%降至20%
✓ 追踪减少70%
✓ 默认在隐私浏览模式启用
✓ ETP Strict模式支持
具体防护措施:
1. Canvas噪声注入
- 向背景图像添加随机噪声
- 防止Canvas指纹识别
2. 字体限制
- 阻止访问本地字体
- 仅允许系统标准字体
- 特殊语言例外(中文/阿拉伯语)
3. 触摸支持混淆
- 仅报呄0、1或5个触摸点
- 防止设备类型识别
4. 屏幕分辨率模糊化
- 限制报告的分辨率精度
- 隐藏真实屏幕信息
5. CPU信息限制
- 限制报告的CPU核心数
- 防止设备指纹
启用方法:
1. 更新到Firefox 145+
2. 设置 → 隐私与安全
3. 增强型追踪保护 → 严格
4. 或使用隐私浏览模式
注意:
- 某些网站功能可能受影响
- 可为特定网站禁用保护
其他浏览器指纹防护:
Brave浏览器:
✓ 默认启用指纹防护
✓ 每个会话随机化
✓ 基于Chromium
Tor Browser(最强):
✓ 最强指纹防护
✓ 所有用户相同指纹
✓ 完全匿名
LibreWolf:
✓ Firefox增强隐私版
✓ 默认隐私配置
✓ 移除遥测
Chrome/Edge:
✗ 原生防护较弱
需要扩展:
- Privacy Badger
- uBlock Origin
- CanvasBlocker
测试指纹唯一性:
在线测试工具:
1. AmIUnique
https://www.amiunique.org
- 全面指纹分析
- 显示唯一性百分比
2. Cover Your Tracks (EFF)
https://coveryourtracks.eff.org
- 电子前沿基金会工具
- 详细防护建议
3. BrowserLeaks
https://browserleaks.com
- 多项测试
- Canvas/WebGL/音频指纹
4. Fingerprint.com
https://fingerprint.com/demo
- 商业级指纹测试
- 显示实际追踪效果
理想结果:
- 唯一性 < 20%
- 更通用的指纹
- 难以追踪
16.5.2 浏览器足迹¶
清理浏览器数据:
定期清理:
- 浏览历史
- Cookie
- 缓存
- 下载记录
- 表单数据
- 密码(使用密码管理器)
Chrome:
设置 → 隐私和安全 → 清除浏览数据
时间范围:时间不限
勾选:所有项目
Firefox:
历史 → 清除最近的历史记录
时间范围:全部
勾选:所有项目
自动清理:
Firefox:
设置 → 隐私与安全
历史记录:Firefox关闭时清除历史记录
使用隐私模式:
Chrome:Ctrl+Shift+N
Firefox:Ctrl+Shift+P
Edge:Ctrl+Shift+N
特点:
✓ 不保存历史
✓ Cookie会话结束后删除
✓ 不保存表单
✗ 不能防止追踪
✗ ISP仍可看到
浏览器隔离:
工作浏览器:
- Chrome(工作账号)
- 保留历史和Cookie
私人浏览器:
- Firefox(个人账号)
- 定期清理
- 新增:Firefox 145反指纹追踪
匿名浏览器:
- Tor Browser
- 完全隔离
- 每次启动全新环境
16.5.2 系统级清理¶
Windows清理:
# 清除DNS缓存
ipconfig /flushdns
# 清除临时文件
cleanmgr
# 清除事件日志
wevtutil cl Application
wevtutil cl System
wevtutil cl Security
# 清除最近文档
del /q %APPDATA%\Microsoft\Windows\Recent\*
Linux清理:
# 清除bash历史
cat /dev/null > ~/.bash_history
history -c
# 清除系统日志
sudo journalctl --vacuum-time=1d
# 清除临时文件
rm -rf /tmp/*
rm -rf ~/.cache/*
# 清除DNS缓存
sudo systemd-resolve --flush-caches
macOS清理:
# 清除DNS缓存
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# 清除bash历史
cat /dev/null > ~/.bash_history
# 清除系统日志
sudo rm -rf /var/log/*
# 清除缓存
rm -rf ~/Library/Caches/*
16.5.3 元数据清理¶
文件元数据:
文件包含的元数据:
- 创建时间
- 修改时间
- 作者信息
- GPS位置(照片)
- 设备信息
- 软件版本
清理工具:
- ExifTool(跨平台)
- MAT2(Linux)
- metadata-remover(在线)
使用ExifTool:
exiftool -all= photo.jpg
exiftool -all= document.pdf
图片元数据清理:
# 安装ExifTool
# Ubuntu
sudo apt install exiftool
# macOS
brew install exiftool
# 查看元数据
exiftool image.jpg
# 删除所有元数据
exiftool -all= image.jpg
# 批量处理
exiftool -all= -r /path/to/photos/
# 保留基本信息,删除敏感信息
exiftool -GPS:all= -Author= -Copyright= image.jpg
16.5.4 数字足迹最小化¶
原则:
1. 最小化信息暴露
- 不提供非必要信息
- 使用假名
- 虚拟身份
2. 使用一次性身份
- 临时邮箱
- 虚拟手机号
- 一次性账号
3. 数据分隔
- 不同用途不同身份
- 不关联账号
- 不重复使用密码
4. 定期清理
- 删除旧账号
- 清理历史数据
- 撤销应用授权
5. 加密存储
- 敏感文件加密
- 使用加密盘
- 安全删除
工具推荐:
临时邮箱:
- Temp Mail
- 10 Minute Mail
- Guerrilla Mail
虚拟号码:
- Google Voice(美国)
- 接码平台(临时)
密码管理:
- Bitwarden
- KeePass
加密工具:
- VeraCrypt(磁盘加密)
- 7-Zip(文件加密)
- GPG(文件签名)
安全删除:
- Eraser(Windows)
- shred(Linux)
- Secure Empty Trash(macOS)
本章小结¶
本章详细介绍了隐私保护的各个方面:
核心要点:
-
DNS泄漏:
- 使用加密DNS(DoH/DoT)
- 强制DNS通过代理
- 检测和验证
-
WebRTC泄漏:
- 浏览器扩展禁用
- 修改浏览器设置
- 使用Tor浏览器
-
IPv6泄漏:
- 禁用IPv6(推荐)
- 代理IPv6流量
- 防火墙阻止
-
匿名支付:
- 加密货币(Monero)
- 虚拟信用卡
- 预付卡/礼品卡
-
数字足迹:
- 定期清理浏览器
- 删除元数据
- 使用隐私工具
隐私保护层次:
基础防护:
✓ 防止DNS泄漏
✓ 禁用WebRTC
✓ 禁用IPv6
✓ 使用隐私模式
中级防护:
✓ 加密DNS
✓ 浏览器隔离
✓ 定期清理数据
✓ 元数据清理
高级防护:
✓ Tor浏览器
✓ 加密货币支付
✓ 虚拟身份
✓ 数据加密
✓ 最小化足迹
下一章我们将学习审计与日志管理。
实践任务:
- 检测并修复DNS泄漏
- 禁用WebRTC
- 配置加密DNS
- 安装隐私保护扩展
- 清理数字足迹