Tor 出口中继与 VPN 出口服务器:各自知道什么
Tor 出口中继和 VPN 出口服务器都只显示一个公网地址,但它们分配信息的方式不同。比较可见性、覆盖范围和端口策略。
两种设计都把你的地址藏在一个公网 IP 后面,而一个打印所见地址的网站无法区分它们。区别在于途中谁知道什么、有多少流量被覆盖、哪些端口被允许工作。Tor 出口中继是三跳链路的最后一跳;VPN 出口服务器终止你的隧道,并由它自己发起出站连接。下面说明我如何判断一项任务需要哪一种,以及在假设两者行为相同之前要核对什么。
终点是同一个地址的两条路径
Tor 通过入口守卫、中间中继和出口构建链路,并把载荷分层加密,使每台中继只剥掉自己那一层。出口与目的地建立普通 TCP 连接,因此目的地看到的是出口地址。你的客户端从不直接与目的地通信,入口守卫也看不到它。
VPN 是一条通往一个终点的隧道。运营商的服务器拆掉隧道并打开出站连接,所以目的地同样只看到一个地址,这次是运营商的地址。可观察的结果相同;知识并不相同。一个打印 IP 的测试只能回答你在哪个系统上,对真正不同的信任分配什么也说明不了。
最终谁真正知道什么
VPN 终点在一个地方同时看到源地址、目的地、时间和流量。这种集中正是设计:一个运营商、一个日志面、一个可被传唤或误配的地方。你获得的一切都来自对那一方的信任以及终点的出站策略。
Tor 把这部分知识拆开。入口守卫知道你的地址但不知道目的地;出口知道目的地但不知道你的地址。一台中继不应同时知道两者。这是结构性属性,而不是对全球观察者、对关联时间的中继、对被攻破终点的承诺,所以应把它看作同一风险的另一种分布,而不是不会失败的匿名。
| What is known | Tor exit relay | VPN exit server |
|---|---|---|
| Your public address | Seen by the guard relay, not the exit | Seen at the endpoint |
| Final destination | Seen at the exit | Seen at the endpoint |
| Coverage | Applications configured for Tor, chiefly Tor Browser | Whatever the route policy includes |
| Plain HTTP payload | Readable at the exit | Readable at the endpoint |
覆盖范围是浏览器决定,还是路由决定
Tor 浏览器自己为流量选路,并加上通用 VPN 客户端不会复现的保护:抗指纹、第一方隔离、固定窗口大小,以及丢弃会话状态的“新建身份”操作。其他应用除非专门配置,否则不会走那条链路;而系统级 Tor 配置与安装浏览器是两个独立项目。
VPN 的形状相反。覆盖范围跟随路由表,所以带 AllowedIPs = 0.0.0.0/0 的 WireGuard 配置会捕获全部流量,而分隧道列表只捕获它列出的前缀。泄漏也正出在这个机制里:DNS 查询、IPv6 和 WebRTC 都可能走到路由策略未包含的路径。要从失败的那个应用内部检查,而不是从可能使用另一网卡的浏览器标签页检查。
端口策略、被封锁的目的地与 HTTPS
出口中继可以拒绝出站端口,默认策略会拒绝一份易被滥用的端口清单,其中就有 SMTP 端口 25。因此通过 Tor 配置的邮件客户端会在出口失败,看起来像网络故障,其实不是。运营中继的人会明确设置这一点:
# torrc — refuse outbound SMTP from this relay
ExitPolicy reject *:25
目的地也在封锁,而且对两种系统的封锁方式不同。Tor 出口地址是公开的,站点可以整份拒绝;VPN 终点位于数据中心网段,同样被轻易拒绝。页面失败时,先分清三种可能再动手:出口或出站策略、拒绝来源的目的地,或劫持首个请求的强制门户。
两种系统都不能替代传输加密。明文 HTTP 在出口中继和 VPN 终点都同样可读,所以请保持 HTTPS 开启,并读懂证书警告而不是随手忽略。两项检查能很快判定路由问题:请求经过链路时 curl -s https://check.torproject.org/api/ip 返回 IsTor,而 curl -s https://ifconfig.me 显示 VPN 会呈现的出站地址。两项都跑一遍,就能知道 shell 实际走的是哪条路径。
不要把其中一个当成另一个
出口中继的地址不是 VPN 配置。把 OpenVPN 或 WireGuard 客户端指向 443 端口上的中继并不会建立隧道,因为那里没有 VPN 服务在监听;中继只是别人链路中的一跳。反过来说,VPN 终点不是 Tor 的入口,Tor 浏览器的网桥设置也不是粘贴商业 VPN 主机名的地方。如果你在 VPN 之上运行 Tor,入口守卫看到的是 VPN 地址而不是你的,这改变了分配,却没有合并两个角色。
选择之前,按顺序回答四个问题:谁运营终点、它保留什么;工具在这台设备上覆盖什么;出站策略允许哪些端口和目的地;以及应用在网络路径之外还增加了什么。许多程序需要普通网络访问的任务需要 VPN。需要浏览器级保护和链路模型的任务需要 Tor 浏览器,并保持更新。如果答案是“两者都要”,就按有意的顺序运行,并记下每一侧看到的是哪个地址。