通过 php 中的 ssh 连接隧道请求

Posted

技术标签:

【中文标题】通过 php 中的 ssh 连接隧道请求【英文标题】:Tunneling requests via an ssh connection in php 【发布时间】:2012-03-20 02:06:16 【问题描述】:

假设在机器 A 上创建到机器 B 的 ssh 隧道,使用例如

ssh -D 9999 user@remote-server-ip-machine-B

php 中,如何使用 stream_socket_client() 从机器 A 向机器 C 发出请求,以便通过上述隧道发出这些请求,例如

$socket = stream_socket_client("tls://$ip-machine-C:$port", $errno,$errstr, 60, STREAM_CLIENT_CONNECT, $context);

换句话说,请求必须源自运行在机器 A 上的 php 脚本向机器 C 发出,但对于机器 C,请求必须看起来像是来自机器 B(与机器 C 的连接需要使用tls)。

或者,有没有办法在没有 ssh 隧道的情况下直接在 php 中实现相同的最终结果?对此的任何帮助将不胜感激

【问题讨论】:

对上述问题没有回应,在做了更多研究之后,我现在正试图找到一种方法让 php 通过 socks 代理发出任何外部网络请求,即如果可以的话做对了,然后我可以让 stream_socket_client() 通过 ssh 隧道发出请求。对于这个特定问题的任何帮助也将不胜感激。 【参考方案1】:

我发现解决这个问题的最好方法是使用像Open***这样的***(将机器A连接到机器B)或一个非常有用的脚本sshuttle,它是一个透明的代理服务器,可以作为一个穷人男人的***。

【讨论】:

以上是关于通过 php 中的 ssh 连接隧道请求的主要内容,如果未能解决你的问题,请参考以下文章

通过 ssh 隧道的 http 请求

PHP 通过 SSH 隧道连接到其他网络中的 LDAP

Spring boot Resttemplate通过ssh隧道的动态代理设置连接不识别远程DNS

通过公共 IP 访问 SSH 隧道 IIS“错误请求 - 无效主机名”

[视频教程]利用SSH隧道进行远程腾讯云服务器项目xdebug调试

DBeaver 通过 SSH 隧道连接