[英]Node.js EADDRNOTAVAIL can't access via external IP
app = require('http').createServer()
app.listen(5000, '75.113.126.31')
Error: listen EADDRNOTAVAIL
人們說這個錯誤意味着我正在嘗試監聽一個我不擁有的 IP 地址。 但根據谷歌,這是我的外部IP地址。
另外,如果我省略我的 IP,它只在我訪問localhost:5000
和127.0.0.1:5000
,訪問75.113.126.31:5000
不起作用,即使人們說當我不給時節點也應該在那里聽第二個要聽的論點。 我還嘗試偵聽 IP 0.0.0.0
,但沒有通過外部 IP 訪問它。
可能的原因是什么? 我禁用了 Windows 防火牆,但這沒有幫助。
您的外部 IP 和您計算機的網絡地址通常幾乎沒有任何共同之處。 事實上,如果他們匹配,那將是非常不尋常的。
如果您希望您的服務遠程可用,通常您綁定到0.0.0.0
。
還值得注意的是,如果您有某種路由器或防火牆,則需要配置端口映射以使端口 5000 正確路由到您的本地 IP。
ipconfig
應該會顯示您的實際 IP 地址。
您還應該知道,某些路由器不處理將內部流量映射回本地 IP。 許多人這樣做,所以這並不總是一個問題,但如果它不起作用,可能就是這種情況。
您收到的錯誤消息是正確的。 我將假設您在路由器后面的計算機上。 Google 報告的 IP 地址是分配給您的路由器的 IP 地址,而不是您的計算機,即您的計算機不擁有它。 您可以通過在 cmd 提示符下運行命令 ipconfig 來證明這一點,找出您的 eth/wifi ip 地址,並在您的 app.listen 中使用它(它可能以 192 或 10 開頭),它應該可以工作。 如果您想讓您的應用程序公開,一個更簡單的方法可能是將端口 5000 從您的路由器轉發到運行節點應用程序的計算機。 希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.