PHP-通过OVPN连接时无法使套接字正常工作

时间:2019-11-22 08:20:49

标签: php sockets websocket vpn openvpn

我有两台机器,一台是服务器,另一台是笔记本电脑。它们都在我的本地网络上。笔记本电脑还具有虚拟机。

我有以下代码,由于打开了指向虚拟机上运行的Web服务器的网页(在笔记本电脑上),结果在笔记本电脑上的虚拟机上运行:

$header=$this->getHeader();
$this->socket = fsockopen($host, $port, $errno, $errstr, 2);
socket_set_timeout($this->socket, 0, 10000);
fwrite($this->socket, $header);
usleep(50000);
$response = fread($this->socket, 15000);

$host是服务器,那里有一个PHP websockets服务器,用于监听连接。

如果我在本地网络(192.168.0.x)上全部运行,则一切正常。问题是当我尝试通过openvpn(10.122.122.x)连接时。

我已跟踪发生的情况,并查看了各种日志,可以确认服务器是否正在从便携式计算机中的VM接收请求,它正确读取了$header数据并做出了适当的响应,但是{{1} }不返回任何内容。我在日志中找不到任何指示问题的内容,并且代码继续运行(只是没有连接)。

就VPN而言,一切似乎工作正常。我可以使用VPN IP,并且代码的fread($this->socket, 15000);部分确实可以正常工作。

只是进一步混淆,在笔记本电脑上的浏览器中运行的javascript代码可以侦听websockets消息,在VPN上可以正常工作!问题似乎仅是在我的虚拟机上运行的php代码。

我还能在哪里找到问题所在?

0 个答案:

没有答案