2013-01-12 63 views
5

我有一個Node.JS服務器,在localhost上正常工作。現在我希望它可以從我的機器託管的互聯網上訪問。我的公網IP地址(一個Google tells me I have)似乎並沒有被「訪問」:在互聯網上發佈Node.JS服務器

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

失敗,出現以下錯誤的Node.js:

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) 

如何發佈我的node.js服務器到我的公共IP地址?

[注:我沒有運行其他網絡服務器。另外,我嘗試了各種不同的端口,建議使用here。]

回答

4

您很可能位於路由器後面,因此您的公共IP無法在路由器本身的任何位置使用。你需要做的是偵聽你的私有IP(通常在192.168。*範圍內)並在你的路由器上設置一個端口。

如果您使用的是Linux,您還希望使用端口> 1024而不是80,因此您不必以root身份運行節點。設置端口轉發時,您可以簡單地將端口80轉發到運行節點服務器的端口。

+1

你認爲路由器在我的機器(一臺iMac),或在我的寬帶WiFi箱烤? – Randomblue

+2

這是你的「無線盒子」。 – ThiefMaster

+0

工作就像一種享受。謝謝一堆。 – Randomblue

相關問題