如何配置策略路由实现出口IP负载均衡?
美国、香港服务器
如何配置策略路由实现出口IP负载均衡?
04-27 来源:
Linux 策略路由 + 多 IP 出口负载均衡(标准生产方案)
适配 Ubuntu / CentOS 7/9,单网卡多公网 IP,实现:出站流量自动多 IP 负载均衡、轮流选源 IP、分摊请求、降低单 IP 限制
两种方案:
简易负载轮询(最简单、推荐)
高级策略路由 + 权重负载(精准控流量比例)
前置条件(必须)
单网卡已配置多个静态 IP(Netplan / 网卡配置完成)
统一示例参数(你自行替换)
网卡:ens33
网关:192.168.1.1
多 IP:
IP1:192.168.1.10
IP2:192.168.1.11
IP3:192.168.1.12
检查 IP:
bash
运行
ip a
方案一:最简出口负载均衡(权重轮询|首选)
原理:Linux 内核 multipath 多下一跳,不同源 IP + 相同网关,weight 权重控制负载比例。
1. 删除原有默认路由
bash
运行
sudo ip route del default
2. 多源 IP 均衡负载(权重 1:1:1 平均分配)
bash
运行
sudo ip route add default \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.10 weight 1 \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.11 weight 1 \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.12 weight 1
weight 相同 = 平均负载、轮流出口
改 weight 可做流量倾斜
例:weight 2 1 1 → 第一个 IP 承载 50% 流量
3. 验证负载效果
bash
运行
for i in {1..12};do curl -s ifconfig.me;echo;sleep 0.3;done
轮流出现不同公网 IP = 负载均衡生效
方案二:标准策略路由负载均衡(企业级|隔离路由表)
适合:需要独立路由表、精细化管控、后期扩展 IP
1. 自定义路由表
bash
运行
sudo nano /etc/iproute2/rt_tables
末尾添加:
plaintext
10 table_10
11 table_11
12 table_12
2. 每个 IP 绑定独立路由表
bash
运行
# IP1
sudo ip route add default via 192.168.1.1 dev ens33 table table_10
# IP2
sudo ip route add default via 192.168.1.1 dev ens33 table table_11
# IP3
sudo ip route add default via 192.168.1.1 dev ens33 table table_12
3. 基于源 IP 策略路由
bash
运行
sudo ip rule add from 192.168.1.10 table table_10
sudo ip rule add from 192.168.1.11 table table_11
sudo ip rule add from 192.168.1.12 table table_12
4. 全局多下一跳负载(结合策略表)
bash
运行
sudo ip route del default
sudo ip route add default \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.10 weight 1 \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.11 weight 1 \
nexthop via 192.168.1.1 dev ens33 src 192.168.1.12 weight 1
常用权重配置示例
平均负载(默认)
plaintext
weight 1 1 1
二八负载(第一个 IP 多用)
plaintext
weight 2 1 1
永久保存(重启不失效)
将上面所有 ip route / ip rule 命令写入开机脚本
推荐:crontab 开机执行
bash
运行
crontab -e
添加:
plaintext
@reboot /root/ip_balance.sh
一键恢复默认网络
bash
运行
# 删除多路径默认路由
sudo ip route del default
# 清空策略路由规则
sudo ip rule del from 192.168.1.10 2>/dev/null
sudo ip rule del from 192.168.1.11 2>/dev/null
sudo ip rule del from 192.168.1.12 2>/dev/null
# 恢复单IP默认网关
sudo ip route add default via 192.168.1.1 dev ens33
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快