2015-10-26 2 views
1

Моего PHP скрипт открывает порт, используя сокет, как:Не удается подключиться к порту VPS

$socket = stream_socket_server('tcp://127.0.0.1:' . $this->port, $errno, $errstr); 

Например сказать порт 58889.

Я не могу подключиться к порту из телнета (Connection отказался).

Вот что '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

Вы только прослушивание ip-адреса 'localhost'? Если вы слушаете «внешний» ip-адрес (0.0.0.0 означает все аддоны на машине)? Если вы просто не хотите подключиться к одной машине? –

+0

Спасибо)) Вы абсолютно правы! – Eugene

+0

@ RyanVincent отформатируйте его в ответ, чтобы Юджин мог его принять ... –

ответ

1

Проблема заключается в том, что TCP-сервер прослушивает только соединения на IP-адресе localhost.

Это позволит подключаться только к локальной машине.

Чтобы указать для прослушивания соединений на всех IP-адресов на компьютере, что позволит соединения от внешних машин, а затем использовать IP-адрес «0.0.0.0» (IPv4):

stream_socket_server('tcp://0.0.0.0:' . $this->port, $errno, $errstr); 
Смежные вопросы