2011-11-05 71 views
5

tôi triển khai một máy chủ nodejs tại Rackspace và có thể được truy cập nội bộ, như sử dụng:NodeJS máy chủ không thể truy cập từ bên ngoài

curl http://127.0.0.1:8080

Tuy nhiên, nó không thể được truy cập từ bên ngoài (internet) thậm chí nếu tôi làm điều này:

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

đây là những gì mã của tôi trông giống như:

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

Bất kỳ ý tưởng nào?

Trả lời

6

Tôi khá chắc chắn rằng bạn phải sử dụng

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

cho sự cai trị đi (không dport). Ngoài ra, có thể có một quy tắc trước đó chặn lưu lượng truy cập? Hãy thử iptables -L.

+0

tuyệt. cảm ơn người đàn ông. nó hoạt dộng bây giờ – xybrek

7

Tôi nghĩ bạn nên thử không chỉ định 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

đã dùng thử ngay bây giờ nhưng vẫn không hoạt động. Đây có phải là những gì bạn làm trong máy chủ của mình không. Làm thế nào để bạn thiết lập iptables cho máy chủ nodejs của bạn? – xybrek

+1

Điều này làm việc cho tôi sau khi thực hiện dòng iptables. –

+0

Bước này tiếp theo là câu trả lời cũng có hiệu quả đối với tôi. –

Các vấn đề liên quan