nat网关通过绑定多个eip实现snat自动轮询,使子网内服务器出向流量按连接新建顺序均匀使用各eip作为源ip,无需后端配置;需确保子网路由指向nat网关、禁用rp_filter、并通过curl ifconfig.me验证ip轮换。

NAT网关实现多公网IP的SNAT负载均衡,本质是让内网服务器出向流量自动、均匀地从多个绑定的公网IP中轮询发出去,不依赖后端服务器做任何配置,也不需要修改应用逻辑。它不是把请求分发到多台机器,而是把同一台服务器发出的连接“源IP”轮流换着用,从而分散出口带宽压力、规避单IP限频、提升稳定性。
绑定多个EIP并启用SNAT自动轮询
主流云平台(如阿里云、腾讯云、华为云)的NAT网关在绑定多个弹性公网IP(EIP)后,默认即开启SNAT自动轮询能力:只要子网路由指向该NAT网关,该子网下所有云服务器的出站流量(无DNAT/无指定规则时),就会被网关按连接新建顺序,依次使用已绑定的EIP作为源地址。无需手动写iptables,也无需调整算法参数。
- 绑定操作在NAT网关控制台的“关联弹性公网IP”页完成,支持一次选中多个EIP批量绑定
- 绑定后系统自动生效,无需重启网关或云服务器
- 轮询策略由云厂商底层实现,通常为严格轮询(非加权),保证各EIP连接数基本一致
需要指定某服务器走特定EIP?配SNAT规则
当默认轮询不满足业务需求(例如爬虫需固定IP出口、API调用需按域名分流),可创建细粒度SNAT规则,精准控制流量路径:
- 规则匹配条件支持:源私网IP段、协议类型(TCP/UDP/ALL)、源端口范围(可选)
- 每条规则绑定一个指定EIP,多个规则可共存,优先级按创建顺序或显式设置
- 例如:给192.168.1.100配置SNAT规则指向EIP-101,其余机器仍走默认轮询
关键前提与验证要点
功能正常依赖三个基础条件,缺一不可:
- 子网路由必须指向NAT网关:在子网关联的路由表中,添加目的地址为0.0.0.0/0、下一跳为该NAT网关的路由条目
- 云服务器禁用源地址校验(rp_filter):Linux系统需执行sysctl -w net.ipv4.conf.all.rp_filter=0,否则回包可能被丢弃
- 实际出口IP可验证:在云服务器上执行curl ifconfig.me或访问能返回客户端IP的API,连续多次请求,观察返回的公网IP是否在已绑定列表中循环出现










