我有情况 我的本地机器是srv1 跳转服务器是srv2 运行API的目标服务器是srv3
因此,srv3的端口88上正在运行并可以访问一个API。我无法直接从本地计算机(即srv1)访问它。 但是,我可以从作为跳转服务器的sev2切换到此srv3。而且我可以从自己的服务器srv1 SSH到sev2。
现在,有什么方法可以从我的机器(即srv1)访问在端口88上srv3上运行的API吗?
提前谢谢您。
最好的问候, 阿米特·乔希
答案 0 :(得分:0)
如果可以从srv3:88
访问srv2
,则可以进行简单的隧道传输。在srv1
上执行
ssh -L 8888:srv3:88 srv2
(其中8888
是大于或等于1024
的任意数字)。连接持续期间,与srv1:8888
的任何连接都将传输到srv3:88
。
如果您需要将隧道放在srv1:88
上(其中88
是1024
下的任意数字),则您将需要以root用户身份运行上述命令,因为只有root用户可以绑定特权端口。
如果只能从srv3:88
访问srv3
,则需要使其更加复杂:
ssh -oProxyCommand="ssh srv2 -W %h:%p" -L 8888:localhost:88 srv3
(您还可以添加-N
选项以不运行外壳程序-因此,您可以使用exit
来代替使用^D
或^C
停止隧道)