为什么我无法访问 OpenVPN 服务器后面的局域网中的计算机?

为什么我无法访问 OpenVPN 服务器后面的局域网中的计算机?

在 ESXI 服务器上,我有几个虚拟机:一个具有外部 IP 地址(和互联网访问),配置为 NAT(并扮演 OpenVPN 服务器角色),还有几个 VLAN 中的虚拟机(使用 192.168.182.*/28 IP 地址)。

我已经按照 debian 文档中所述设置了 OpenVPN 服务器和客户端,以访问那些 VLAN 虚拟机。

目前我正在运行(tun)OpenVPN 服务器和客户端,我可以通过 tun0 接口互相 ping 。

问题是我无法从 ESXI VLAN 中的 OpenVPN 客户端机器 ping 通。您能建议一种修复方法吗?

OpenVPN客户端路由表:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         88.198.179.46   0.0.0.0         UG    0      0        0 eth0
10.9.8.1        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
88.198.179.40   0.0.0.0         255.255.255.248 U     0      0        0 eth0

OpenVPN服务器路由表:

default         static.193.120. 0.0.0.0         UG    0      0        0 eth0
10.9.8.2        *               255.255.255.255 UH    0      0        0 tun0
46.4.120.192    *               255.255.255.224 U     0      0        0 eth0
192.168.182.16  *               255.255.255.240 U     0      0        0 eth1

据我了解,我必须将 OpenVPN 服务器上的数据包路由到 192.168.182.*/28 VLAN。

我已使用以下命令启用了 ipv4 转发: echo "1" > /proc/sys/net/ipv4/ip_forward

我已向 iptables 添加了以下规则(88.198.179.41/29 是客户端 ip/子网),但这没有帮助:

*nat
-A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 46.4.120.218
COMMIT

*filter
-A FORWARD -s 192.168.182.0/24 -d 88.198.179.41/29 -j ACCEPT
-A FORWARD -d 192.168.182.0/24 -s 88.198.179.41/29 -j ACCEPT
COMMIT

也许我必须在 VPNClient 上定义一些路线?

答案1

您没有发布您的 openvpn 配置,但我猜您错过了到 LAN 其余部分的路由:

push "route 192.168.182.0 255.255.255.240"

这将在客户端连接时添加必要的路由。另外,请确保 LAN 上的其他客户端知道使用 OpenVPN 服务器作为 OpenVPN 网络的网关。

相关内容