我在 ubuntu vserver 上,想要将客户端端口转发到通过 ssh 连接的主机,并且已将 putty 配置为远程端口转发端口 1802。
我想要实现的目标:我希望我的虚拟服务器充当应用程序给定端口的代理。我希望能够使用该端口连接到我的虚拟服务器,但重定向到反向代理(主机):
客户端 A <== xxxx:1802 ==> vserver(端口转发)<== 反向代理/ssh 连接 ==> 主机
我已经拥有的:主机已经使用 putty 进行了远程端口转发,并建立了与我的虚拟服务器的 ssh 连接。我所缺少的只是端口转发,这样使用指定端口连接到虚拟服务器的客户端就会被 DNAT 到主机。
这是我迄今为止尝试过的:我尝试添加listen 1802;
我的 nginx 服务器配置,但根本不起作用(我想我漏掉了配置proxy_pass
)。然后我尝试使用 iptables:
iptables -t nat -A PREROUTING -i -p udp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables -t nat -A PREROUTING -i -p tcp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables-save
但我不确定该--to-destination
参数。另外,我省略了该-i
值,以便所有接口都用于 iptables 条目。
答案1
就我而言,需要添加GatewayPorts yes
。/etc/ssh/sshd_config
重新启动 ssh 还不够,我必须重新启动 vserver - 然后它才能正常工作。我甚至不需要任何特殊的 iptables 条目,因为所有端口都已处于 ACCEPT 状态。