Node.js EADDRNOTAVAIL无法通过外部IP访问

时间:2014-06-05 03:06:59

标签: windows node.js

app = require('http').createServer()
app.listen(5000, '75.113.126.31')

Error: listen EADDRNOTAVAIL

人们说这个错误意味着我正在尝试收听我不拥有的IP地址。但根据谷歌,这是我的外部IP地址。

此外,如果我省略了我的IP,它仅在我访问localhost:5000127.0.0.1:5000时有效,访问75.113.126.31:5000不起作用,即使有人说节点也应该在那里收听我没有给第二个参数听。我也尝试过监听IP 0.0.0.0而没有通过外部IP访问它。

可能的原因是什么?我禁用了Windows防火墙,但这没有帮助。

2 个答案:

答案 0 :(得分:4)

您的外部IP和计算机的网络地址通常几乎没有任何共同之处。事实上,如果他们确实匹配将是非常不寻常的。

如果您希望远程使用您的服务,通常会绑定到0.0.0.0

还值得注意的是,如果你有某种路由器或防火墙,你需要配置端口映射以使端口5000正确路由到本地IP。

ipconfig应该会显示您的实际IP地址。

您还应该知道,某些路由器无法将内部流量映射回本地IP。许多人这样做,所以它并不总是一个问题,但如果它不起作用,那可能就是这种情况。

答案 1 :(得分:3)

您收到的错误消息是正确的。我假设你在路由器后面的电脑上。 Google报告的IP地址是分配给您的路由器而不是您的计算机的IP地址,即您的计算机不拥有它。您可以通过在cmd提示符下运行命令ipconfig,找出您的eth / wifi ip地址,并在app.listen中使用它来证明这一点(它可能以192或10开头),它应该可以工作。如果您想公开您的应用程序,更简单的方法可能是从您的路由器转发端口5000运行节点应用程序的计算机。希望这有帮助!