2013-01-12 37 views
5

Tôi có máy chủ Node.JS hoạt động tốt trên localhost. Bây giờ tôi muốn nó có thể truy cập từ internet, được lưu trữ bởi máy tính của tôi. địa chỉ IP công cộng của tôi (một trong đó Google tells me I have) dường như không được "tiếp cận":Xuất bản máy chủ Node.JS trên Internet

https.createServer({ 
    key: privateKey, 
    cert: certificate 
}, server).listen(80, '86.151.23.17'); 

thất bại với lỗi Node.js sau:

Error: listen EADDRNOTAVAIL 
    at errnoException (net.js:770:11) 
    at Server._listen2 (net.js:893:19) 
    at listen (net.js:937:10) 
    at Server.listen (net.js:994:9) 
    at dns.js:71:18 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

Làm thế nào tôi có thể xuất bản Node.js của tôi máy chủ đến địa chỉ IP công cộng của tôi?

[Lưu ý: Tôi không có máy chủ web nào khác đang chạy. Ngoài ra, tôi đã thử các cổng khác nhau theo đề xuất here.]

Trả lời

4

Bạn có nhiều khả năng đứng sau bộ định tuyến để IP công cộng của bạn không khả dụng ở bất kỳ nơi đâu nhưng trên chính bộ định tuyến. Những gì bạn cần làm là lắng nghe trên IP riêng của bạn (thường là băm trong phạm vi 192.168. *) Và thiết lập cổng chuyển tiếp trên bộ định tuyến của bạn.

Trong trường hợp bạn sử dụng Linux, bạn cũng sẽ muốn sử dụng cổng> 1024 thay vì 80 để bạn không phải chạy nút dưới dạng gốc. Khi thiết lập cổng chuyển tiếp, bạn có thể chỉ cần chuyển tiếp cổng 80 đến bất kỳ cổng nào mà máy chủ nút của bạn đang chạy.

+1

Bạn có nghĩ rằng các bộ định tuyến được nướng trong máy của tôi (một iMac) hoặc trong hộp Wifi băng thông rộng của tôi? – Randomblue

+2

Đó là "hộp wifi" của bạn. – ThiefMaster

+0

Làm việc như một điều trị. Cảm ơn nhiều. – Randomblue

0

Ứng dụng của bạn nên lắng nghe trên địa chỉ ip khác, ví dụ

app.listen(3000,'0.0.0.0'); 

hoặc chỉ

app.listen(3000); 

Sau đó, bạn phải mở cổng chuyển tiếp trong modem của bạn. Như thế này http://www.dlink.com/uk/en/support/faq/routers/wireless-routers/dkt-series/how-do-i-open-up-ports-to-my-computer-port-forwarding-on-this-router

Cuối cùng, bạn có thể thấy ứng dụng của bạn tại địa chỉ ip ở đây https://whatismyipaddress.com/

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