2015-09-18 6 views
0
http.createServer(function(request, response){ 
    response.writeHead(404, {'Content-Type': 'text/plain'}); 
    response.write('Helloworld!'); 
    response.end(); 
}).listen(3000,function(){ 
    console.log("server listen on port::: 3000"); 
}); 

Здесь выше, является довольно простой фрагмент кода запуска в Ubuntu. Я могу нормально нормально нормально портировать порт (80), но не могу получить доступ к определенному порту. Доступ к внешнему IP-адресу, а не внутреннему локальному хосту. Я могу получить правильный ответ через командную строку «curl x.x.x.x: 3000», но я просто не могу открыть его в веб-браузерах. Любой, кто может дать подсказку, будет оценен!Node.js может получить доступ к порту по умолчанию, но не может получить доступ к определенному порту

+0

Проверьте свой брандмауэр (iptables) и убедитесь, что вы заблокировали порт 3000. – slebetman

+0

, или вы используете рельсы уже в этом порту. –

+0

Проверьте свой iptable или отключите его, чтобы просто проверить его или http://canyouseeme.org/ проверить, что блокируется. – kc007

ответ

0

Возможно, процесс связан с портом.

netstat -tulpn | grep 3000 предоставит вам, какой процесс использует порт.

Если ничего не найдено, загляните в свои iptables.

Редактировать: Как следует из комментария, вероятно, OP-стол, который ограничивает внешний запрос для портов, отличных от http. Простой iptable будет делать.

-A OUTPUT -d **dest_ip**/32 -p tcp -m tcp --dport 3000 -j ACCEPT 

Заменить dest_ip ваш IP.

+0

Спасибо за ваш ответ, я проверил netstat, и порт 3000 был хорошо прослушан: 0.0.0.0: 3000 – yuyicman

+0

Я редактирую свой ответ. – Cyrbil

+0

спасибо за ваш ответ, я устал, но все еще не работает, я думаю, что проблема связана со странным брандмауэром в моем офисе. – yuyicman

Смежные вопросы