我已经挣扎了将近半年的时间,并且阅读了几乎所有互联网上的解决方案,但都没有奏效。
目前的解决方案也来自不同的文章,如下所示:
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。