簡體   English   中英

外部 Hello World 服務器節點 js

[英]External Hello world server node js

我希望使用 Node.js 在專用 PC 上托管 Web 服務器,但我似乎無法從本地網絡以外的任何地方訪問它。

從我在網上找到的內容來看,似乎我所要做的就是在不同網絡上的瀏覽器中輸入 externalIp:port,我應該會看到我的 Hello World,但是如果不通過諸如 ngrok 之類的東西暴露我的本地主機,我就無法讓它工作.

有誰知道我如何從互聯網上的外部電腦訪問我的節點服務器,而不僅僅是本地主機?

以下是重現的步驟

require("http").createServer(function(request, response){
  response.writeHeader(200, {"Content-Type": "text/plain"});
  response.write("Hello World!");
  response.end();
}).listen(8080);
  1. “node server.js” - 非常簡單的服務器托管在端口 8080 上,只發送“Hello World!” 回復
  2. 在我的機器上檢查 localhost:8080,看到“Hello World!” 在職的
  3. 從 ipchicken.com 獲取 externalIP
  4. 在外部機器(電話、差異網絡電腦)上檢查 'externalIP':8080,從不工作

也許我遺漏了一些東西,但我認為這很簡單

所以事實證明我在 Optimum 上使用的路由器有一個“特殊”設置頁面來允許端口 80 流量。 並且在端口轉發頁面上的任何地方都沒有指向它的鏈接。 因此,在完成所有端口轉發后,請確保遵循以下鏈接:

http://optimumdev.custhelp.com/app/answers/detail/a_id/2140/related/1

您需要將服務綁定到所有可用的 ip 接口,將您的監聽 8080 更改為:

require("http").createServer(function(request, response){
   response.writeHeader(200, {"Content-Type": "text/plain"});
   response.write("Hello World!");
   response.end(); 
   }).listen(8080, "0.0.0.0")

假設您有一個標准的家庭網絡設置,您不能只向您的外部 IP 地址發送請求並期望它神奇地到達您的機器。 該請求將命中您的路由器,路由器將不知道如何處理它。 您需要將路由器配置為將端口 8080 上的請求轉發到您的本地地址(可能類似於 192.168.0.x)。 即使這可能還不夠。 您可能需要在您的機器上配置軟件防火牆以允許該端口上的傳入請求。 希望這可以幫助 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM