让 OpenVPN 子网后面的服务器能够连接客户端

让 OpenVPN 子网后面的服务器能够连接客户端

我正在尝试寻找一些相关文档或 OpenVPN 服务器配置或客户端配置中需要哪些指令来适应这种用例。

我有一个客户端连接到的 OpenVPN 服务器。OpenVPN 服务器可以直接与任何客户端通信,这不是问题。客户端能够访问 OpenVPN 所在的私有子网上的任何机器,这也不是问题。我的问题是,目前无法进行反向操作 - 我的服务器与 OpenVPN 框位于同一子网上,无法访问任何连接的客户端。我希望能够通过 SSH 连接到它们以及更多,就像客户端可以访问 OpenVPN 子网后面的服务器一样。

我需要做什么才能实现这一点?我已经在 OpenVPN 框上设置了伪装规则:

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o eth0 -j MASQUERADE

IP 转发已启用:

echo 1 >/proc/sys/net/ipv4/ip_forward

我在私有子网后面的服务器上添加了一条路由,以便了解该路由:

192.168.50.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

我错过了什么?

答案1

OpenVPN 服务器和你的路由器一样吗?

如果不是这种情况,您必须设置静态路由以使用 OpenVPN 服务器到达 VPN 客户端。

因此,如果 OpenVPN 服务器的 IP 为 192.168.1.100,并且 OpenVPN 客户端为 192.168.50.0/24,那么您的路由器将需要类似以下内容:

route add -net 192.168.50.0 netmask 255.255.255.0 gw 192.168.1.100

或任何适当的语法。

答案2

客户端能够访问 OpenVPN 所在的私有子网上的任何机器,这也不是问题。我的问题是,目前无法实现反向操作 - 我的服务器与 OpenVPN 盒位于同一子网上,无法访问任何连接的客户端。

如果这是真的,则意味着路由完全正确。我怀疑防火墙(可能是在 OpenVPN 服务器上)阻止了该方向的流量。VPN服务器上的情况iptables -nvL如何?iptables -nvL -t nat

相关内容