为什么 iOS 上的 VPN 描述文件会一直锁住,以及如何删除它
iOS 的 VPN 条目属于某个应用或某份已签名的描述文件。在“设置”中读出所有者,删除正确的对象,并撤销本地删除后仍然有效的东西。
在 iPhone 或 iPad 上删除 VPN 条目会失败,原因有两种,而且都不是开关卡住。要么这条目由设备管理服务安装,删除按钮从来就不归你按;要么你仍然安装着的应用把这份配置当成自己的,在下次启动时又写回去。两类东西在“设置”里位置几乎相同,所以人们把同一行删三次,然后怪 iOS。先弄清对象的所有者,再按所有者允许的方式删除。
两样东西共用“设置”里的一行
应用创建的 VPN 通过 NetworkExtension 框架构建。应用在代码里组装配置,存进系统存储,iOS 把它列在 VPN 下并带一个状态开关。应用始终是这条记录的所有者:它以后可以更新、附加按需连接规则,或者在你删除后重新添加。较新的 iOS 在应用想添加 VPN 配置时会请求确认,所有权就在那次提示中授予。
配置描述文件是另一种对象。它是一个已签名的文件,通常是 .mobileconfig,可以连同 Wi-Fi 设置一起携带 VPN 负载、证书、限制和邮件账户。有人从下载或通过 Apple Configurator 安装它,或者由管理服务推送。删除的单位是描述文件,而不是 VPN 那一行。iOS 不提供从已签名描述文件中单独删除某个负载的功能,所以删除会带走描述文件里的其他一切。
两者表面相似,行为却完全不同,所以改动之前先把看到的东西和这张表对照一下。
| What you see | Usual owner | Who can remove it |
|---|---|---|
| VPN row with an app name and a status switch | The app, through NetworkExtension | You, in Settings, or the app itself |
| Profile with a VPN payload and a Remove button | You, or whoever handed you the file | You, from the profile screen |
| Profile with no Remove button and an organization name | A management server | The organization that enrolled the device |
在“设置”里读出所有者
在当前 iOS 和 iPadOS 上,列表位于“设置”“通用”“VPN 与设备管理”;旧版本把同一屏叫作“描述文件”。动手之前先打开描述文件读详情页。带有组织名称的一行,或“受管理”字样,意味着描述文件来自管理服务器。“移除描述文件”按钮意味着这次安装可以手动删除,但这还不能说明服务器会不会在下次检查时把它推回来。
然后检查同一屏的 VPN 部分。应用创建的条目旁边会显示应用名,信息按钮打开的配置里有自己的“删除 VPN”选项。详情里写的是负载而不是应用的那一行属于描述文件,必须在那里处理。关掉状态开关并不是删除:配置仍然保存着,按需连接规则可能在匹配的网络一出现时就把隧道重新拉起来。
删掉反复回来的个人配置
打开 VPN 条目,点信息按钮,选择“删除 VPN”并确认。如果重启后条目又回来了,说明应用在重建它;这是设计行为,不是故障。从源头阻止重建:关掉配置里的按需连接,应用再次请求添加配置时拒绝授权提示,或者在不再需要时卸载应用。卸载前先删除条目,因为已卸载的应用可能留下无人管理的已保存配置。
当供应商发来的是描述文件而不是 NetworkExtension 配置时,它会以供应商的名字出现在同一份描述文件列表里。先删描述文件,再删应用。不要为了削弱配置去删除无关的证书:那份列表里的证书可能被邮件、Wi-Fi 或内部站点信任,删掉它破坏的不只是隧道。
当设备管理持有描述文件时
管理服务器用安装命令下发描述文件,用对应的删除命令移除。在那之前,描述文件不是设备能删的东西;而一份可在本地删除的受管理描述文件,通常会在下次检查时被重新推下来。抹掉设备也不会改变归属。自动注册时序列号绑在组织上,所以“设置助理”会再次注册设备,同样的描述文件在你到达主屏幕之前就落下来了。
出路在管理侧。请管理员从管理服务中删除设备记录,这会结束注册并停止后续安装;如果设备要继续受管理,就只从分配中删掉 VPN 描述文件。对要离开组织的设备,两件事都要提:移除注册,并吊销 VPN 账户或证书。只做本地删除,会留下仍能从别处的描述文件副本通过认证的凭据。
如果服务器侧改动之后描述文件仍在列表里,重启设备,并在抹掉任何东西之前重新读一遍列表。有些移除要等到设备下次检查才生效,而重启会强制这次对话。
确认并撤销删除没有做到的事
条目消失后,按顺序确认三件事:VPN 列表里不再有这份配置,描述文件列表里不再显示承载它的描述文件,重启后两者都不回来。重启后又出现的配置,指向你还没找到的所有者,而不是删除失败。接着测试你想终止的访问:对内部主机的请求应该失败,状态区域应该保持空闲。
删除是本地行为,吊销不是。在服务器上删除或停用用户的 VPN 账户,吊销描述文件携带的证书,清除应用留在钥匙串里的已保存凭据。Apple 关于安装和移除配置描述文件的指南覆盖了各 iOS 版本在设备上的路径;剩下的权限在管理侧。记录删除了什么、谁批准的、账户是否被吊销,因为下一个拿到这台设备的人会遇到同样的两个对象。