桌面上没有 VPN 按钮:配置文件还在吗?
缺少面板是界面问题,不能证明协议消失。先按 UUID 列出现有配置文件,再用 nmcli 启用其中一个,最后才考虑重装。
重装软件包很少能找回桌面网络菜单从未绘制过的 VPN 条目。面板和连接是两个各有归属的对象:桌面前端绘制插件所暴露的内容,网络服务保存配置文件。两者可以从菜单中消失其一,而另一个仍在工作,正因如此,菜单并不是排查的起点。先检查配置文件,再判断真正出问题的是桌面还是连接。
按钮和配置文件分属不同的所有者
桌面网络页面绘制的是已安装前端及其 VPN 编辑器组件能手绘的内容。NetworkManager,或该机器上掌管网络的任何服务,保存连接定义并决定它能否被拉起。没有任何机制强制这两种视图保持一致,而在桌面变更、发行版升级或针对开发版的运行之后,它们往往并不一致。因此面板可能显示不全,但隧道并未缺失。把这当成协议问题,只会直接走进那条修不好任何东西的重装循环。
| What the screen shows | Check it against | What the answer rules out |
|---|---|---|
| No VPN section at all | nmcli connection show | Whether any profile exists |
| A VPN section with an empty list | The editor or plugin package for that VPN type | Whether the frontend can draw it |
| The same profile listed twice | Both UUIDs | Whether an import loop made copies |
从上往下逐行处理,因为每一行回答不同的问题,而第一行代价最小。配置文件存在,问题就落到前端;完全不存在,问题就落到置备。猜错这两者之一,十分钟的检查就会变成一整下午的重装。
问 NetworkManager 它保存了什么
直接去问服务,而不是读菜单,因为两条命令能区分「存在」与「正在运行」。在机器本身上执行它们,并在每次尝试启用之前和之后各跑一次第二条。两份列表不可互换,两者的差异就是诊断结论。
nmcli -f NAME,UUID,TYPE,DEVICE connection show
nmcli connection show --active
已保存的配置文件可以处于非活动状态,这很正常,与桌面无关。导入循环之后出现两个名字相近的条目很常见,只有 UUID 能区分它们。由其他服务直接掌管的隧道可能永远不在这份列表里,所以结果为空并不自动等于 NetworkManager 有缺陷。此后请按 UUID 选择,因为名字是人会改的标签,而标识符不是。
检查配置文件,而不是重新导入
配置文件存在时,直接读取细节,不必索取已保存的机密。不存在时,按插件文档所述走一次置备或导入流程,并确认它创建了什么。因为菜单仍为空就反复导入,正是一台机器最终留下同一连接四份互相竞争副本的原因。
这些副本是一种带纸面痕迹的漂移,而纸面没人去读:桌面用户说不出会用哪一份,下一任管理员同样说不出。记录标识符之后,有意删除重复项而不是让导入循环替你决定。把幸存下来的那枚 UUID 记下来,因为终端启用需要的正是它。以不同名字导入两次的配置文件,通常是一份能用的定义加一件急躁的产物。配置文件列表就是配置,它值得和连接本身一样认真对待。
从终端启用已保存的配置文件
nmcli 文档介绍了如何以交互方式启用选定的配置文件,这让命令行成为受支持的第二种接口,而不是绕路。把下面的示例标识符换成你保留的 UUID。运行之前先弄清这条命令做什么,因为它会改变网络状态。路由和 DNS 可能随之改变,而被重新配置的那块网卡上的远程会话不会存活。
请在本地控制台执行,或者准备好改动失败时如何重新进去。该--ask选项会收集配置文件缺少的输入;它不会绕过系统授权。它也不保证插件里的每一次认证提示在终端都能用,因为有些提示需要你在那里够不到的对话框。
nmcli --ask connection up uuid 11111111-2222-4333-8444-555555555555
在责怪桌面之前先看结果
如果配置文件成功拉起,说明保存的连接能用,这条管理路径也能用。这就把抱怨收窄到前端,而前端是另一份组件清单,往往也是另一个团队。如果拉不起来,故障在配置文件或隧道里,桌面从来不是问题。
即便启用成功,也说明不了前端的编辑器组件是否存在,或者面板本身是否行为异常。这些仍然要问发行版所支持的前端以及与之匹配的插件包。把它们打包进重装,通常只会让面板保持原样,并在故事里多加一次重启。
一份有用的报告会写明桌面版本、连接类型、缺失的面板操作,以及配置文件能否通过受支持的接口看到或启用。描述一个缺失的菜单既不需要私钥,也不需要带凭据的配置文件。对维护者来说,这足以在不触碰任何凭据的情况下复现面板状态。