2011-11-05 28 views
5

ho schierato un server nodejs a Rackspace e si può accedere internamente, come l'utilizzo di:NodeJS server non accessibile dall'esterno

curl http://127.0.0.1:8080

Tuttavia, non si può accedere dall'esterno (internet) anche se faccio questo:

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

Ecco ciò che il mio codice è simile:

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

Qualche idea?

risposta

6

Sono abbastanza sicuro che si deve utilizzare

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

per la regola in uscita (non dport). A parte questo, forse c'è una regola precedente che blocca il traffico? Prova iptables -L.

+0

cool. grazie uomo. ora funziona – xybrek

7

Penso che dovresti provare a non specificare un 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

provato appena ora, ma ancora non funziona. È questo ciò che fai nel tuo server. Come si imposta iptables per il server nodejs? – xybrek

+1

Questo ha funzionato per me dopo aver eseguito la linea iptables. –

+0

Questo passaggio seguito dalla risposta ha funzionato anche per me. –

Problemi correlati