在 iPhone 或 iPad 上删除 VPN 条目会失败,原因有两种,而且都不是开关卡住。要么这条目由设备管理服务安装,删除按钮从来就不归你按;要么你仍然安装着的应用把这份配置当成自己的,在下次启动时又写回去。两类东西在“设置”里位置几乎相同,所以人们把同一行删三次,然后怪 iOS。先弄清对象的所有者,再按所有者允许的方式删除。

两样东西共用“设置”里的一行

应用创建的 VPN 通过 NetworkExtension 框架构建。应用在代码里组装配置,存进系统存储,iOS 把它列在 VPN 下并带一个状态开关。应用始终是这条记录的所有者:它以后可以更新、附加按需连接规则,或者在你删除后重新添加。较新的 iOS 在应用想添加 VPN 配置时会请求确认,所有权就在那次提示中授予。

配置描述文件是另一种对象。它是一个已签名的文件,通常是 .mobileconfig,可以连同 Wi-Fi 设置一起携带 VPN 负载、证书、限制和邮件账户。有人从下载或通过 Apple Configurator 安装它,或者由管理服务推送。删除的单位是描述文件,而不是 VPN 那一行。iOS 不提供从已签名描述文件中单独删除某个负载的功能,所以删除会带走描述文件里的其他一切。

两者表面相似,行为却完全不同,所以改动之前先把看到的东西和这张表对照一下。

What you seeUsual ownerWho can remove it
VPN row with an app name and a status switchThe app, through NetworkExtensionYou, in Settings, or the app itself
Profile with a VPN payload and a Remove buttonYou, or whoever handed you the fileYou, from the profile screen
Profile with no Remove button and an organization nameA management serverThe organization that enrolled the device

在“设置”里读出所有者

在当前 iOS 和 iPadOS 上,列表位于“设置”“通用”“VPN 与设备管理”;旧版本把同一屏叫作“描述文件”。动手之前先打开描述文件读详情页。带有组织名称的一行,或“受管理”字样,意味着描述文件来自管理服务器。“移除描述文件”按钮意味着这次安装可以手动删除,但这还不能说明服务器会不会在下次检查时把它推回来。

然后检查同一屏的 VPN 部分。应用创建的条目旁边会显示应用名,信息按钮打开的配置里有自己的“删除 VPN”选项。详情里写的是负载而不是应用的那一行属于描述文件,必须在那里处理。关掉状态开关并不是删除:配置仍然保存着,按需连接规则可能在匹配的网络一出现时就把隧道重新拉起来。

删掉反复回来的个人配置

打开 VPN 条目,点信息按钮,选择“删除 VPN”并确认。如果重启后条目又回来了,说明应用在重建它;这是设计行为,不是故障。从源头阻止重建:关掉配置里的按需连接,应用再次请求添加配置时拒绝授权提示,或者在不再需要时卸载应用。卸载前先删除条目,因为已卸载的应用可能留下无人管理的已保存配置。

当供应商发来的是描述文件而不是 NetworkExtension 配置时,它会以供应商的名字出现在同一份描述文件列表里。先删描述文件,再删应用。不要为了削弱配置去删除无关的证书:那份列表里的证书可能被邮件、Wi-Fi 或内部站点信任,删掉它破坏的不只是隧道。

当设备管理持有描述文件时

管理服务器用安装命令下发描述文件,用对应的删除命令移除。在那之前,描述文件不是设备能删的东西;而一份可在本地删除的受管理描述文件,通常会在下次检查时被重新推下来。抹掉设备也不会改变归属。自动注册时序列号绑在组织上,所以“设置助理”会再次注册设备,同样的描述文件在你到达主屏幕之前就落下来了。

出路在管理侧。请管理员从管理服务中删除设备记录,这会结束注册并停止后续安装;如果设备要继续受管理,就只从分配中删掉 VPN 描述文件。对要离开组织的设备,两件事都要提:移除注册,并吊销 VPN 账户或证书。只做本地删除,会留下仍能从别处的描述文件副本通过认证的凭据。

如果服务器侧改动之后描述文件仍在列表里,重启设备,并在抹掉任何东西之前重新读一遍列表。有些移除要等到设备下次检查才生效,而重启会强制这次对话。

确认并撤销删除没有做到的事

条目消失后,按顺序确认三件事:VPN 列表里不再有这份配置,描述文件列表里不再显示承载它的描述文件,重启后两者都不回来。重启后又出现的配置,指向你还没找到的所有者,而不是删除失败。接着测试你想终止的访问:对内部主机的请求应该失败,状态区域应该保持空闲。

删除是本地行为,吊销不是。在服务器上删除或停用用户的 VPN 账户,吊销描述文件携带的证书,清除应用留在钥匙串里的已保存凭据。Apple 关于安装和移除配置描述文件的指南覆盖了各 iOS 版本在设备上的路径;剩下的权限在管理侧。记录删除了什么、谁批准的、账户是否被吊销,因为下一个拿到这台设备的人会遇到同样的两个对象。

相关文章