服务器多网卡配置路由,3步搞定网关冲突不丢包,三步轻松配置服务器多网卡路由,解决网关冲突与丢包问题
? “某企业因双网卡网关冲突,1小时损失百万订单!” 别让基础配置毁了业务!作为 10年运维老兵,手拆多网卡 5大生 *** 局,附 命令模板+自检脚本,小白也能秒懂?️
⚠️ 一、90%故障的元凶:网关冲突!
✅ 核心矛盾:
系统默认只认1个默认网关 → 其他网卡流量“迷路” → 业务中断!

✅ 血泪现场:
bash复制# 错误配置:两张网卡都设网关 ens33:gateway=192.168.1.1ens34:gateway=10.0.0.1→ 结果:ens34网段完全不通?
✅ 自检三连:
1️⃣ route -n 查看默认网关(仅1条default路线有效)
2️⃣ ip route show table main 检查主路由表
3️⃣ traceroute 目标IP 追踪流量走向
自问自答:能设多个默认网关吗?
答:❌ 绝对不行! 必须用策略路由分流
?️ 二、Linux策略路由四步法(附命令)
▍ 步骤1:干掉多余网关
bash复制# 编辑网卡配置(仅主网卡保留网关!) sudo vi /etc/sysconfig/network-scripts/ifcfg-ens34→ 删除GATEWAY=xxx行!?
▍ 步骤2:创建独立路由表
bash复制# 添加路由表编号(数字可自定义) echo "101 net_route1" >> /etc/iproute2/rt_tablesecho "102 net_route2" >> /etc/iproute2/rt_tables
▍ 步骤3:绑定网卡与路由表
bash复制# 网卡1走表101 ip route add default via 192.168.1.1 dev ens33 table net_route1ip rule add from 192.168.1.100 table net_route1# 网卡2走表102 ip route add default via 10.0.0.1 dev ens34 table net_route2ip rule add from 10.0.0.100 table net_route2
▍ 步骤4:永久生效(关键!)
bash复制# 创建开机自启脚本 sudo vi /etc/rc.d/rc.local→ 粘贴步骤3命令 → chmod +x /etc/rc.d/rc.local
→ 避坑:CentOS 7需启用rc-local服务:systemctl enable rc-local
? 三、Windows永久路由一招鲜
✅ 管理员CMD执行:
batch复制route -p add 10.0.0.0 mask 255.255.255.0 10.0.0.1 metric 1route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 2
→ 参数解析:
-p:永久生效(重启不丢)metric:数值越小优先级越高⭐
✅ 验证命令:
batch复制route print -4 | findstr 0.0.0.0→ 仅显示1条default路由!
? 四、高阶玩家必备:流量分流术
? 场景1:业务网卡走内网,管理网卡走公网
bash复制# 内网流量走ens34(优先级高) ip route add 172.16.0.0/16 via 172.16.1.1 dev ens34 metric 100# 公网流量走ens33 ip route add default via 113.104.20.1 dev ens33 metric 200
? 场景2:双网卡负载均衡
bash复制# 创建均衡路由表 ip route add default nexthop via 192.168.1.1 dev ens33 weight 1 nexthop via 10.0.0.1 dev ens34 weight 1
→ 注意:需内核支持multipath
? 场景3:故障自动切换
python运行复制# 用Python检测网关状态(保存为failover.py) import osimport timewhile True:if os.system("ping -c 1 192.168.1.1") != 0:os.system("ip route replace default via 10.0.0.1")time.sleep(60)
暴论:当“多网卡”沦为面子工程,90%运维根本不懂路由优先级才是命门!真正的稳定性从不是堆硬件—— 会调metric的网卡,比万兆带宽更救命!?