Windows Server内置NLB可实现无硬件依赖的TCP/IP层负载均衡与高可用,适用于Web等无状态服务;需选对操作模式、添加节点、实测流量分发与故障切换,并注意其不提供会话保持。
windows server 系统中配置负载均衡集群,主要依靠内置的 network load balancing(nlb) 功能,无需额外硬件或第三方软件,即可在多台服务器间分发 tcp/ip 流量、实现高可用与横向扩展。关键在于选对模式、正确添加节点、验证真实流量分发效果。
确认适用场景和前提条件
NLB 适用于 Web 服务(IIS)、API 网关、流媒体、终端服务等无状态或可共享会话的应用。它不替代应用层负载均衡(如 Nginx),也不处理会话保持逻辑。部署前需确保:
- 所有节点运行相同版本 Windows Server(2008 R2 起支持,推荐 2016/2019/2022)
- 各服务器使用静态 IP,且能互相 ping 通;建议关闭防火墙或放行 NLB 相关端口(如 UDP 123、TCP 80/443)
- 交换机支持所选 NLB 模式:单播模式需关闭端口安全或启用混杂模式;多播模式需手动配置静态 ARP 和 MAC 表项;IGMP 多播则要求交换机开启 IGMP Snooping
图形化创建 NLB 集群(5 分钟内完成)
在任一候选服务器上操作:
- 运行
nlbmgr.msc打开“网络负载平衡管理器” - 右键“网络负载平衡群集” → “新建群集”,输入第一台服务器 IP(如 192.168.10.10),点击“连接”
- 添加集群虚拟 IP(VIP),即对外服务地址(如 192.168.10.100),并设置子网掩码
- 选择操作模式:生产环境优先试 多播模式;若交换机不支持,再退到单播并调整交换机设置
- 配置端口规则(默认全开 80 端口,可细化到端口范围+协议+筛选模式)
- 完成向导后,右键已建群集 → “添加主机”,填入第二台服务器 IP(如 192.168.10.11),重复完成配置
成功后,所有节点状态显示“已启动”,VIP 即可被客户端访问。
验证流量分发与故障切换是否生效
不能只看管理器界面绿灯,必须实测:
- 用
curl -I http://192.168.10.100多次请求,检查响应头中Server字段是否在不同后端之间轮换 - 手动停止其中一台服务器的 IIS 或 Nginx 服务,等待 10–15 秒,再次请求 VIP,应仍返回正常响应且无超时
- 若某节点掉线但未自动剔除,可部署健康检查脚本(如定时访问
http://localhost/health,失败则执行wlbs drainstop)
注意:NLB 本身不提供会话保持,如有登录态需求,需在上层应用(如 IIS 的 Application Request Routing 或 Nginx 的 ip_hash)中补充实现。
搭配 NIC Teaming 提升单节点吞吐能力
若单台服务器带宽成为瓶颈,可在每台 NLB 节点上启用 NIC Teaming(网卡绑定),进一步提升入站/出站能力:
- 仅 Windows Server 2012 R2 及以上版本原生支持,需两块同型号、同驱动的企业级网卡
- 在“服务器管理器” → “本地服务器” → 启用 NIC Teaming,新建团队时选择“交换机独立”模式 + “地址哈希”负载算法
- IP 地址、网关等全部配置移到新生成的虚拟适配器(如 vEthernet(Team-Prod))上
- 拔掉一根网线测试,业务应无感知中断(切换通常在 1–3 秒内)
这样,NLB 负责跨服务器分流量,NIC Teaming 负责单服务器内聚合带宽,二者叠加可构建更健壮的前端架构。


















