在 VPN 内传输的下载,只在一件事上做得好:把目的地从本地网络中藏起来。路由器只看到一条通往 VPN 端点的连接,看不到里面是什么。这是实打实的收益,也只是全部的收益。运营商仍然看得到请求,设备仍然会记录文件。

选择方法之前,先想清楚你要躲的是谁。

第 1 步:说出观察者

一次被覆盖的下载里有四个观察者。接入网络看得到时间和流量。VPN 运营商看得到目的地,因为请求正是由它转发的。下载站点看得到 VPN 地址。本机看得到文件、安装过程,以及随后的历史记录。

只有第一个被隧道挡下。其余三个需要另一种控制。

第 2 步:确认下载真正走的路径

下载之前,先确认流量在隧道里,而不是从隧道旁边走。ip route get 1.1.1.1 会显示某个目的地会走哪个接口,测试抓取时 ss -tn state established "( dport = :443 )" 会显示连接实际到达的对端地址。如果对端就是 VPN 端点,路径就被覆盖了。如果那是属于目的地的公网地址,说明拆分隧道生效,接入网络什么都看得见。

客户端每次更新之后都要重新检查,因为拆分隧道规则属于策略,不是接口本身的属性。

第 3 步:从官方来源获取并校验文件

使用受支持的下载页面,并保持 HTTPS 校验完整。这次下载出现的证书警告不应该被点掉,承诺更快安装器的镜像也不能替代发布者。隧道改变的是字节经过的路径,并不说明字节由谁生产。

与其相信文件名,不如校验签名:

gpg --verify tor-browser-linux-x86_64-*.tar.xz.asc tor-browser-linux-x86_64-*.tar.xz
sha256sum tor-browser-linux-x86_64-*.tar.xz

来自发布者密钥的有效签名才是完整性校验。由同一个不可信镜像发布的、对得上的校验和不算。

第 4 步:把运行时路径分开

在 VPN 下下载,并不会把 Tor Browser 配置成继续使用 VPN。浏览器启动时走的是操作系统当时的那些路由,所以下载时开着、启动时关掉的隧道,会让同一个二进制文件走另一条路。要有意识地决定顺序:先 VPN 再 Tor,还是只用 Tor,并写清楚机器应该处在哪一种状态。两种偶然混用,哪一种的可见性都得不到。

启动之后再检查,不要想当然:电路显示会列出浏览器选中的入口节点,普通的连通性测试则能看出系统路由是否仍是隧道。

第 5 步:清理设备仍然记录的内容

文件是最大的痕迹。下载记录、shell 历史、最近文档列表、装过 deb 的话还有包管理器日志,以及受管机器上的任何终端代理,都会留下安装证据。在你并不管理的设备上,隧道并不能取消管理;把它当成取消了,是政策问题而不是技术问题。

安装校验完成后删除压缩包,并接受一点:以后再卸载浏览器,也不会从受管设备上抹掉下载记录。

诚实的答案是这样:本地网络看到得更少,其他人看到的和以前一样。

相关文章