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

如何为Squid所用Docker网络通过iptables配置多IP段出站?

为Squid Docker网络配置出站IP段的解决方案

你之前重复添加单IP的SNAT规则无法生效,是因为iptables的规则匹配按顺序执行,流量只会触发第一条符合条件的规则,后续规则不会被执行。针对IP段配置,分两种场景处理:

场景1:出站IP为连续段

如果你的出站IP是连续范围(比如1xx.xxx.xxx.100到1xx.xxx.xxx.200),直接用一条规则即可实现IP轮询分配:

iptables -t nat -A POSTROUTING -s 172.18.0.0/16 ! -o bridge-coi -j SNAT --to-source 1xx.xxx.xxx.100-1xx.xxx.xxx.200

这条规则会自动在指定IP范围内,为每个出站连接分配不同的源IP。

场景2:出站IP为非连续零散IP

如果需要使用多个零散IP,给每条SNAT规则加上--random参数,让iptables随机选择源IP,避免仅触发第一条规则:

iptables -t nat -A POSTROUTING -s 172.18.0.0/16 ! -o bridge-coi -j SNAT --to-source 1xx.xxx.xxx.xx4 --random
iptables -t nat -A POSTROUTING -s 172.18.0.0/16 ! -o bridge-coi -j SNAT --to-source 1xx.xxx.xxx.xx5 --random
# 按需添加更多IP的规则

加上--random后,iptables会在所有符合条件的规则中随机挑选一条应用,实现多IP出站的负载均衡。

规则持久化

配置完成后,记得保存iptables规则,避免系统重启后丢失:

# Debian/Ubuntu系统
iptables-save > /etc/iptables/rules.v4
# CentOS/RHEL系统
service iptables save

内容的提问来源于stack exchange,提问作者Anastasiya Mykolenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:21:07