OpenVPN 端口转发在 VPS 到 Linux 客户端上不起作用

OpenVPN 端口转发在 VPS 到 Linux 客户端上不起作用

经历了几个 Superuser 和 ServerFault 问题,我无法让它工作iptables。我正尝试12345通过在我的 Linux VPS(当前在 Ubuntu 18.04 上)上运行的 OpenVPN 将特定端口转发到连接的客户端(也是 Ubuntu 18.04)。对于以下所有示例,VPS 的外部 IP 是, OpenVPN 网络上的 VPS 和客户端123.45.67.89的内部 IP 是。(请注意,这是一个 NAT VPS,我只有几个端口可以使用,以防万一,但我可以充分利用分配给我的端口。)10.8.0.110.8.0.2

我在 VPS 上尝试了以下操作,

iptables -I FORWARD 1 -d 10.8.0.2 -p tcp --dport 12345 -j ACCEPT
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p tcp --dport 12345 -j SNAT --to-source 10.8.0.1
iptables -I FORWARD 1 -d 10.8.0.2 -p udp --dport 12345 -j ACCEPT
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 12345 -j SNAT --to-source 10.8.0.1

也,

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12345 -j DNAT --to-destination 10.8.0.2
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 12345 -j DNAT --to-destination 10.8.0.2

但在所有这些之后,在线端口检查器仍然报告端口12345已关闭。

我也尝试过从 VPStelnet 10.8.0.2 12345输出以下内容,

Trying 10.8.0.2...
Connected to 10.8.0.2.
Escape character is '^]'.
Connection closed by foreign host.

telnet 10.8.0.2 8945与(或任何其他我没有运行服务的端口)输出相比,

Trying 10.8.0.2...
telnet: Unable to connect to remote host: Connection refused

任何帮助都非常感谢。我基本上没有经验,iptables所以我尝试按照各种指南来让它工作,但没有一个能打开端口。

谢谢

答案1

通过在我的 VPS 上重新安装 Ubuntu 解决了这个问题(许多iptables可能配置错误的规则可能会破坏原本有效的新规则)。重新安装后,以下iptables规则有效,

iptables -t nat -A PREROUTING -p tcp --dport 12345 -j DNAT --to-destination 10.8.0.2:12345

相关内容