20
2月
2026
15:00

排查 L2TP/IPsec 连接错误 "Could not add IPsec connection" 和 "no acceptable traffic selectors found"

20 2月 2026 15:00

升级到基于 Ubuntu 24.04 LTS “Noble” 的 Linux Mint 22.3 “Zena” 后,我与家庭网络的 L2TP/IPsec VPN 连接停止工作了。以下是解决方法。

注意

本文介绍如何连接到我使用 L2TP/IPsec (IKEv1) 类型的家庭 VPN。

我之前曾使用这个 VPN 隧道,通过 SoundWire 应用将收音机扬声器的音频流传输到我的智能手机

本文并非 VPN 网络技术的广告,而是介绍 Linux 操作系统的一个技术问题的解决方案。

简介

尝试连接到基于 IPsec 的 L2TP VPN 时,journalctl 日志中会出现“无法添加 IPsec 连接。”** 错误。似乎是尝试连接 VPN,但几秒钟后断开连接。VPN 连接重置为有线连接,但没有显示任何错误消息。

journalctl 日志显示 NetworkManager 警告“未找到可接受的流量选择器。”** 在基于 Linux Mint 21.3 的 Linux Green 操作系统上连接 L2TP/IPsec VPN 不会出现此错误。Linux Mint 22.3 和 21.3 中的连接参数相同。

0. 出现问题的 Linux 版本

lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description:    Linux Mint 22.3
Release:        22.3
Codename:       zena

1. NetworkManager“L2TP”插件更新

此更新并未修复 NetworkManager 的 bug,但可确保 L2TP/IPsec VPN 连接正常工作。

Linux Mint 系统中的 networkmanager-l2tp 插件版本过旧。我已将其更新至最新版本:

1.1 将 ppa:nm-l2tp/network-manager-l2tp PPA 软件源添加到系统中:

sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp

1.2 添加存储库签名密钥

gpg --keyserver keyserver.ubuntu.com --recv 80B70870665AB177
gpg --export 80B70870665AB177 | sudo tee /etc/apt/trusted.gpg.d/networkmanager-l2tp.gpg > /dev/null

networkmanager 仓库密钥已保存到密钥环中的 networkmanager-l2tp.gpg/ 文件中。

1.3 编辑 networkmanager-l2tp 仓库描述文件,该文件包含在当前版本的 Linux Mint 中 /etc/apt/sources.list.d/nm-l2tp-network-manager-l2tp-noble.list:

cd /etc/apt/sources.list.d/
ls
sudo nano nm-l2tp-network-manager-l2tp-noble.list 

在文件中,我将“signed-by”行从 noble/keyrings 替换为 /etc/apt/trusted.gpg.d/networkmanager-l2tp.gpg :

deb [signed-by=/etc/apt/trusted.gpg.d/networkmanager-l2tp.gpg] https://ppa.launchpadcontent.net/nm-l2tp/network-manager-l2tp/ubuntu noble main

sudo apt update
sudo apt upgrade

1.4 重新安装“networkmanager-l2tp”软件包

sudo apt install --reinstall network-manager-l2tp network-manager-gnome

新版 networkmanager-l2tp 插件与旧版在视觉上的区别在于文本字段带有渐变或阴影效果。

2. 用 StrongSwan 替换 LibreSwan 包

由于许多指南都建议用 StrongSwan 替换 LibreSwan,我也采用了相同的方法。

sudo apt remove libreswan

移除 libreswan 软件包后,将自动安装用于 IPsec/L2TP VPN 的 StrongSwan 组件。

3. 编辑 /etc/strongswan.conf 配置文件

sudo nano /etc/strongswan.conf

文件应该如下所示:

# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details
#
# Configuration changes should be made in the included files

charon {
        load_modular = yes
        plugins {
                include strongswan.d/charon/*.conf
        }
}

include strongswan.d/*.conf

默认值 load_modular = no 已被替换为 load_modular = yes。启用 load_modular 后,插件列表将根据每个插件特定的加载设置动态生成。此列表将完全替换编译期间生成的列表。来源

按下 Ctrl+O,Ctrl+X。

可以看到,strongswan.conf 文件引用了 strongswan.d 子目录中的配置文件。

4. 编辑 /etc/strongswan.d/charon.conf 配置文件

sudo nano /etc/strongswan.d/charon.conf

找到名为“cisco_unity”的行,并将其值从“yes”改为“no”,然后删除行首的注释符号(#)。修改后应如下所示:

cisco_unity = no

这行代码禁用了 Cisco 标志,这会影响 L2TP/IPsec (IKEv1) 连接的建立。

去掉注释行的 charon.conf 文件内容如下:

charon {
cisco_unity = no
    crypto_test {
    }
    host_resolver {
    }
    leak_detective {
    }
    processor {
        priority_threads {
        }
    }
    start-scripts {
    }
    stop-scripts {
    }
    tls {
    }
    x509 {
    }
}

保存文件:Ctrl+O,Ctrl+X。

5. 创建文件 /etc/strongswan.d/charon/unity.conf

如果该文件不存在,请创建它:

sudo nano /etc/strongswan.d/charon/unity.conf
unity {

    # Whether to load the plugin. Can also be an integer to increase the
    # priority of this plugin.
    load = no
}

按下 Ctrl+O,Ctrl+X。

我们看到 Unity 加载已禁用:load=no。Unity 插件为 Cisco Unity Extensions for IKEv1 协议的部分功能提供 libcharon 支持。

6. 诊断

标准的 journalctl -xe 命令无法提供完整的 NetworkManager 错误信息。如果连接无法建立,日志仅显示一条消息:“无法添加 IPsec 连接。”,而未说明原因。

在另一个终端窗口中,运行以下命令以显示详细的 NetworkManager 日志:

sudo journalctl -f 20 --no-hostname _SYSTEMD_UNIT=NetworkManager.service + _COMM=kl2tpd + SYSLOG_IDENTIFIER=pppd

7. 测试连接

要“启动”连接,请在终端中运行以下命令

sudo nmcli c up --ask "VPN IPsec"

其中,“VPN IPsec”是 L2TP/IPsec 连接的名称。或者,您也可以通过系统托盘(时钟附近)中的 NetworkManager 插件图形界面启用 VPN 连接。

如果连接成功,nmcli 将在终端中显示以下消息:
"Connection successfully activated (active D-Bus path: /org/freedesktop/NetworkManager/ActiveConnection/18)"

或者,屏幕上方角落会短暂弹出一条消息,指示连接成功。系统托盘中的以太网连接图标会变为锁形图标。

如果连接失败,请检查 NetworkManager 的扩展日志(在当前终端窗口或其他终端窗口中):

sudo journalctl -f 20 --no-hostname _SYSTEMD_UNIT=NetworkManager.service + _COMM=kl2tpd + SYSLOG_IDENTIFIER=pppd

成功连接到 L2TP/IPsec (IKEv1) VPN 后,终端窗口会定期显示有关“保持连接”数据包的消息。

 

来源:



相关出版物