Je suis sûr que c'est très noobish, alors pardonnez-moi. J'essaie d'exécuter un serveur node.js sur le port 8080 de mon ubuntu 10.04.
Voici le résultat d'iptables -L sur le serveur:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Et voici le résultat de nmap -p 8080 (modification de l'adresse IP car tout est ou devrait être grand ouvert)
nmap 173.203.xxx.xxx -p 8080 -A
Starting Nmap 5.00 ( http://nmap.org ) at 2011-05-19 22:52 PDT
Interesting ports on xxx (173.203.xxx.xxx):
PORT STATE SERVICE VERSION
8080/tcp closed http-proxy
Pourquoi diable 8080 est-il considéré comme fermé? L'ajout de cela n'a pas aidé:
iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Je suis vraiment confus.
J'ajouterai ceci, au cas où cela aiderait, mais je ne sais pas
netstat -pan | grep 80
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 16785/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16471/Apache2
Je peux accéder à mon site Web habituel à partir du port 80 sur Apache, mais le serveur node.js est inaccessible de l'extérieur. L'accès à partir du serveur lui-même fonctionne bien.
Donc, ma question est: comment pourrais-je procéder pour déboguer cela? Pourrait-il y avoir autre chose que iptables bloquant certains ports? Comment savoir ce que c'est?
Toute aide très appréciée!
Merci d'avoir ajouté la dernière sortie netstat, cela a vraiment aidé. Vous ne pouvez pas accéder à node.js de l'extérieur car il écoute sur IP localhost, c'est-à-dire 127.0.0.1. Vous devez configurer node.js pour écouter sur 0.0.0.0 afin qu'il puisse accepter les connexions sur toutes les IP de votre machine.
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/');
Selon votre sortie netstat, le port 8080 est ouvert uniquement pour 127.0.0.1 qui est localhost, donc l'accès à partir des travaux du serveur (qui est localhost), mais pas d'ailleurs.
La bonne sortie devrait ressembler à
0.0.0.0:8080
J'ai eu le même problème.
J'ai fait ce qui suit
utilisez le lien suivant pour activer les mêmes ports sur le serveur Ubuntu https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-14- 04
Et après ce dernier, ce qui me manquait est Réseau -> Règles de pare-feu -> default-allow-internal -> toutes les adresses IP 0.0.0.0/0
Terminé