Azure的Ubuntu虚拟机不能绑定IP(公共)?

我刚开始尝试在Azure上安装Ubuntu 16.04虚拟机。 node.js应用程序需要侦听分配有公共IP地址的networking接口上的端口3000,以便远程客户端可以通过Internet连接到端口3000。

但是,node.js应用程序正在抛出错误

Error: bind EADDRNOTAVAIL 13.75.111.31:3000 

我已经向networking安全组添加了inbound security rule ,以允许:

  • 来源:任何
  • 协议:任何
  • 源端口范围:*
  • 目的地:任何
  • 目的地端口范围:3000
  • 行动:允许

并将该networking安全组分配给虚拟机。

此外, ifconfig只返回接口eth0上的私有IP地址10.0.0.4和本地环回。 没有find公共IP地址13.75.111.31

我们如何解决这个问题? 有东西安装错了吗?

公共IP不能直接在您的虚拟机上使用。 相反,Azure会在该IP与您计算机的私有IP之间执行1:1 NAT。 所以,只需configuration你的系统来监听私有IP。 假设networking级别的东西configuration正确,它应该只是工作。