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防火墙,但这没有帮助。
答案 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运行节点应用程序的计算机。希望这有帮助!