2011-08-26 107 views
10

我有基本的網絡服務器你好世界應用程序的nodejs在Windows上,它在localhost上工作。但是,當我從互聯網上測試它不能連接。我在我的netgear路由器中設置了端口轉發。我在這裏錯過了一個步驟,讓我的nodejs服務器對外界可見嗎?Node.JS不工作在互聯網上

謝謝。

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

如果您向我們展示您正在使用的代碼,這將有所幫助。 – AppleGrew

+0

這只是nodejs網站上的hello world web服務器。 – BRampersad

回答

17

確保你聽上的0.0.0.0代替127.0.0.1

127.0.0.1是可見的只有到您的計算機的專用網絡。 0.0.0.0偵聽所有接口,包括私有和公共(因爲它可以位於NAT後面)。

+0

很酷,你從哪裏學到的?甚至不知道0.0.0.0是一個有效的IP。 – BRampersad

+0

拿起它在Linuxland的某個地方,可能手動編輯lighttpd配置或其他東西。有一陣子了。 –

+0

我有同樣的問題,我沒有使用0.0.0.0,但仍然無法訪問我的服務器以外。 – xybrek

0

看起來您正在將服務器綁定到IP地址爲127.0.0.1的本地主機。如果你想在別處訪問它,你需要將它設置爲互聯網IP。查看whatismyip.com並使用該IP來代替。

+0

這不會工作,如果他在NAT後面。他的內部IP地址將(可能)爲192.168.x.x,但他的公開地址將完全不同。 –

+0

如果你在NAT後面該怎麼辦? – rocketspacer

相關問題