You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教Azure负载均衡器与VM(含规模集/后端池)间逻辑防火墙的配置方法

如何正确配置Azure负载均衡器与后端VM/规模集的流量互通

嗨,我来帮你理清这个Azure LB和NSG配置的困惑——毕竟从AWS转Azure,确实会有一些概念上的小坑需要踩平😉

首先得澄清你之前的一个关键误解,然后给你两种更合理的配置方案,贴合你已经在使用的ASG分组逻辑:

1. 先搞懂AzureLoadBalancer服务标签到底管什么

你觉得这个标签只用于健康探测,其实它管两类流量:

  • LB健康探测流量:源是Azure内部的LB专用IP,用来检测后端VM的可用性
  • VM出站SNAT流量:当后端VM主动往外发流量时,LB会把VM的源IP转换成自己的前端IP(公网/内网),回包会通过LB返回,这个标签涵盖了这类场景的LB IP

但它确实不包含客户端通过LB转发到VM的业务流量——因为这类流量的源IP是客户端自己的IP,不是LB的IP,这就是你用这个标签没法让业务流量通的核心原因。

2. 两种更合理的配置方案

场景一:只允许经过LB的流量(拒绝直接访问VM)

如果你的需求是让VM只能接收LB转发的流量,不让外部直接访问VM,用ASG+NSG的组合就很合适,和你之前管控VM间流量的思路一致:

  • 第一步:创建一个ASG(比如叫ASG-LB-Backend),把所有需要通过该LB访问的VM/规模集实例都加入这个组
  • 第二步:在VM所在子网或VM绑定的NSG里添加两条核心规则:
    • 入站规则1:允许AzureLoadBalancer标签访问VM的健康探测端口(比如TCP 8080),优先级设高一点(比如100),专门给LB健康探测使用
    • 入站规则2:允许你要开放的客户端IP段(如果是公网LB且允许所有公网访问,就用Internet标签)访问VM的业务端口(比如TCP 80),同时把「目标」设为你刚创建的ASG-LB-Backend,优先级设为200
    • 最后保留默认的拒绝所有入站规则(或手动配置更严格的规则),这样直接访问VM的流量就会被拦截

场景二:区分多个LB的流量(只让特定LB访问对应VM)

如果你有多个LB,需要精准控制某个LB对应访问特定VM组,那就结合LB的前端IP来配置:

  • 第一步:获取目标LB的前端IP(公网LB是公网IP,内网LB是VNet内的私有IP)
  • 第二步:在NSG的入站规则中,针对业务端口,把「源」设为该LB的前端IP(如果是动态IP,就用它的IP范围),「目标」设为对应VM所在的ASG
  • 别忘了同时保留允许AzureLoadBalancer标签的健康探测规则,否则LB会判定VM不可用

3. 纠正你之前的操作误区

你之前通过允许LB公网IP访问VNet让LB工作,其实是个误解:业务流量的源是客户端IP,不是LB的IP,所以这个配置实际上是允许了来自LB公网IP的直接访问(比如你直接用LB的IP去ping VM),而不是经过LB转发的客户端流量。正确的做法是开放客户端IP段到VM的流量,同时用AzureLoadBalancer标签处理健康探测。

额外提一下内网LB的情况

如果是内网LB,客户端在同一个VNet或者对等VNet里,NSG的入站规则源可以设为对应的VNet地址空间、对等VNet地址空间,或者客户端所在的ASG,结合目标ASG实现精准管控,逻辑和公网LB一致。

内容的提问来源于stack exchange,提问作者Ashish Ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 09:42:38