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

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防火墙,但没有帮助。

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

通常情况下,如果希望远程使用服务,则绑定到0.0.0.0

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

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

你也应该知道,一些路由器不处理映射内部流量回到本地IP。 很多人都这样做,所以这并不总是一个问题,但如果不行的话可能是这样的。

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