如何通过已建立的 L2TP 连接路由互联网流量?

如何通过已建立的 L2TP 连接路由互联网流量?

我正在努力连接,更重要的是,从Ubuntu路由流量服务器(这意味着网络管理器和任何 GUI 工具都是不可能的)到在完全不同的网络中的另一台 Ubuntu 机器上运行的 L2TP-IPSec VPN 服务器。

VPN 服务器设置在这个docker容器并且运行良好:我可以轻松地从我的 Ubuntu 台式笔记本电脑连接到它,几乎不需要任何额外的配置。

在阅读了许多文章后,我发现它们似乎都缺少了一些东西,于是我设法得出了一半的结果,我的方法是基于另一个 docker 容器。唯一的区别是,我将所有配置文件从容器中取出并直接在主机上运行所有内容。

# ipsec status
Security Associations (1 up, 0 connecting):
   L2TP-PSK[1]: ESTABLISHED 3 minutes ago, 192.168.234.5[192.168.234.5]...VPN-SERVER-IP[VPN-SERVER-IP]
   L2TP-PSK{1}:  INSTALLED, TRANSPORT, reqid 1, ESP in UDP SPIs: c36b6571_i ee9aeaf1_o
   L2TP-PSK{1}:   192.168.234.5/32[udp/l2f] === VPN-SERVER-IP/32[udp/l2f]

到目前为止,一切都很好。

运行下一对命令后

(sleep 3 && echo "c strong-vpn" > /var/run/xl2tpd/l2tp-control) &
/usr/sbin/xl2tpd -p /var/run/xl2tpd.pid -c /etc/xl2tpd/xl2tpd.conf -C /var/run/xl2tpd/l2tp-control -D

我得到以下输出

xl2tpd[17164]: Not looking for kernel SAref support.
xl2tpd[17164]: Using l2tp kernel support.
xl2tpd[17164]: xl2tpd version xl2tpd-1.3.10 started on mn-hdap05 PID:17164
xl2tpd[17164]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc.
xl2tpd[17164]: Forked by Scott Balmos and David Stipp, (C) 2001
xl2tpd[17164]: Inherited by Jeff McAdams, (C) 2002
xl2tpd[17164]: Forked again by Xelerance (www.xelerance.com) (C) 2006-2016
xl2tpd[17164]: Listening on IP address 0.0.0.0, port 1701
xl2tpd[17164]: Connecting to host VPN-SERVER-IP, port 1701
xl2tpd[17164]: Connection established to VPN-SERVER-IP, 1701.  Local: 21439, Remote: 14830 (ref=0/0).
xl2tpd[17164]: Calling on tunnel 21439
xl2tpd[17164]: Call established with VPN-SERVER-IP, Local: 21474, Remote: 10460, Serial: 1 (ref=0/0)
xl2tpd[17164]: start_pppd: I'm running:
xl2tpd[17164]: "/usr/sbin/pppd"
xl2tpd[17164]: "plugin"
xl2tpd[17164]: "pppol2tp.so"
xl2tpd[17164]: "pppol2tp"
xl2tpd[17164]: "7"
xl2tpd[17164]: "passive"
xl2tpd[17164]: "nodetach"
xl2tpd[17164]: ":"
xl2tpd[17164]: "debug"
xl2tpd[17164]: "file"
xl2tpd[17164]: "/etc/ppp/options.l2tpd.client"

此外,还出现了一个新的网络接口ppp0。路由表也发生了一些变化,最初是这样的

0.0.0.0         192.168.234.1   0.0.0.0         UG    0      0        0 bond0
192.168.234.0   0.0.0.0         255.255.255.0   U     0      0        0 bond0

对此

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
VPN-SERVER-IP   192.168.234.1   255.255.255.255 UGH   0      0        0 bond0
192.168.42.1    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.234.0   0.0.0.0         255.255.255.0   U     0      0        0 bond0

相比之下,在我的笔记本电脑上,当我连接到同一个 VPN 时,路由表会如下变化:

BEFORE
0.0.0.0         172.22.44.1     0.0.0.0         UG    600    0        0 wlp59s0
172.22.44.0     0.0.0.0         255.255.252.0   U     600    0        0 wlp59s0

AFTER
0.0.0.0         0.0.0.0         0.0.0.0         U     50     0        0 ppp0
0.0.0.0         172.22.44.1     0.0.0.0         UG    600    0        0 wlp59s0
VPN-SERVER-IP   172.22.44.1     255.255.255.255 UGH   600    0        0 wlp59s0
172.22.44.0     0.0.0.0         255.255.252.0   U     600    0        0 wlp59s0
172.22.44.1     0.0.0.0         255.255.255.255 UH    600    0        0 wlp59s0
192.168.42.1    0.0.0.0         255.255.255.255 UH    50     0        0 ppp0

我怀疑我的问题确实与路由表有关,但尝试在服务器上手动复制笔记本电脑上的路由表结构却没有帮助。如果在我的笔记本电脑上返回curl ifconfig.meVPN-SERVER-IP则在服务器上我通常无法访问任何主机。我能做的最好的就是pingcurlIP192.168.42.1并获得预期结果,确认我至少连接到了我的 VPN 服务器,但我的一般传出互联网流量肯定不会通过它。可能是什么问题?

相关内容