用户关掉 VPN 窗口,看到已断开的图标,就把事情当作结束了。如果安装的产品同时也在转达别人的流量,那么该图标回答的问题比被问到的要小得多。一个断开按钮背后其实是三个彼此独立的结果,而只有一个与你自己的会话有关。请按顺序处理,因为每一个的证据和责任人都不一样。

一个断开按钮背后藏着三个结果

你自己的会话结束是最窄的结果:客户端不再承载你选择的流量,隧道状态回到空闲。转发参与的结束是另一件事,因为它涉及一个替别人处理请求的组件,以及允许它这样做的授权。已存记录的处理完全是第三个事件,因为它涉及服务商早就留在自己一侧的信息。

这三者并不共用同一个开关。卸载本地应用不会删除远端记录,删除账户也不一定会停掉你早已忘记的设备上仍在运行的后台组件。每个结果也各有责任人:你自己、设备管理员,或者服务商的支持团队。把它们混为一谈,就会出现那种熟悉的情形——所有人都以为工作已完成,而三件事里还有一件悬着。

这种混淆可以理解,因为三者都通过同一个界面汇报。托盘图标只能描述客户端所知道的状态,而一个已被要求停止显示已连接状态的客户端,没有理由再提到某个辅助进程。把图标当作某个子系统的状态灯,而不是一份清单。

公开政策究竟承诺了什么

有些免费产品明确说明,使用它们可能让设备加入对等网络。Hola 于 2026 年四月 14 日发布的隐私声明就是一个例子:它警告说,使用其列明服务免费档的人,最终可能成为 Bright Data 网络中的一个对等节点。那是服务商发布的有条件陈述,并不能证明某台设备或某个版本此刻正在转发请求。

读这类声明要看它的条件:哪些产品、哪些版本、哪些平台,以及用户据称同意了什么。一句覆盖「列明的产品与服务」的话,不会自动覆盖更旧的构建、付费档,或已从商店下架的浏览器扩展。

它也不会告诉你参与停止后运营方还保留什么。保留期限、账户记录和请求日志由同一文件的其他章节规定,往往也不由交付客户端的那支团队负责。

检查本地组件,而不是窗口

从设备上装了并正在运行的东西开始,因为那是你能验证的部分。使用系统扩展、辅助守护进程或浏览器扩展的 VPN 客户端会留下不止一个产物,而看得见的应用通常是其中信息量最少的。

launchctl list | grep -i -E 'vpn|relay|peer'
ss -tunp state established | grep -v 127.0.0.1

第一条命令列出标签中含有相关字样的 launchd 任务,macOS 上后台辅助程序正出现在那里。第二条在 Linux 上打印已建立的套接字及其属主进程,让你没有主动发起的连接有机会现形。两条命令都不是完整审计,也都不能证明意图,但都比读一个菜单栏图标强。

在 Windows 上,等价的第一步是服务与进程清单,而不是查询 launchd;在任何平台上,如果产品自带浏览器扩展,扩展清单都很重要。动手改动之前,先把发现的东西连同时间戳记下来,因为移除之后的状态事后无法重建。

共享的出口地址不是清单

一个显示你认得的地址的仪表盘,并不能证明某台设备正在转发流量。要让请求经过你的机器,必须存在一条实际执行转发的通路,而一个空闲的应用窗口不是这条通路的证据。反过来也一样:没在用的窗口,说明不了那些不靠窗口运行的组件。

地址本身通常就是很弱的标识。运营商级 NAT、办公出口和共享的服务商出口,都会把大量客户放在同一个公网地址后面,所以日志里看到的地址可能属于其中任何一个。

当几台设备共用一个出口时,先要把即将退役的那台与其余的分开,再下结论。这意味着列出已授权的设备及各自的连接记录,而不是把一个地址对应到一台机器。

用证据闭环,而不是用清理工具

使用服务商官方的退出或移除流程,并记录移除了什么、什么时候移除的。按确切产品和平台的文档步骤走,因为针对另一个版本的说明很少会枚举这一版里的每个组件。

如果在受支持的移除之后活动仍在继续,请保留相关时间戳、进程名和连接记录,然后联系合法运营方或设备管理员。在你改动任何东西之前,先写下你观察到的内容,因为移除后的状态事后无法重建。抓起一个连发布者都没人说得清的擦除工具,会把一个关于地址的疑问变成真正的事故。一份带时间线的支持工单,比一台被不知什么东西擦过的机器更有价值。

最后,请写下你实际完成了三者中的哪一个:会话已结束、组件已移除、记录已处理。一份诚实点出其中之一的记录,比因为图标变灰就声称三者全做到的检查表更有用。

相关文章