本地 – >网关(只有ssh端口启用) – >远程
我可以SSH到网关,然后远程,没问题。
我可以通过gataway在本地和远程之间build立ssh隧道吗? 我想访问本地:9980,将通过网关转发到远程:9980。 我担心使用端口22的隧道将是他人ssh使用的麻烦。
谢谢
这取决于。
你的网关是一个真正的网关/路由器吗? 或者它是一个网关/服务器?
如果是网关/路由器,则可以使用端口转发或NAT。 我会给你说明,但这取决于操作系统/制造商。 本质上,你有网关/路由器监听端口22,你转发到destination:9980 ,只要目的地正在监听9980,这应该自动工作。
如果它是一个网关/服务器(假设基于Linux),那么你可以使用一个IPTABLES NAT规则,或者一个反向的ssh隧道(应该从目标端初始化)。
示例IPTABLES NAT:
iptables -t nat -I PREROUTING --src 0/0 -p tcp --dport 22 -j REDIRECT --to-destination $destination_ip --to-ports 9980
这将从端口22的任何地址接收任何传入stream量,并自动将其转发到端口9980上的$ destination_ip 。
示例反向SSH隧道:
destination# ssh -R 9980:localhost:22 user@gateway
这在网关上设置了一个监听器,该监听器映射任何进入gateway:9980的指向destination:22
对于你来说,如果你正常连接到你的网关:
local# ssh user@gateway
然后,您可以根据需要从网关手动连接到目标 ,而不是自动
gateway# ssh user@localhost:9980
如果我理解正确,你可以做一个SSH隧道remote通过你的gateway 。 要做到这一点:
ssh -L 9980:remote:9980 gateway
将通过网关使用ssh隧道将本地9980绑定到远程9980端口。