使用 OpenVPN 客户端进行端口转发

kym*_*886 4 linux port-forwarding openvpn

我遇到了使用 VPN 客户端进行端口转发所描述的相同问题,但没有成功。

我有一个 OpenVPN 访问服务器版本 2.5 和一个配置了站点到站点路由的客户端。客户端和服务器都可以使用私有IP地址相互通信。在客户端,有一个 Apache 服务器监听端口 8081。

目标是能够连接到OpenVPN服务器的公网IP,并让它将连接转发到客户端,以便用户可以访问后面的Apache服务器

我当前的设置是:

在此输入图像描述

sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -d 50.xxx.xxx.xxx -p tcp --dport 8081 -j DNAT --to-dest 192.168.2.86:8081

iptables -t nat -A POSTROUTING -d 192.168.2.86 -p tcp --dport 8081 -j SNAT --to-source 10.0.2.42

有什么简单的事情我做错了吗?谢谢。

kym*_*886 5

该问题与 iptables 规则有关。通过添加以下规则,一切都会按预期进行:

iptables -t nat -I PREROUTING 1 -d {SERVER_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j DNAT --to-dest {CLIENT_LOCAL_IP_ADDRESS}:{CLIENT_PORT}

iptables -t nat -I POSTROUTING 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j SNAT --to-source {VPN_GATEWAY_IP}

iptables -I FORWARD 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j ACCEPT