你添加一个 VPN 连接,在列表里找 L2TP/IPsec,却没有这一项。或者有,配置文件也能保存,连接却带着一条关于插件的消息断掉。两种症状都指向一组各自独立安装的软件包,而对话框只让你看到最后一段。安装任何东西之前,先理清这些零件。

从整组软件包开始,而不是从菜单

当管理器能找到声明该 VPN 类型的插件时,这个选项才会出现。这个插件在运行时又需要 L2TP 守护进程和 IPsec 实现,还需要为链路本身准备 PPP 模块。每一件都是独立软件包,有自己的依赖链,而发行版可能只交付部分完整的组合。单装一个 IPsec 守护进程不会给列表增加任何东西,因为管理器并不找它。先读已安装的插件,再往下走。

菜单里缺一项,是打包问题。它几乎从来不是配置问题,尽管感觉很像。

编辑和运行是两个不同的包

服务插件负责建立连接,编辑组件则让桌面设置窗口能够显示并保存协议选项。两者分开打包,有些发行版会只给其中一个。结果就是连接确实存在、能从命令行启动,却无法在图形工具里编辑。

选包名之前,先看正在运行的桌面环境。GNOME 的编辑组件和 KDE 前端不是同一个包,发行版也可能把两者中的任何一个改名。名字要从该发行版自己的软件包列表里取。

PPP 插件放在带版本号的路径下

L2TP 运行在 PPP 之上,服务加载的插件是针对特定 PPP 版本编译的,所以它放在以该版本命名的目录里。把旧路径写死的教程,描述的是它写就时那台机器。如果这里的版本不同,命令抄得再仔细也找不到插件。

这就是选择发行版软件包而不是照抄构建的最强理由。软件包维护者会跟进这个路径;照抄来的 configure 命令不会。

协商失败不是安装失败

当选项存在、配置也能保存之后,接下来的失败属于另一类问题。对端拒绝认证,是 IPsec 后端在明确告诉你一件事。

重装任何东西之前,先读后端自己的日志。管理器的日志会显示插件交棒、IPsec 守护进程报告停下的原因,这两行合起来就能指出是哪一侧拒绝的。重装编辑器修不好被拒绝的预共享密钥,重装插件也修不好一个期待不同提议的服务器。动手碰软件包之前,先在笔记里把层次分开。

两个秘密,两个字段

IPsec 认证和用户的 PPP 登录是两件互不相关的秘密,只是恰好放在同一个对话框里。一个认证机器,另一个认证人对 L2TP 服务的身份,服务器可以接受其中一个而拒绝另一个。

把账户密码填进 PPP 字段,把共享密钥填进 IPsec 字段,然后看日志抱怨的是哪一个。因为两个输入框都被遮住,就把密码抄进共享密钥框,是常见而且完全无声的错误。记下你最终用到的软件包版本,因为下一台机器需要同样的组合,而对话框不会告诉任何人它是什么。

相关文章