本文主要介绍如何防止真实IP/地理位置/指纹等隐私泄露.

防止位置信息泄露

现代的浏览器都支持通过HTML5的API来获取用户的地理位置, 不希望位置信息被泄露, 可以关闭浏览器的定位权限. 在Chrome中, 可以通过设置->隐私和安全->权限->位置信息, 来禁止定位. 或, 浏览器直接打开 chrome://settings/content/location, 可选择的选项:
  • 不允许网站查看您所在的位置 - 关闭定位权限
  • 网站可以请求取得您的位置信息 - 每次定位都会询问你是否允许, 最好把允许查看位置的网站列表清空.
在 iPhone 或 iPad 等IOS设备, 设置>隐私与安全性>定位服务, 选浏览器(Chrome/Edge等), 设成 永不. 这样也同时达到了 "防止IP送中" 的目的.

防止DNS泄露

使用DoH/DoT方式加密DNS请求, 可防止DNS被劫持, 也防止DNS泄露. Surge, Clash, Shadowrocket等都支持DoH/DoT, 比如: 国内可考虑用 https://dns.alidns.com/dns-query 或 https://doh.pub/dns-query, 国外可考虑用 https://cloudflare-dns.com/dns-query.
# surge
use-local-host-item-for-proxy = true
encrypted-dns-server = https://doh.pub/dns-query
# clash
dns:
  enable: true
  prefer-h3: true
  # listen: :53
  use-hosts: true
  default-nameserver:
    - 223.5.5.5
  nameserver:
    - https://223.5.5.5/dns-query
    - https://doh.pub/dns-query
# shadowrocket
dns-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query
检测 DNS泄露: https://ipleak.net 或 https://www.dnsleaktest.com 如果查询的DNS列表中有你的DNS服务器IP, 则说明DNS泄露了. (比如用香港的代理, 却看到了中国大陆某个省的服务器IP, 大体可判定为使用代理)

防止WebRTC泄露真实IP

WebRTC是一个用于语音及视频通信的网络协议, 它也可以用来获取用户的真实IP地址(没走代理). Chrome可通过按照 WebRTC Network Limiter, 默认会使用同代理服务器的IP. Firefox可通过在地址栏输入 about:config, 搜索 media.peerconnection.enabled, 把它设为 false. Opera可通过在地址栏输入 about:config, 搜索 WebRTC, 把 WebRTC 设为 Disable non-proxied UDP. 检测 WebRTC泄露: https://ipleak.net 或 https://browserleaks.com/webrtc

防止浏览器指纹泄露

Fingerprinting(指纹识别)是一种通过浏览器的特征来识别用户的技术, 通过收集浏览器的特征, 比如: 时区/语言/字体/硬件信息等, 来识别用户, 生成唯一的指纹ID. 长用来识别和追踪用户, 比如广告商精准的投放广告. Chrome 可通过安装 All Fingerprint Defender 可防止Canvas/WebGL/Font/AudioContext指纹泄露. 检测浏览器指纹ID: https://fingerprint.com/demo/ 未安装防指纹插件, 每次进入页面, 看到的指纹ID都是一样的. 启用防指纹插件后, 每次重新打开浏览器, 都会生成一个新的指纹ID. 根据指纹比较容易判定你是"一个"人, 比如申请甲骨文, 通过换卡/换IP/浏览器隐身模式, 可能也同样申请失败. 暂时想到这么多, 后续继续补充吧.