Node.JS не работает в интернете

У меня есть основное приложение hello world для веб-сервера для nodejs в Windows, и оно работает на localhost. Но когда я тестирую его из интернета, он не может подключиться. Я настроил переадресацию портов в моем сетевом маршрутизаторе. Я пропускаю здесь шаг, чтобы сделать мой сервер nodejs видимым для внешнего мира?

Благодарю.

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

3 ответа

Решение

Убедитесь, что вы слушаете 0.0.0.0 вместо 127.0.0.1

127.0.0.1 является частной сетью, видимой только вашему компьютеру. 0.0.0.0прослушивает все интерфейсы, включая как приватный, так и публичный (настолько общедоступный, насколько это возможно за NAT).

Похоже, вы привязываете сервер к IP-адресу 127.0.0.1 который является localhost. Если вы хотите получить к нему доступ в другом месте, вам нужно установить для него интернет-IP. Проверьте whatismyip.com и используйте этот IP вместо этого.

Просто чтобы убедиться.

Ваш код должен работать так.

      var http = require('http');
const port = 1337;
const host = '0.0.0.0';

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(port, host);
console.log('Server running at http://${host}:${port}');
Другие вопросы по тегам