Tor Browser 把自己的连接交给本地代理,再引入 Tor 网络,而它不会移动机器上的其他部分。邮件客户端、同步守护进程和第二个浏览器都保留原有设置,所以一个窗口里的干净结果,完全可以与它背后的直连同时存在。四项检查把真正被覆盖的和只是看起来被覆盖的区分开来。先从会点出进程名的那一项开始。

浏览器实际代理了什么

在浏览器内部,流量会走向 Tor Browser 为自己启动的本地 SOCKS 监听端口,而浏览器被配置为使用它。线路选择、身份隔离和指纹防护都活在这一对组合里。保存到磁盘的文件不携带其中任何一项,用外部查看器打开它,等于启动一个有着自己网络行为的新程序。

这也是那个熟悉的公网地址页面证明力如此之弱的原因。它只报告加载它的浏览器所用的出口,完全观察不到另一个应用。把结果当作关于一个程序的证据,而不是关于设备的断言。

每条连接归哪个进程所有

把套接字和它们背后的进程列出来。找一找有没有不是浏览器、却在与本地监听端口通话的东西:

ss -tunp
ss -tunp | grep -E 'tor|firefox'

任何带公网目的地的条目,都是绕过了线路的连接。如果发现了,先确认是哪个程序,再去改动别的东西,因为每个客户端的修法不同:

curl --socks5-hostname 127.0.0.1:9150 https://check.torproject.org/api/ip

-hostname 这种写法之所以重要,是因为它要求代理来解析域名。在本地解析、再把地址交给代理,即使连接本身走了代理,目的地仍然会暴露。

协议到底会不会被承载

Tor 中继承载的是 TCP 流。围绕 UDP 构建的应用,比如某些语音和游戏客户端,在网络上的行为不像网页,强行让它们走代理通常只会失败,而不是保护它们。

Coverage modelWhat it coversWhat it leaves alone
Tor BrowserIts own browsing and downloadsEvery other application
Proxy setting in one appThat app, if it honours the proxyIts DNS behaviour and other programs
System VPNTraffic routed through the tunnelBrowser fingerprint and identity
Whole-device routingThe operating system's trafficApplication-level identity signals

如果你在意的应用依赖 UDP,浏览器设置不是答案,应用会忽略的代理变量也不是。需求会变成另一种设计,带着另一种失效方式。

你实际选择的那层覆盖

系统级 VPN 的范围比浏览器更宽,目的却更窄。当路由和平台支持为此配置好时,它可以承载多个应用,但它不提供指纹抵抗,而 VPN 出口不是匿名网络。

整台设备的覆盖是一种系统设计,而不是一个安装程序。它路由的是操作系统的流量,而不是某一个进程,同时也带来浏览器下载所没有的运维边界。

先想清楚你在回答哪个问题:是哪个应用受保护,还是每一个数据包是否受保护。前者是浏览器设置,后者是路由策略。把这两者混为一谈,正是一台机器最后剩下一扇受保护的窗口、五个不受保护的进程的原因。在安装别的东西之前,先把答案写下来。

相关文章