我想创建 ssh 隧道来访问 API
I want to create ssh tunnel to access API
我有场景
我的本地机器是 srv1
跳转服务器是srv2
API是运行的目标服务器是srv3
所以,有一个 API 是 运行 并且可以在端口 88 的 srv3 上访问。我无法直接从我的本地计算机(即 srv1)访问它。
但是,我可以从跳转服务器 sev2 ssh 到这个 srv3。我可以从我自己的服务器 srv1.
ssh 到 sev2
现在,有没有办法可以从我的机器(即 srv1)的 88 端口访问 srv3 上的 API 运行?
提前致谢。
此致,
阿米特·乔希
如果 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
选项而不是 运行 shell - 所以不是用 exit
或 ^D
停止隧道,你^C
).
我有场景 我的本地机器是 srv1 跳转服务器是srv2 API是运行的目标服务器是srv3
所以,有一个 API 是 运行 并且可以在端口 88 的 srv3 上访问。我无法直接从我的本地计算机(即 srv1)访问它。 但是,我可以从跳转服务器 sev2 ssh 到这个 srv3。我可以从我自己的服务器 srv1.
ssh 到 sev2现在,有没有办法可以从我的机器(即 srv1)的 88 端口访问 srv3 上的 API 运行?
提前致谢。
此致, 阿米特·乔希
如果 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
选项而不是 运行 shell - 所以不是用 exit
或 ^D
停止隧道,你^C
).