使用 IPTABLES 将端口转发到 VPN 客户端

使用 IPTABLES 将端口转发到 VPN 客户端

我已经挣扎了将近半年的时间,并且阅读了几乎所有互联网上的解决方案,但都没有奏效。

目前的解决方案也来自不同的文章,如下所示:

iptables -t nat -A PREROUTING -p tcp --dport 2254 -j DNAT --to-destination 10.8.8.2:22

iptables -t nat -A POSTROUTING -p tcp -d 10.8.8.2 --dport 22 -j SNAT --to-source publicIP

我的 vpns 客户端在哪里10.8.8.2,我可以从我的 iptables vps 对其进行 ping 和 ssh 操作。

我想将端口 2254 从外界转发到我的 vpns 客户端(家用电脑),使用端口 2254 上的公共 IP 到带有 ssh 端口 22 的 vpns ip(10.8.8.2)。

例如:

ssh user@publicIP -p 2254

net.ipv4.ip_forward=1已经启用。

答案1

--to-source IP 需要是您的 VPS 的 vpn-ip - 也许是 10.8.8.1?

否则,它会通过隧道发送数据包,并通过公共网络从不同的 IP 接收答复,从而忽略它。

您还可以使用 MASQUERADE 代替 SNAT - 这会自动使用传出接口的 IP。

相关内容