我的PHP脚本使用套接字打开端口,如:
$socket = stream_socket_server('tcp://127.0.0.1:' . $this->port, $errno, $errstr);
例如说端口是58889.
我无法从telnet连接到端口(连接被拒绝)。
以下是' netstat -plunt'命令显示:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:58889 0.0.0.0:* LISTEN 13849/php
tcp 0 0 127.0.0.1:58890 0.0.0.0:* LISTEN 13841/php
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:58891 0.0.0.0:* LISTEN 13857/php
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::25 :::* LISTEN -
托管服务提供商没有特殊的防火墙规则。如何解决?
答案 0 :(得分:1)
问题是TCP服务器仅侦听localhost
IP地址上的连接。
这只允许来自本地'的连接。机。
要指定侦听计算机上所有IP地址的连接,这将允许来自外部计算机的连接,然后使用“0.0.0.0'”的IP地址。 (IPv4)的:
stream_socket_server('tcp://0.0.0.0:' . $this->port, $errno, $errstr);