无法访问托管在 Azure VM 上的 Flask 服务器

Unable to access flask server hosted on azure VM

我在我的 Azure 虚拟机上托管了一个 Flask 服务器。

if __name__ == '__main__':
    app.run(debug=True, host="127.0.0.1", port=4400)

在vm上,我可以通过地址127.0.0.1:4400访问服务器 现在我希望能够从虚拟机外部访问此服务器,即我的本地计算机。

我已经添加了入站安全规则如下:

我还在 VM 防火墙的端口 4400 上添加了相同的入站规则

我仍然无法通过 publicIP:4400 访问 flask 服务器(publicIP 是 Azure 门户上显示的我的 VM 的 public IP)

可能是什么问题?

对于您的问题,可能有两个原因。

  1. 您必须侦听IP 0.0.0.0 才能从Internet 访问。 127.0.0.1 只是本地主机测试的环回 IP。所以4c74356b41这样算就对了

  2. 如果您将IP更改为0.0.0.0后也无法从Internet访问该应用程序。那一定是规则的问题。如果您的子网和 NIC 的 NSG 相同,您应该检查您的 VM 网络。如果不是,请添加规则以允许两个 NSG 中的端口 4400。然后您还应该检查 public IP 是否直接与您的 VM 相关联,或者它是否与负载平衡器相关联并且您的 VM 只是在负载平衡器的后端。如果是负载均衡器,还需要添加负载均衡器规则允许4400端口

检查一下这两个可能的原因。