隧道/代理SSH

3

我需要连接到特定的API,但该API只接受来自我的伙伴服务器的请求。然后将这些信息包含在我们的网站中。

基本上,我需要连接到服务器发出请求,接收答案并将其传输到我的主机,以便我可以使用它们并通过php文件将它们集成到我的网站中。

我已经交换了ssh密钥,可以轻松连接到我的服务器,我知道我可能需要使用ssh -L(不是-R或-D)进行隧道传输,但我不知道如何处理我的php文件以进行请求等等,或者一旦输入该命令,其他步骤是什么。

如果有人能帮忙那就太好了 :)!

1个回答

4
你可以使用-L命令行开关创建一个SSH隧道:

$ ssh -L [本地端口]:[API服务器主机名]:[API服务器端口] [你的朋友的服务器主机名]@[用户名]

例如:
$ ssh -L 8080:apiserver.com:80 bob@friend.server.com

执行上述命令成功连接到friend.server.com后,发送到localhost:8080的任何请求都会通过friend.server.com主机进行隧道传输,并到达apiserver.com:80。从apiserver的角度来看,请求的来源是朋友的服务器。

(实际上,这将在执行的终端窗口中打开一个SSH会话,即您将获得远程服务器的提示,您可以忽略该提示。除此之外,您还可以使用其他切换项在后台运行而无需控制台登录)


1
非常感谢你的答复,伙计!我实际上使用了基本的ssh -D技巧,让终端在后台运行,但是你的答案更加完整和详细,所以再次感谢。 - Coding_Maeda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接