跳转至

第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 = Web实时通信
用途:
- 视频通话(Zoom、Google Meet)
- 语音通话
- P2P文件传输

问题:
WebRTC会暴露真实IP地址
即使使用代理/VPN

泄漏机制:

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浏览器

Tor Browser特点:
✓ 默认禁用WebRTC
✓ 强制通过Tor网络
✓ 不会泄漏真实IP
✓ 最佳隐私保护

方法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)

本章小结

本章详细介绍了隐私保护的各个方面:

核心要点:

  1. DNS泄漏

    • 使用加密DNS(DoH/DoT)
    • 强制DNS通过代理
    • 检测和验证
  2. WebRTC泄漏

    • 浏览器扩展禁用
    • 修改浏览器设置
    • 使用Tor浏览器
  3. IPv6泄漏

    • 禁用IPv6(推荐)
    • 代理IPv6流量
    • 防火墙阻止
  4. 匿名支付

    • 加密货币(Monero)
    • 虚拟信用卡
    • 预付卡/礼品卡
  5. 数字足迹

    • 定期清理浏览器
    • 删除元数据
    • 使用隐私工具

隐私保护层次:

基础防护:
✓ 防止DNS泄漏
✓ 禁用WebRTC
✓ 禁用IPv6
✓ 使用隐私模式

中级防护:
✓ 加密DNS
✓ 浏览器隔离
✓ 定期清理数据
✓ 元数据清理

高级防护:
✓ Tor浏览器
✓ 加密货币支付
✓ 虚拟身份
✓ 数据加密
✓ 最小化足迹

下一章我们将学习审计与日志管理。


实践任务:

  1. 检测并修复DNS泄漏
  2. 禁用WebRTC
  3. 配置加密DNS
  4. 安装隐私保护扩展
  5. 清理数字足迹