2011-11-05 14 views
5

desplegué un servidor nodejs en Rackspace y se puede acceder internamente, como el uso de:servidor NodeJS no es accesible desde fuera

curl http://127.0.0.1:8080

Sin embargo, no se puede acceder desde el exterior (Internet), incluso si hago esto:

iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT 
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT 

Aquí es lo que mi código es el siguiente:

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

¿Alguna idea?

Respuesta

6

Estoy bastante seguro de que usted tiene que utilizar

iptables -A OUTPUT -p tcp --sport 8080 -j ACCEPT 

para la regla de salida (no dport). Aparte de eso, ¿tal vez hay una regla anterior que bloquea el tráfico? Pruebe iptables -L.

+0

genial. gracias hombre. ahora funciona – xybrek

7

Creo que debería intentar no especificar una IP.

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Simple server\n'); 
}).listen(8080); 
console.log('Server running at http://0.0.0.0:8080/'); 
+0

lo intenté justo ahora, pero todavía no funciona. Es esto lo que haces en tu servidor. ¿Cómo configuras iptables para tu servidor nodejs? – xybrek

+1

Esto funcionó para mí después de hacer la línea de iptables. –

+0

Este paso seguido de la respuesta también funcionó para mí. –

Cuestiones relacionadas