2012-03-01 80 views
2

给定在机器A上创建的ssh隧道来加工B。通过在php中的ssh连接的隧道请求在使用例如php

ssh -D 9999 [email protected] 

在php中如何将一个使使用stream_socket_client从机器A到设备C的请求(),使得这些请求经由上述隧道由例如

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

换句话说,请求必须在机器C,但到设备C的请求国产机正在运行,必须看起来像他们从机器B(到设备C的需求进行连接来从PHP脚本起源使用tls)。

或者,有没有办法在没有SSH隧道的情况下直接在php中实现相同的最终结果?任何帮助,这将是非常赞赏

+0

对上述问题做了缺乏反应,并做了一些更多的研究后,我现在试图找到一种方法让PHP通过袜子代理作出任何外部网络请求,即如果我能得到这个权利,然后我可以通过ssh隧道获取stream_socket_client()的请求。对于这个特定问题的任何帮助也将不胜感激。 – 2012-03-02 13:01:30

回答

1

我找到解决这个问题的最好办法是使用VPN像OpenVPN(连接机器A到B机)或称为sshuttle一个非常有用的脚本,这是一个透明代理服务器,作为一个穷人的VPN。