重装软件包很少能找回桌面网络菜单从未绘制过的 VPN 条目。面板和连接是两个各有归属的对象:桌面前端绘制插件所暴露的内容,网络服务保存配置文件。两者可以从菜单中消失其一,而另一个仍在工作,正因如此,菜单并不是排查的起点。先检查配置文件,再判断真正出问题的是桌面还是连接。

按钮和配置文件分属不同的所有者

桌面网络页面绘制的是已安装前端及其 VPN 编辑器组件能手绘的内容。NetworkManager,或该机器上掌管网络的任何服务,保存连接定义并决定它能否被拉起。没有任何机制强制这两种视图保持一致,而在桌面变更、发行版升级或针对开发版的运行之后,它们往往并不一致。因此面板可能显示不全,但隧道并未缺失。把这当成协议问题,只会直接走进那条修不好任何东西的重装循环。

What the screen showsCheck it againstWhat the answer rules out
No VPN section at allnmcli connection showWhether any profile exists
A VPN section with an empty listThe editor or plugin package for that VPN typeWhether the frontend can draw it
The same profile listed twiceBoth UUIDsWhether 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

在责怪桌面之前先看结果

如果配置文件成功拉起,说明保存的连接能用,这条管理路径也能用。这就把抱怨收窄到前端,而前端是另一份组件清单,往往也是另一个团队。如果拉不起来,故障在配置文件或隧道里,桌面从来不是问题。

即便启用成功,也说明不了前端的编辑器组件是否存在,或者面板本身是否行为异常。这些仍然要问发行版所支持的前端以及与之匹配的插件包。把它们打包进重装,通常只会让面板保持原样,并在故事里多加一次重启。

一份有用的报告会写明桌面版本、连接类型、缺失的面板操作,以及配置文件能否通过受支持的接口看到或启用。描述一个缺失的菜单既不需要私钥,也不需要带凭据的配置文件。对维护者来说,这足以在不触碰任何凭据的情况下复现面板状态。

相关文章