新的 Tor 线路与切换 VPN 服务器:实际改变的是什么
更换线路改变的是 Tor 路径,而切换服务器改变的是隧道端点。两者中哪一个会改变网站看到的地址,取决于先后顺序。
更换 Tor 线路和切换 VPN 服务器都像是得到了新路线,但把它们当成同一个按钮时,它们会在不同地方出问题。一个要求 Tor 客户端为某个网站重建一条不同的路径,另一个要求 VPN 客户端连接到另一个端点。两者都不是重置,而网站最终看到的地址取决于这两者中哪一个更靠近目的地。下面就是我如何决定该用哪个控件,以及之后检查什么。
两个层面上的两种操作
Tor 是一层覆盖网络。你的客户端会挑选一个守门中继、一个中间中继和一个出口中继,然后通过这条线路传输 TCP 流;目的地只看到出口,别的什么都看不到。更换线路是 Tor 内部关于由哪些中继承载某条流的决定。
VPN 是下面的一层隧道。客户端选择一个端点,把流量包进外层,之后的一切看到的是该端点的地址。切换服务器则是关于外层路径在哪里终结的决定。
由于这些层相互独立,一种操作在连接的远端可能是看不见的。这种不对称解释了围绕这两个控件的大部分困惑。
New Tor Circuit for this Site 做什么
New Tor Circuit for this Site 位于网站信息面板中,它会关闭 Tor 为该网站承载的流,并为下一个请求建立新线路。标签页、Cookie、登录状态以及会话的其余部分都原封不动,这正是重点:你保留会话,只更换路径。
这使它成为处理狭窄故障的合适工具:目的地封禁了出口中继、验证码循环跟着出口走,或者某个网站卡住而其他网站都正常。同一面板中的线路显示会列出三个中继,所以你可以确认出口确实变了,而不是想当然。
注意守门中继。Tor 会保留一小组入口守门中继,而更换线路通常复用同一个守门中继,因此网络上的第一跳并不会移动。New Identity 是更大的重置:它会关闭标签页并清除浏览状态,然后建立新线路,而 身份相关控件另有文档说明是有原因的:那是另一种操作,代价也不同。
切换 VPN 服务器做什么
客户端拆掉隧道并连接到另一个端点。隧道之外的下一跳,无论是 Tor 的守门中继还是目的地本身,都会看到不同的源地址。隧道内部连接会断开,必须重新建立,因此页面可能一直挂到超时,而不是干净地重新加载。
隧道之上没有任何东西被改写,但拆掉并非不可见。在 VPN 在前的配置里,出口仍由 Tor 选择,但丢弃隧道会杀掉 Tor 与其守门中继之间的 TCP 连接,于是 Tor 拆掉这些线路并建立新的线路,重新选择一个出口。因此切换之后网站可能看到不同的出口地址,尽管切换本身从未选择过出口。切换决定的是守门中继看到的地址;重新建立线路才重新选择出口。如果你只是想在 Tor 在前时改变网站看到的东西而切换服务器,那你移动的是网站从不直接观察的层,而网站注意到的任何变化都来自重建,而不是来自切换。
切换也只影响客户端自己拥有的路由。复用已打开连接的浏览器可能看起来卡在旧路径上,直到它重新连接,而缓存的 DNS 应答是另一个常见的拦路虎。先重新加载,再做判断。
顺序决定目的地看到什么
这两种顺序回答的是不同问题。当 VPN 在 Tor 前面时,守门中继和中继看到的是 VPN 端点,而目的地看到的是 Tor 出口。当 Tor 在 VPN 前面时,目的地看到的是 VPN 端点,因为隧道是流量最后经过的一环。
| Setup | Switch VPN server | Change Tor circuit |
|---|---|---|
| VPN, then Tor | Guard sees the new address; the rebuilt circuit re-chooses the exit, so the site may see a different exit, not necessarily the same one. | Site sees a new exit; the VPN endpoint is untouched. |
| Tor, then VPN | Site sees the new VPN address immediately. | Circuit is rebuilt, but the site still sees the VPN address. |
所以一次 IP 查询报告的是目的地看到的东西,而不是承载它的路径。在一种配置里显示出口、在另一种配置里显示 VPN 的服务是表现正常的,并不是在泄漏。
两种操作都不做的事
两者都不会删除账号身份。已登录的会话是一个 Cookie 加上服务器端的记录,而更换路径对两者都不触碰。稳定的浏览器配置文件、相同的登录状态和相同的指纹都能挺过这两个动作。
两者也都不构成证据。网站报告的是它在某次请求中观察到的地址;它无法报告你的中继路径,也无法报告你的 VPN 是否在十分钟前掉线。如果你需要那条时间线,就在当时写下来,因为事后无法从远端重建它。
让控件对上症状
从故障出发,而不是从哪个按钮看起来更彻底出发:
- 某个网站封禁你、验证码循环,或者单个网站很慢:为该网站更换线路。
- 只有 VPN 的配置需要一个不同的可见地址:切换服务器。
- 你期待出口,网站却报告你的 VPN:检查顺序,Tor 在隧道后面。
- 标签页被关闭、一切都被重置:你用的是 New Identity,不是更换线路。
- 更换线路后出口看起来没变:中继确实可能合理地重复,而守门中继完全不会移动。
在改变任何其他东西之前,先写下这个动作以及它本要解决的症状。连续两次切换会产生无法解读的对比,而在只有一层出问题时把两者都做一遍,正是五分钟的检查变成一个下午的方式。