2011-08-26 28 views
10

tôi có ứng dụng webserver hello world cơ bản cho các nút trên cửa sổ và nó hoạt động trên localhost. Nhưng khi tôi kiểm tra nó từ internet nó không thể kết nối. Tôi thiết lập cổng chuyển tiếp trong bộ định tuyến netgear của tôi. Tôi đang thiếu một bước ở đây để làm cho máy chủ nodejs của tôi có thể nhìn thấy được với thế giới bên ngoài?Node.JS Không hoạt động trên Internet

Cảm ơn.

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

Sẽ hữu ích nếu bạn hiển thị cho chúng tôi mã bạn đang sử dụng. – AppleGrew

+0

Nó chỉ là máy chủ web hello thế giới trên trang web nodejs. – BRampersad

Trả lời

17

Hãy chắc chắn rằng bạn lắng nghe trên 0.0.0.0 thay vì 127.0.0.1

127.0.0.1 là một mạng riêng chỉ hiển thị cho máy tính của bạn. 0.0.0.0 lắng nghe tất cả các giao diện, bao gồm cả riêng tư và công khai (công khai vì nó có thể nằm sau NAT).

+0

Tuyệt vời, bạn đã học ở đâu? Thậm chí không biết 0.0.0.0 là một ip hợp lệ. – BRampersad

+0

Chọn nó ở đâu đó trong Linuxland, có thể chỉnh sửa cấu hình lighttpd bằng tay hoặc một cái gì đó. Đã một thời gian rồi. –

+0

Tôi có cùng một vấn đề, tôi đã sử dụng 0.0.0.0 nhưng vẫn không thể truy cập máy chủ của mình bên ngoài. – xybrek

0

Có vẻ như bạn đang ràng buộc máy chủ với Địa chỉ IP 127.0.0.1 là máy chủ cục bộ. Nếu bạn muốn truy cập nó ở nơi khác, bạn sẽ cần phải đặt nó vào IP internet của nó. Kiểm tra whatismyip.com và sử dụng IP đó để thay thế.

+0

Điều này sẽ không hoạt động nếu anh ta đứng sau NAT. Địa chỉ IP nội bộ của anh ta (có thể) là 192.168.x.x, nhưng địa chỉ công khai của anh ta sẽ là một cái gì đó hoàn toàn khác. –

+0

phải làm gì nếu bạn đứng sau NAT? – rocketspacer

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