你的 VPN 列表里仍然显示着一个上个月已经删掉应用的服务,菜单栏上的图标也照旧待在那里,仿佛什么都没发生过。这两种现象都不能证明有隧道在运行。macOS 至少维护着三种都以 VPN 面目出现的东西:保存的配置服务、会使用它的扩展或进程,以及属于二者之一的菜单控件。它们由不同的机制创建、拥有和删除,而设置列表只显示第一种。

三种不同的东西戴着同一个标签

保存的服务是一条配置记录:服务器地址、认证方式、选项、名称。它可以在完全没有安装应用的情况下存在,因为配置存储并不要求有应用。扩展或客户端进程是真正会使用这份配置的代码,单独安装,并按自己的节奏更新。菜单栏控件是一种显示元素,它可能属于正在运行的进程,也可能属于 macOS 仍在绘制的残留登录项。

你看到的是什么它归谁所有删除意味着什么
VPN 面板中的服务配置存储条目消失了,凭据可能不会
菜单栏图标应用、登录项或扩展服务器一侧毫无变化
描述文件条目设备管理需要管理员的工作流程

从左往右读这张表,回答的是人们真正会问的问题:删掉这个东西到底会消失什么。只有第一行会碰到配置存储,只有第三行属于设备管理者。中间那一行才是菜单图标生灭的地方,所以它们才能在卸载后如此可靠地存活下来。

先给服务命名,再去找到它的所有者

打开系统设置,进入 VPN 面板,为每条记录记下三个字段:名称、类型,以及面板是否称它为受管理。受管理的服务不是你能删除的,界面通常也会在同一句话里说明这一点。然后清点已安装的东西:应用所在的文件夹、系统扩展设置下的任何网络扩展,以及任何会启动它的登录项。把这些字段写下来的意义在于,光有一个名字并不能告诉你自己看的是三种东西里的哪一种。

配置描述文件可以在完全没有可见应用的情况下提供服务,所以陌生的条目有时在哪儿都找不到对应的图标。在动手之前先找到所属组织或描述文件的所有者,把没有标注所有者的受管理条目当作别人的财产。如果找不到所有者,那就是结论本身,而不是删除的许可。

列表里的接口不是隧道

系统列表里的 utun 接口并不意味着有 VPN 在传输流量,因为其他客户端、虚拟机和系统功能也会创建它们。同时存在好几个是常事,编号也不能说明哪个是活的。与其数接口,不如检查是否分配了地址、流量是否真的走它。已配置但未连接的隧道仍然占着一份配置,却什么也不传输,而这正是让人困惑的状态。

这也是为什么为了消掉一个接口而删除服务,可能顺手拆掉了别人依赖的连接。删掉你已经确认的那件东西,而不是你不喜欢的那个现象。

通过所有者删除,而不是通过列表删除

对个人的保存服务来说,VPN 面板自带的删除控件就是受支持的路径。对由应用管理的隧道,用该应用文档中写明的卸载方式,它通常会在过程中一并删除自己的配置。对受管理的描述文件,删除属于部署它的管理员,绕过这一层既无效,也是策略问题。三者各有各的所有者,而所有者决定哪个按钮才算正当。

凭据和导出的描述文件需要单独复核,因为图标和账户是两件独立的东西。拔掉图标并不会在服务器上取消任何东西,删掉的应用也不能说明磁盘上还剩哪些配置。在认定删除已经完成之前,先问一句这份凭据还授权着什么。

检查清理之后还剩下什么

清理之后,用你想保留的那条隧道连一次,确认日常访问仍然正常,因为删坏了别的东西就是一起新事故。然后列出剩下的东西,按所有者而不是按名字来认每一条记录,因为两个名字相近的条目可能属于不同的所有者。如果菜单栏项目还在,先弄清它是正在运行的进程还是显示偏好,再决定要不要继续删别的。Apple 的 关于删除 VPN 配置的指南 记录了个人服务的受支持路径。

工作顺序是:给对象命名,找到所有者,通过所有者删除,然后验证你留下的连接和没有吊销的凭据。把这三个字段简短地写下来,正是让下一次清理比这次更快的东西。

相关文章