我刚刚开始在 Azure 上试用 Ubuntu 16.04 VM。node.js 应用程序需要在分配有公共 IP 地址的网络接口上监听端口 3000,以便远程客户端可以通过互联网连接到它。
但是,node.js 应用程序抛出了错误
Error: bind EADDRNOTAVAIL 13.75.111.31:3000
我已经inbound security rule
向网络安全组添加了一个以允许:
- 来源:Any
- 协议:任意
- 源端口范围:*
- 目的地:任意
- 目标端口范围:3000
- 操作:允许
并将该网络安全组分配给虚拟机。
此外,仅返回接口上的ifconfig
私有 IP 地址和本地环回。未找到公有 IP 地址的接口。10.0.0.4
eth0
lo
13.75.111.31
我们该如何解决这个问题?是不是设置有误?
答案1
公共 IP 无法直接在您的 VM 上使用。相反,Azure 会在该 IP 和您计算机的私有 IP 之间执行 1:1 NAT。因此,只需将您的系统配置为侦听私有 IP 即可。假设网络级配置正确,它应该可以正常工作。