我在一台机器A 中,有一台名为B的中间机器(跳转服务器)和一台“外部”机器C。由于我无法直接连接C,但我可以 ssh 登录到B。
现在我将首先ssh登录到B,然后从B发送一个请求,例如:
$ ssh myname@<ip_B> -p <port_B>
myname@<ip_B>'s password:
Last login: Tue Aug 7 10:14:21 2018 from ...
Run Code Online (Sandbox Code Playgroud)
登录B后,我使用curl.
[myname@<ip_B>]$ curl -X POST http://<ip_C>:<port_C>/<route> -F 'my_post_key=my_post_value'
Run Code Online (Sandbox Code Playgroud)
nba*_*ari 17
您可以使用隧道,如下所示:
$ ssh -N -L 8080:machine-C:80 machine-B
Run Code Online (Sandbox Code Playgroud)
该选项-L将通过machine-B从端口 8080 ( machine-A ) 到machine-C 中的端口 80 进行本地端口转发。
然后从机器 A:
$ curl -H "host: example.com" 0:8080
Run Code Online (Sandbox Code Playgroud)
如果machine-C托管多个站点,您可能需要传递host标头。
隧道开通后,您可以在邮递员中使用 127.0.0.1:8080