10
votes

Nœud.js ne fonctionne pas sur Internet

J'ai l'application Basic WebServer Hello World pour Nodejs sous Windows et fonctionne sur localhost. Mais quand je le teste à partir d'Internet, il ne peut pas se connecter. J'ai configuré le transfert de port dans mon routeur Netgear. Est-ce que je manque une étape ici pour rendre mon serveur Nodejs visible au monde extérieur?

Merci. P>

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/');


2 commentaires

Cela vous aiderait si vous nous montrez le code que vous utilisez.


C'est juste le serveur Web Hello World sur le site Web de Nodejs.


3 Réponses :


17
votes

Assurez-vous d'écouter sur 0.0.0.0 au lieu de 127.0.0.1

127.0.0.1 est un réseau privé visible uniquement vers votre ordinateur. 0.0.0.0 écoute toutes les interfaces, y compris à la fois le privé et le public (comme public que possible derrière un NAT).


5 commentaires

Cool, où avez-vous appris cela? Je ne savais même pas 0.0.0.0 était une adresse IP valide.


L'a choisi quelque part dans Linuxland, modifiant probablement des configurations Lightpd à la main ou quelque chose. Cela fait longtemps.


J'ai le même problème, j'ai utilisé 0.0.0.0 mais je ne peux toujours pas accéder à mon serveur à l'extérieur.


@XYBREK: Créez une nouvelle question, c'est probablement un problème de configuration du routeur.


@Ista Je viens de créer un nouveau serveur Nodejs utilisant Ubuntu qui a tout corrigé. Et iptables



0
votes

On dirait que vous liez le serveur à l'adresse IP 127.0.0.1 qui est localhost. Si vous souhaitez y accéder ailleurs, vous devez le définir à Internet IP. Consultez Whaismyip.com et utilisez cette adresse IP à la place.


2 commentaires

Cela ne fonctionnera pas s'il est derrière un NAT. Son adresse IP interne sera (probablement) être 192.168.x.x.x, mais son adresse publique sera tout à fait différente.


Que faire si vous êtes derrière un NAT?



0
votes

juste pour vous assurer.

Votre code doit exécuter comme ceci. P>

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}');


0 commentaires