Сервер NodeJS недоступен извне - PullRequest
5 голосов
/ 05 ноября 2011

Я развернул сервер nodejs в Rackspace, и к нему можно получить внутренний доступ, например, используя:

curl http://127.0.0.1:8080

Однако к нему нельзя получить доступ извне (через Интернет), даже еслиесли я сделаю это:

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

Вот как выглядит мой код:

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

Есть идеи?

Ответы [ 2 ]

9 голосов
/ 05 ноября 2011

Я думаю, вы должны попытаться не указывать 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/');
7 голосов
/ 05 ноября 2011

Я почти уверен, что вы должны использовать

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

для исходящего правила (не dport).Помимо этого, может быть, есть более раннее правило, которое блокирует трафик?Попробуйте iptables -L.

...