L2TP VPN连接不使用手动设置的IP地址

L2TP VPN连接不使用手动设置的IP地址

编辑(2022/01/03):

根据Douglas Kosovic的回答,更新到版本1.20.08确实可以解决这个问题。

为了完整性,我事先手动添加了存储库。

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

Ubuntu 版本 22.04 LTS

问题:

我正在尝试设置具有手动 IP 地址、网络掩码、网关和 DNS 的 L2TP VPN 连接。但是,当我连接到 VPN 时,不使用手动 IP 地址和网络掩码。

预期结果

IP 地址应为 XXX.XX.XX.124 格式,网络掩码应为 XXX.XXX.XXX.224。

实际结果

IP 地址的格式为 XXX.XX.XX.100,网络掩码的格式为 XXX.XXX.XXX.255。

其他信息

我通过已安装的 GUI 执行此操作network-manager-l2tp-gnome,并使用屏幕截图中显示的手动设置。 手动设置的截图

我过去曾从我的 Macbook 成功设置了相同的 VPN 连接,因此我认为不需要任何进一步的手动更改(例如路由)。

以下是输出ifconfig ppp0(我对 IP 地址和网络掩码进行了审查):

ifconfig ppp0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1400
        inet XXX.XX.31.100  netmask XXX.XXX.XXX.255  destination 1.0.0.1
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 6  bytes 1094 (1.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 132  bytes 14714 (14.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我对网络问题不太了解,所以如果我在编辑信息时过于谨慎,并且需要更多信息,请告诉我。(同样,如果我分享了太多,也请告诉我!)

谢谢!

答案1

NetworkManager-l2tp 设置一些 PPP 配置选项。

我相信您要执行的操作需要修改 NetworkManager-l2tp 源代码并设置以下 PPP 配置选项。摘自 PPP 配置选项页面https://ppp.samba.org/pppd.html

<local_IP_address>:<remote_IP_address>
设置本地和/或远程接口 IP 地址。可以省略其中任何一个。可以使用主机名或十进制点表示法指定 IP 地址(例如 150.234.56.78)。默认本地地址是系统的(第一个)IP 地址(除非noipdefault给出了选项)。如果未在任何选项中指定,则将从对等方获取远程地址。因此,在简单情况下,不需要此选项。如果使用此选项指定了本地和/或远程 IP 地址,则 pppd 将不会在 IPCP 协商中接受来自对等方的不同值,除非分别给出了ipcp-accept-local和/或ipcp-accept-remote选项。

先前的 ppp.samba.org 链接和 Linux pppd(8) 手册页未列出netmaskPPP 配置选项,但 OpenBSD pppd(8) 手册页列出了https://man.openbsd.org/pppd.8。 提炼:

netmask n
将接口网络掩码设置为 n,即“十进制点”表示法的 32 位网络掩码(例如 255.255.255.0)。如果给出了此选项,则指定的值将与默认网络掩码进行“或”运算。默认网络掩码是根据协商的远程 IP 地址选择的;它是适合远程 IP 地址类的网络掩码,与系统中位于同一网络上的任何非点对点网络接口的网络掩码进行“或”运算。(注意:在某些平台上,如果这是点对点接口的唯一合适值,则 pppd 将始终使用 255.255.255.255 作为网络掩码。)

编辑: NetworkManager-l2tp 源代码已更新,以提供对手动 IPv4 配置选项的支持;使用 pppd 的地址、网络掩码和网关,以及<local_IP_address>:<remote_IP_address>带有netmask以下提交的配置选项:ipcp-accept-localipcp-accept-remote

https://github.com/nm-l2tp/NetworkManager-l2tp/commit/bdd75014d5bd0212210c0a8c8b0d84376a6488fd

该提交基于 NetworkManager-sstp 的代码,其作者也是 pppd 的当前维护者。

相关内容