尝试通过 ssh 隧道连接到 vpc 中的另一台服务器到特定端口以访问我的 api

Attempting to ssh tunnel to another server within the vpc to a specific port to access my api

这是一个奇怪的场景。本质上,在一个 vpc 中,我试图创建一个从服务器 A 到服务器 B 的 ssh 隧道,其中服务器 B 在端口 9000 托管 api,并且服务器 A 希望能够反向代理到端口 5000,这应该将查询传递给服务器 B 的端口 9000 和 return 数据。我一直在扯我的头发。我目前已经做到了这一点:

 ssh 3000:localhost3000 -vvv -N -i rsa.pem serverB@serverBIP

之后我尝试使用 curl 请求访问服务器 A 上的端口 22,但我得到了响应 -- curl: (1) Received HTTP/0.9 when not allowed

我也试过指定一个端口

ssh -vvv -N -i rsa.pem serverB@serverBIP -p3000 

我完全退出了响应:ssh:连接到主机 serverBIp 端口 3000:没有到主机的路由

终于试过了

ssh -vvv -N -i workstation_pem.pem 3000:localhost:3000 serverBUser@serverBID

导致无法解析主机名3000:localhost:3000:名称或服务未知

请指教,我不确定我做错了什么。我觉得这应该很简单,但我正在努力让它工作 - 从一个实例到另一个实例的简单隧道,在服务器 B 上的端口到端口,其中服务器 B 有一个 gunicorn 服务器 运行

您需要登录到 ServerA 然后 运行 此命令:

ssh -i key.pem -N -L 5000:serverBIP:9000 serverBUser@serverBIP

这会告诉 运行 所在的计算机(即 ServerA)侦听端口 5000 并将任何传入请求发送到 ServerB 上的端口 9000。

详细解释:explainshell.com - ssh -i key.pem -N -L 5000:serverBIP:9000 serverBUser@serverBIP

另请参阅:SSH/OpenSSH/PortForwarding - Community Help Wiki