Node.js не доступен от внешнего дюйм/с на Ubuntu

Действительно комментарий к ответу @chris (который я upvoted): Это применяется одинаково хорошо к несетям Ethernet, хотя у них есть различные виды отказа. Постоянно выходя или уничтожая маркеры, например, или не передавая пакеты правильно.

17
задан 20 May 2011 в 09:58
3 ответа

Спасибо за добавление последнего вывода netstat это действительно помогло. Вы не можете получить доступ к node.js снаружи, потому что он слушает на localhost IP т.е. 127.0.0.1. Необходимо настроить node.js для слушания на 0.0.0.0, таким образом, он сможет принять соединения на всем дюйм/с машины.

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8080, "0.0.0.0");
console.log('Server running at http://0.0.0.0:8080/');
28
ответ дан 2 December 2019 в 20:29

Согласно Вашему выводу netstat, порт 8080 открыт только для 127.0.0.1, который является localhost, следовательно получающим доступ от работ сервера (который является localhost), но не отовсюду еще.

Правильный вывод должен быть похожим

0.0.0.0:8080
4
ответ дан 2 December 2019 в 20:29

У меня была такая же проблема.

Я сделал следующее

  1. В Google Cloud Console вам нужно включить порты, которые вы используете для Nodejs
  2. , используйте следующую ссылку, чтобы включить те же порты на сервере Ubuntu https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14-04

  3. И после этого последнего, что я отсутствовал Сеть -> Правила брандмауэра -> default-allow-internal -> все IP-адреса 0.0.0.0/0[1244 visibleDone

0
ответ дан 2 December 2019 в 20:29

Теги

Похожие вопросы