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/');
3 Réponses :
Assurez-vous d'écouter sur 0.0.0.0 code> au lieu de
127.0.0.1 code> p>
127.0.0.1 code> est un réseau privé visible uniquement vers votre ordinateur.
0.0.0.0 code> écoute toutes les interfaces, y compris à la fois le privé et le public (comme public que possible derrière un NAT). P>
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
On dirait que vous liez le serveur à l'adresse IP 127.0.0.1 code> 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. P>
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?
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}');
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.