2016-03-28 129 views
2

我是NodeJs的新手。我開始在我的本地開發系統這樣一個簡單的node.js服務器:無法從互聯網訪問NodeJs服務器

var http = require('http'); 
var fs = require('fs'); 

var server = http.createServer(function (req, res) { 
    console.log(req.url); 
    res.end(); 
}).listen(8000); 

我可以從localhost127.0.0.1192.168.1.103訪問服務器,但是當我試圖從我的公網IP地址84.47.***.**訪問服務器只有我得到的是:

timeout

我一直在閱讀一篇關於這在過去2小時,所有的只是說,設置主機0.0.0.0這是node.js的默認主機。如果沒有提供。

我可以ping我的公共IP並獲得正確的結果。

我在Windows 8.1上,Windows防火牆是off,我在comodo防火牆中定義了自定義允許規則,並且確實也禁用了comodo防火牆。

當我檢查node.js正在偵聽0.0.0.0:8000:::8000(IPv6我認爲)爲TCP連接。

我在這裏錯過了什麼?我該怎麼辦?是因爲窗戶嗎?或者是什麼?

欣賞這方面的任何幫助。

+0

嘗試更改...})。listen(8000); .......... to})。listen(「0.0.0.0」,8000); – damitj07

+0

@ damitj07 ip是第二個參數,'0.0.0.0'是默認值。已經試過'listen(8000,'0.0.0.0')'。和你的建議是不正確的,並給出錯誤'錯誤:聽EACCES 0.0.0.0' – Exlord

回答

0

好吧,想出了我的自我,與nodejs本身無關(whoooops)。由於我首先在路由器後面,所以必須在路由器中設置端口轉發。然後,即使我已經在防火牆中定義了一條允許傳入連接到nodejs的規則,但它仍然阻塞了傳入的連接,所以我必須在Global Rules中定義一條規則以允許傳入連接用於我所需的端口。

1

如何連接到互聯網?你有沒有路由器?如果你有路由器,你需要將其配置爲從外部IP和端口轉移到PC的本地IP和端口。並且在節點服務器中,您需要監聽本地IP(在此IP路由器上將轉發請求)。如果你沒有路由器,那麼你需要使用公共IP來監聽你的網卡。

相關問題