无法在 l2tp vpn 连接上 ping 其他本地 ip,获取:ping:sendmsg:没有这样的设备

无法在 l2tp vpn 连接上 ping 其他本地 ip,获取:ping:sendmsg:没有这样的设备

我已经使用 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 子网中,

  1. 这是我的 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
    
  2. 这是我的: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
    
  3. 我知道连接已建立,因为我获得了一个 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)
    
  4. 我需要访问的服务器的 IP 地址是:10.10.251.32,当我尝试使用特定于该接口的 ping 命令对其进行 ping 操作时:

    ping -I ppp0 10.10.251.32
    

我最终收到此错误:ping:sendmsg:没有这样的设备

  1. 我觉得这可能是某种子网问题,于是我同时使用多个客户端连接到 VPN,并获取了 10.10.2.120、10.10.2.114 等 IP,然后对每个客户端执行 ping 操作,结果都是一样的:ping:sendmsg:没有这样的设备。我连接了所有客户端,ifconfig 返回了正确的 IP 地址。

管理其他网络的人发誓这些 IP 地址已启动并正在运行。我不知道该怎么做。原谅我这个 Linux 新手。

  1. 以下是输出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

就是这样..在界面启动时设置路由,并启用转发。

相关内容