访问 VPN 服务器上的客户端 LAN

Bhu*_*han 5 networking router vpn routing openvpn

到目前为止,我已经成功地在 DigitalOcean 上安装了 OpenVPN 服务器,并在 Raspberry Pi 上安装了 OpenVPN 客户端。我的 Raspberry Pi 的 OpenVPN IP 是 10.8.0.6,我可以从 OpenVPN 服务器 ping 通。现在这个 RPi 通过 IP 10.1.2.14 连接到 LAN 网络(网关 10.1.1.253,子网掩码:255.255.252.0)。有另一个 Linux 系统连接到这个客户端(RPi)的网络,它的 IP 是 10.1.2.2。

现在我想通过 VPN 从 OpenVPN 服务器访问 10.1.2.2。谁能解释一下我该怎么做?

编辑:根据@masgo 的建议,我做了以下

  1. server.conf文件中,添加client-config-dir /etc/openvpn/ccd, route 10.1.0.0 255.255.252.0push "route 10.1.0.0 255.255.252.0"
  2. 在 /etc/openvpn/ccd/lappy 文件中,添加 iroute 10.1.0.0 255.255.252.0
  3. 现在我可以从 OpenVPN 服务器 ping 到 ip 10.1.2.14(OpenVPN 的客户端),但不能 ping 到 ip 10.1.2.2。我在客户端路由中缺少什么?

Mar*_*iae 3

两件事情:

  1. 您确定您的本地网络正常吗?如果网关为 10.1.1.253,网络掩码为 255.255.255.252,则 PC 10.1.2.2 和 10.1.2.14与网关不在同一网络上

  2. 来自 Ocean 服务器的数据包带有 OpenVPN 隧道另一端的 IP 地址,大概是 10.8.0.1。当到达 10.1.2.2 时,它会发现它属于与自己不同的子网,因此将尝试以它知道的唯一方式转发其回复,通过网关,而不是通过 OpenVPN 客户端。因此,返回 ping 永远不会返回。

    避免这种情况的方法是iptables在 RPI 上添加以下规则:

    iptables -t nat -A POSTROUTING -d (here your local network) -j MASQUERADE
    
    Run Code Online (Sandbox Code Playgroud)

    这样数据包将被发送回 OpenVPN 客户端。我没有插入您的网络,因为不清楚是哪一个:如果是10.1.2.0/30,请插入该网络,或进行相应修改。