我已经使用 xl2tp 设置了一个 l2tp 客户端,以连接到 l2tp vpn 服务器。服务器连接要求在不使用 ipsec 的情况下设置连接。因此,我设置了一个基本的 xl2tp 连接。连接似乎可以正常工作,我从 vpn 服务器获取了一个 IP 地址,当我运行 ifconfig 时可以看到该地址。但是,我无法 ping 所连接的网络上的任何 IP,该网络上有一个我需要连接的特定 IP:10.10.251.32,但是当我尝试连接时,出现此错误:“ping:sendmsg:没有这样的设备”。我尝试使用命令 ping:ping -I ppp0 10.10.251.32。我曾尝试从其他机器连接到 vpn,分配给我的 ip 地址例如为:10.10.2.163、10.10.2.120 或 10.10.2.114,均位于 10.10.2.xxx 子网中,
这是我的 xl2tpd.conf:
[global] access control = no auth file = /etc/ppp/chap-secrets debug avp = no debug network = no debug packet = no debug state = no debug tunnel = no [lac vpn-connection] lns = xx.xx.32.43 redial = yes redial timeout = 5 require chap = yes require authentication = yes ppp debug = no pppoptfile = /etc/ppp/options.l2tpd require pap = no autodial = yes name = thename
这是我的:options.l2tpd
ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth idle 1800 mtu 1410 mru 1410 defaultroute usepeerdns debug lock connect-delay 5000 name xxxxxx password xxxxx
我知道连接已建立,因为我获得了一个 ppp0 接口和一个 ip 地址:
ppp0 Link encap:Point-to-Point Protocol inet addr:10.10.2.115 P-t-P:xx.xx.32.43 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1410 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:98 (98.0 B) TX bytes:110 (110.0 B)
我需要访问的服务器的 IP 地址是:10.10.251.32,当我尝试使用特定于该接口的 ping 命令对其进行 ping 操作时:
ping -I ppp0 10.10.251.32
我最终收到此错误:ping:sendmsg:没有这样的设备
- 我觉得这可能是某种子网问题,于是我同时使用多个客户端连接到 VPN,并获取了 10.10.2.120、10.10.2.114 等 IP,然后对每个客户端执行 ping 操作,结果都是一样的:ping:sendmsg:没有这样的设备。我连接了所有客户端,ifconfig 返回了正确的 IP 地址。
管理其他网络的人发誓这些 IP 地址已启动并正在运行。我不知道该怎么做。原谅我这个 Linux 新手。
以下是输出
ip ro show
:default via xx.31.32.1 dev eth0 xx.xx.32.43 dev ppp0 proto kernel scope link src 10.10.2.125 xx.31.32.0/20 dev eth0 proto kernel scope link src xx.31.36.249
答案1
总之,这是路由问题,我需要在 /etc/ppp/ip-up.d 文件夹中添加一个脚本,这个名为 routes.sh 的脚本将在 vpn/ppp 接口启动时运行。
/etc/ppp/ip-up.d/路由
#!/bin/bash
route add -net 10.10.251.32 netmask 255.255.255.255 dev ppp0
route add -net 10.10.247.1 netmask 255.255.255.255 dev ppp0
exit
然后我还需要在 sysctl.conf 中启用 ipforwarding,命令如下:net.ipv4.ip_forward = 1
就是这样..在界面启动时设置路由,并启用转发。