Xerus - 缺少网络管理器的 L2TP 插件?

Nop*_*rrl 8 openvpn 16.04

在我的 Windows 7 机器上,我使用 Cisco AnyConnect 远程访问我的工作场所网络。现在和 Xerus 一起玩。我使用 nmcli 设置了 L2TP VPN 连接,但激活它的运气并不好:

root@hannahdesktop:~# nmcli connection up work-VPN Error: Connection activation failed: The VPN service 'org.freedesktop.NetworkManager.l2tp' was not installed.
Run Code Online (Sandbox Code Playgroud)

我似乎找不到应该包含它的包。安装 xl2tpd 和 strongswan 没有帮助。以下是我可以使用的网络管理器插件的完整列表:

root@hannahdesktop:~# apt-cache search network-manager
network-manager - network management framework (daemon and userspace tools)
network-manager-dev - network management framework (development files)
network-manager-gnome - network management framework (GNOME frontend)
network-manager-pptp - network management framework (PPTP plugin core)
network-manager-pptp-gnome - network management framework (PPTP plugin GNOME GUI)
network-manager-iodine - network management framework (iodine plugin core)
network-manager-iodine-gnome - network management framework (iodine plugin GNOME GUI)
network-manager-openconnect - network management framework (OpenConnect plugin)
network-manager-openconnect-gnome - network management framework (OpenConnect plugin GNOME GUI)
network-manager-openvpn - network management framework (OpenVPN plugin core)
network-manager-openvpn-gnome - network management framework (OpenVPN plugin GNOME GUI)
network-manager-ssh - network management framework (SSH plugin core)
network-manager-ssh-gnome - network management framework (SSH plugin GNOME GUI)
network-manager-strongswan - network management framework (strongSwan plugin)
network-manager-vpnc - network management framework (VPNC plugin core)
network-manager-vpnc-gnome - network management framework (VPNC plugin GNOME GUI)
mate-gnome-main-menu-applet - GNOME start menu applet for MATE
strongswan-nm - strongSwan plugin to interact with NetworkManager
Run Code Online (Sandbox Code Playgroud)

我尝试安装第三方 VPN 客户端并设置它们而不是网络管理器,但是我测试的两个(Ike 和另一个)在安全设置方面非常冗长。我所拥有的只是 vpn 服务器地址、我的用户名、密码和 NT 域。如果 Network-Manager 不再支持 L2TP,我很乐意尝试另一个客户端,但可能需要 ELI5 手册。任何提示将不胜感激

小智 12

不确定在问这个问题 6 个月后人们是否仍然感兴趣,但我想我有一个解决方案。这在 Kubuntu 16.10 上对我有用。

编译

正如 user563731 提到的,network-manager-l2tp 插件在 Ubuntu 或 Debian 存储库中不可用,必须从源代码编译。

  1. 安装编译所需的包:

    sudo apt install git intltool libtool network-manager-dev libnm-util-dev libnm-glib-dev libnm-glib-vpn-dev libnm-gtk-dev libnm-dev libnma-dev ppp-dev libdbus-glib-1-dev libsecret-1-dev libgtk-3-dev libglib2.0-dev xl2tpd strongswan
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从 network-manager-l2tp GitHub 仓库下载源代码,进入新创建的目录:

    git clone https://github.com/nm-l2tp/network-manager-l2tp.git
    cd network-manager-l2tp
    
    Run Code Online (Sandbox Code Playgroud)
  3. 运行从存储库下载的 autogen.sh 脚本:

    ./autogen.sh
    
    Run Code Online (Sandbox Code Playgroud)
  4. 配置 README 文件中为 Debian/Ubuntu 指定的编译选项:

    ./configure \
    --disable-static --prefix=/usr \
    --sysconfdir=/etc --libdir=/usr/lib/x86_64-linux-gnu \
    --libexecdir=/usr/lib/NetworkManager \
    --localstatedir=/var \
    --with-pppd-plugin-dir=/usr/lib/pppd/2.4.7
    
    Run Code Online (Sandbox Code Playgroud)
  5. 用 make 编译。这可能要花点时间:

    make
    
    Run Code Online (Sandbox Code Playgroud)
  6. 将生成的文件复制到适当的位置。据我所知,尽管make进程创建了大量文件,但只需要复制 4 个文件:

    cp nm-l2tp-service.name /usr/lib/NetworkManager/VPN/
    cp nm-l2tp-service.conf /etc/dbus-1/system.d/
    cp src/nm-l2tp-service /usr/lib/NetworkManager/
    cp src/.libs/nm-l2tp-pppd-plugin.so /usr/lib/pppd/2.4.7/
    
    Run Code Online (Sandbox Code Playgroud)

其他解决方法和故障排除

我只列出我遇到的问题。如需其他故障排除,请务必查看下方“来源”部分中的链接。

AppArmor 拒绝访问卡戎或中风

连接时,您可能会在 /var/log/syslog 中看到“apparmor DENIED /usr/lib/ipsec/charon”或“从套接字读取失败:权限被拒绝”的错误。解决方法是禁用卡戎和中风的 AppArmor 配置文件:

sudo ln -s /etc/apparmor.d/usr.lib.ipsec.charon /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.charon
sudo ln -s /etc/apparmor.d/usr.lib.ipsec.stroke /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.stroke
Run Code Online (Sandbox Code Playgroud)

端口 1701 繁忙,请使用临时端口

出现在 /var/log/syslog 中的此错误表示 xl2tpd 已在运行。确保守护进程没有运行:

systemctl stop xl2tpd
Run Code Online (Sandbox Code Playgroud)

然后禁用它以确保它不会在下次重新启动时再次启动:

systemctl disable xl2tpd
Run Code Online (Sandbox Code Playgroud)

network-manager-l2tp 插件喜欢按需启动和停止这个守护进程,所以最好禁用它。

我遇到的小问题,我没有解决方案,但并不太可怕

  • 在 VPN 连接期间,/var/log/syslog 充斥着“xl2tpd:network_thread:无法找到处理数据包的呼叫或隧道”。我不知道这意味着什么或如何解决它。
  • 当 VPN 断开连接时,它会留下一个“ppp0”网络接口。重新连接时,它会创建一个新的“ppp1”网络接口。它似乎无限期地执行此操作,并且在您重新启动之前不会删除其中任何一个。
  • VPN 隧道另一端的远程 DNS 服务器不会自动分配。我必须手动将我的 DNS 设置添加到连接设置中的“IPv4”选项卡。

来源


小智 1

NetworkManager-l2tp 是 NetworkManager 1.2 的 VPN 插件,它提供对 L2TP 和 L2TP/IPsec(即 L2TP over IPsec)连接的支持。

目前,您需要从源代码构建network-manager-l2tp,请参阅: