【问题标题】:Connection timeout port 80 on new Azure VM with NSG rules configured配置了 NSG 规则的新 Azure VM 上的连接超时端口 80
【发布时间】:2023-03-28 08:27:01
【问题描述】:

我刚刚使用(推荐的)资源管理器部署模型在 Microsoft Azure 中创建了一个新的 Ubuntu 14.04 虚拟机。以下屏幕截图显示了部署配置和生成的资源:

部署完成后,我通过公共 IP 使用 SSH 访问 VM,登录并安装了 nginx。我将其保留为默认配置并执行了“curl localhost”以确保网络服务器正在运行。

然后我转到网络安全组资源,并将端口 80 的允许规则添加到入站规则:

然后我打开浏览器并尝试请求与 NIC 关联的公共 IP,但连接超时。

编辑:我可以通过解除 NSG 与 NIC 的关联来获得访问权限,但如果我重新关联它,我将在几分钟内再次被阻止。

我尝试使用相同的过程来设置带有 IIS 的 Windows Server VM,但我得到了相同的结果。

我在这里错过了什么?

在使用经典部署模型进行相同设置时,我没有收到任何错误,这只发生在尝试推荐的资源管理器模型时。

【问题讨论】:

  • 我刚刚使用所有默认配置创建了一个新的 Win2k3R2 VM(一个 linux 的虚拟机),在它启动后添加了 Web 服务器角色,从 localhost 进行了测试并且它工作正常,添加了任何/任何/TCP/80 规则并直接连接!你能添加一个任意端口,在它上面运行 nc,然后 telnet 到它,看看有什么作用
  • nc 和 telnet 都没有响应。在这两种情况下,我都会在端口 80 和我打开的任意端口(40000)上都超时。如果我在端口 22 (SSH) 上运行 nc(和 telnet),我会得到响应。
  • 这很奇怪!如果您一起从界面中删除安全组(转到 SG > NIC 并将关联更改为无)会发生什么 - 确保您没有做任何疯狂的事情,例如 IP 地址中的拼写错误(我们都去过那里!)
  • 如果我去解除 NSG 的关联,什么都不会改变。即使 Azure 门户显示 NSG 没有任何关联,我仍然被屏蔽。如果我继续并完全删除它,我最终会在 22 以外的其他端口上得到响应。
  • 好吧,这至少更近了一步!你知道现在问题出在哪里。 (可能值得致电支持)如果您现在创建一个新的 SG 会怎样?

标签: azure azure-virtual-machine azure-virtual-network azure-resource-manager


【解决方案1】:

对于那些仍在与新门户 Azure 上的入站规则作斗争的人,您需要设置网络安全组 (NSG) 以:

  • 允许连接来自(来源):

any 来源

* - 用于源端口范围(非常重要,因为设置 80 或 443 似乎很正常 - 这是不正确的)

  • 目的地

any

80 - 作为目标端口范围(或您的网络服务器正在侦听的端口 - 它也可以是 8080 或其他)

其他端口也是如此,例如用于 https 连接的 443。

【讨论】:

  • 我更喜欢这个答案,它比公认的要清晰得多。
  • 这很有帮助,但我必须将协议从 Any 更改为 TCP,才能最终让我的 nginx 反向代理工作。
【解决方案2】:

您的 NSG 上的源端口是什么?你有没有留下任何/*?如果不是,您将自己限制为仅来自该端口的流量。

【讨论】:

  • 如果你看到第二张图片是 Any/Any
  • 您是对的,但是在 Azure 中,屏幕截图不显示源端口范围。在规则刀片上,他们只列出 IP 地址,在这种情况下,源 IP 为任意。源端口是此刀片上未显示的规则。
  • 这实际上是我的问题。我已将端口 80 设置为我的源端口范围。是 Microsoft Azure 支持团队为我指出了这一点。我已将您的答案标记为正确答案。
  • 哦,伙计,我只花了 20 分钟的时间...我会在 Source Port 字段中输入 80。谢谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 2019-09-03
  • 2017-05-08
  • 2016-01-02
  • 2022-06-30
  • 1970-01-01
相关资源
最近更新 更多