2015-10-26 186 views
1

我的PHP腳本使用插座一樣打開端口:無法連接到端口上的vps

$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  -   

有對託管服務提供商沒有特殊的防火牆規則。如何解決它?

+1

你是隻聽'localhost'的IP地址?你應該在'external' ip地址(0.0.0.0是否意味着機器上的所有addesses)上收聽?除非你只想從同一臺機器連接? –

+0

謝謝))你是絕對正確的! – Eugene

+0

@RyanVincent把它格式化爲一個答案,所以尤金可以接受它... –

回答

1

問題是TCP服務器僅偵聽IP地址爲localhost的連接。

這將只允許來自「本地」機器的連接。

指定要監聽的機器,這將允許外部計算機的連接,然後使用「0.0.0.0」(IPv4)的的IP地址上的所有IP地址的連接:

stream_socket_server('tcp://0.0.0.0:' . $this->port, $errno, $errstr); 
相關問題