我想创建ssh隧道来访问API

时间:2019-07-23 10:20:20

标签: ssh ssh-tunnel

我有情况 我的本地机器是srv1 跳转服务器是srv2 运行API的目标服务器是srv3

因此,srv3的端口88上正在运行并可以访问一个API。我无法直接从本地计算机(即srv1)访问它。 但是,我可以从作为跳转服务器的sev2切换到此srv3。而且我可以从自己的服务器srv1 SSH到sev2。

现在,有什么方法可以从我的机器(即srv1)访问在端口88上srv3上运行的API吗?

提前谢谢您。

最好的问候, 阿米特·乔希

1 个答案:

答案 0 :(得分:0)

如果可以从srv3:88访问srv2,则可以进行简单的隧道传输。在srv1上执行

ssh -L 8888:srv3:88 srv2

(其中8888是大于或等于1024的任意数字)。连接持续期间,与srv1:8888的任何连接都将传输到srv3:88

如果您需要将隧道放在srv1:88上(其中881024下的任意数字),则您将需要以root用户身份运行上述命令,因为只有root用户可以绑定特权端口。

如果只能从srv3:88访问srv3,则需要使其更加复杂:

ssh -oProxyCommand="ssh srv2 -W %h:%p" -L 8888:localhost:88 srv3

(您还可以添加-N选项以不运行外壳程序-因此,您可以使用exit来代替使用^D^C停止隧道)

相关问题