Ubuntu 22.04 上 Cisco VPN 的 Add 按钮变灰:修复方法
Ubuntu 22.04 的 vpnc 表单要求填写旧版本忽略的隧道接口名。先在 Advanced 中设置,然后把高级页面应用两次。
你填好了网关、组名、组密码和登录凭据,Add 按钮却始终是灰的。没有任何字段被高亮,也没有任何提示说明缺了什么,所以最自然的结论是密码错误或网关地址不对。两者都不是。Ubuntu 22.04 的对话框会校验一个旧版本并不要求的字段,而这个字段藏在一个大多数人从不打开的分页里。下面是能成功保存配置文件的顺序,以及对话框仍然拒绝时该怎么做。
第 1 步:先打开 Advanced,再去排查错误
缺失的值是隧道接口名,它位于 Advanced 之下,并且没有任何标记。像往常一样填好主页面,然后打开 Advanced,把接口名设为 tun0 ,再按 Add。如果按钮依然不可用,你遇到的不是新问题,而是同一个校验问题的后半段,所以直接进入下一步,不要重新输入凭据。这是 22.04 软件包里的表单缺陷,与账户或网关无关。
如果你已经处在 nm-connection-editor里,同一个页面叫 Advanced,而你要启用的按钮是 Save。
第 2 步:把高级页面应用两次
在打开 nm-connection-editor 的情况下,新建一个 Cisco Compatible VPN (vpnc) 连接,填好网关和组字段,设置隧道接口名,然后在该高级页面上按 Apply。接着再按一次 Apply,或者勾选再取消混合认证选项,这会强制表单重新校验。在我做过的机器上,Save 在第一次 Apply 之后仍是不可用的,只有走完这第二遍才会重新启用。
第二次 Apply 不是迷信。它区分的是一个真正校验过高级页面的对话框,和一个只把该页面存下来的对话框。
第 3 步:保存之后找到配置文件
已保存的 vpnc 配置文件可能不出现在 GNOME Settings 列表里,这会让一次成功的修复看起来像失败。改去系统菜单里查看,连接通常在那里,可以正常选中或编辑。如果两处都没有,就彻底关闭编辑器并重建配置文件,而不是去编辑那个保存了一半的。
一旦连上,该配置文件就是普通的 NetworkManager 连接,所以后续编辑仍走同一个编辑器,同一个怪毛病也可能再次出现。
如果对话框仍然拒绝,就手写一个 vpnc 配置文件
对服务器,以及已经被这个表单磨光耐心的人来说,命令行客户端更合适。按 vpnc 期望的字段建一个配置文件,因为它含有组密钥,所以要设为只有 root 可读,然后用客户端自己的命令连接和断开:
IPSec gateway vpn.example.net
IPSec ID GROUPNAME
IPSec secret GROUPSECRET
IKE Authmode psk
Xauth username your.name
Xauth password YOURPASSWORD以 600 权限 /etc/vpnc/work.conf 保存为文件,运行 sudo vpnc work.conf 来连接,运行 sudo vpnc-disconnect 来断开。脚本在连接过程中会安装路由和 resolver 设置,这很方便,同时也意味着一次失败的断开可能留下残留状态。
要验证隧道,而不是按钮
连接之后确认三件事:接口存在、远端子网有路由、远端网络内的一个名字能解析。然后断开,并确认路由和 resolver 条目都已消失,这样下一次连接是从干净状态开始,而不是从残留开始。如果路由表没变却报告连接成功,那它并没有真正完成工作。
不要因为对话框里一个按钮不可用就重装系统。对校验缺陷来说这是过大的反应,而且它并不改变表单的要求。
记下你保存的配置文件需要的是哪个字段。以后的编辑器版本可能不再要求它,而这条记录能告诉下一个人这个值为什么在这里。