在CentOS服务器上实现双WAN连接是提升企业网络带宽和确保业务连续性的关键技术手段,核心上文归纳在于:单纯的多网卡配置无法实现智能分流,必须依赖Linux内核的高级路由和流量控制工具,结合策略路由与链路健康监测,才能构建出具备负载均衡与故障自动切换的高可用网络架构,通过精细化的流量标记与路由表管理,可以确保不同业务流量走不同运营商线路,并在单条线路故障时毫秒级切换,从而最大化网络价值。
网络规划与基础环境准备
在实施CentOS双WAN配置前,科学的网络规划是成功的基石,我们需要明确运营商线路的物理连接方式以及内网流量的走向,通常场景下,服务器配备两块物理网卡分别连接电信(WAN1)和联通(WAN2),第三块网卡或虚拟接口连接内网LAN。


基础配置的重点在于确认内核支持多路由表,现代CentOS(7及以上版本)默认集成的iproute2套件已完全支持此功能,需要通过nmcli或直接编辑/etc/sysconfig/networkscripts/下的网卡配置文件,确保两块WAN网卡均能正常获取IP地址或配置静态IP,关键点在于,此时只能配置一个默认网关,否则系统会因为默认路由冲突而导致路由表混乱,建议暂时将主线路(如电信)设为默认网关,另一条线路(如联通)仅配置IP和子网掩码,不设置网关,后续通过策略路由手动添加其路由规则。
构建多路由表与策略路由规则
实现双WAN的核心在于“分流”,即让系统能够识别数据包的来源或属性,并查阅不同的路由表,Linux内核允许管理员自定义路由表,这通过编辑/etc/iproute2/rt_tables文件实现。
定义路由表 在该文件末尾添加两行自定义表, 200 T_WAN1201 T_WAN2 这分别代表电信和联通的专用路由表。
填充路由表 使用ip route命令将流量引导至对应表,对于WAN1(电信),执行: ip route add default via 电信网关IP dev eth0 table T_WAN1ip route add 电信网关网段 dev eth0 table T_WAN1 同理,将WAN2(联通)的路由信息填入T_WAN2表,这一步确保了在各自的路由表中,数据包知道如何出去以及如何回包。
制定策略规则 这是决定流量走向的“红绿灯”,使用ip rule命令进行匹配,最实用的策略是基于源地址路由(Source Based Routing),内网VLAN1(192.168.1.0/24)走电信,VLAN2(192.168.2.0/24)走联通。 ip rule add from 192.168.1.0/24 table T_WAN1ip rule add from 192.168.2.0/24 table T_WAN2 必须保留主路由表(main table)的默认规则作为兜底,确保未匹配的流量有路可走。
实现链路负载均衡与故障切换
单纯的策略路由解决了分流问题,但无法解决“单线故障”和“带宽叠加”的需求,为了实现真正的双WAN负载均衡与高可用,我们需要引入Nexthop跃点检测或使用脚本结合Keepalived实现。
负载均衡配置 如果希望将所有出口流量在两条线路上按比例分配(如1:1),可以在主路由表中删除单一默认网关,改为多路径默认路由: ip route add default scope global nexthop via 电信IP dev eth0 weight 1 nexthop via 联通IP dev eth1 weight 1 这将使内核在处理出站连接时自动在两条链路间进行哈希均衡,实现带宽叠加。
故障自动切换(高可用) 静态路由无法感知链路断开,专业的解决方案是编写Shell监控脚本或使用Keepalived的track_script功能,脚本逻辑应定期Ping各自运营商的DNS(如电信Ping 114.114.114.114,联通Ping 123.125.81.6),一旦检测到丢包,脚本应自动从主路由表中删除该链路的权重或修改路由表权重为0;当链路恢复时,自动加回,这种基于应用层的健康检查,比依靠网卡Link状态更可靠,能有效应对“光猫在线但断网”的复杂故障。

关键技术优化与NAT配置
双WAN环境下的NAT(网络地址转换)配置容易被忽视,但至关重要,必须确保出站数据包正确地进行源地址伪装(SNAT),在iptables中,需要针对两张网卡分别配置POSTROUTING规则: iptables t nat A POSTROUTING o eth0 j MASQUERADEiptables t nat A POSTROUTING o eth1 j MASQUERADE 如果不分别配置,可能会导致回程数据包走错线路,从而被运营商防火墙丢弃,造成网页断断续续。
针对MTU(最大传输单元)的优化也是专业运维的体现,不同运营商链路的MTU可能不同,尤其是PPPoE拨号场景,建议在防火墙的mangle表中调整MSS(最大分段大小),防止因包体过大导致分片失败: iptables t mangle A FORWARD p tcp tcpflags SYN,RST SYN j TCPMSS clampmsstopmtu
常见问题与排错思路
在部署过程中,排错应遵循“由表及里”的原则,首先使用ip route show和ip rule show检查路由表加载是否正确,使用traceroute追踪特定目标IP,观察流量是否按照预期从指定网卡发出,若出现访问某些网站失败,通常是路径MTU发现(PMTUD)被阻断,需检查iptables的MSS规则,对于回程路由不通的问题,务必检查上游网关是否支持代理ARP,或在服务器上开启arp_ignore和arp_announce参数,避免ARP冲突。
相关问答
Q1:在CentOS双WAN配置中,为什么配置了策略路由后,内网某些客户端还是无法上网?A1: 这通常是因为DNS解析或回程路由问题,首先检查客户端是否正确配置了内网网关IP,确认iptables的NAT规则是否对两张WAN网卡都生效了MASQUERADE,如果问题依旧,可能是由于运营商链路不对称导致的,尝试在服务器上强制开启TCPMSS钳制,或者检查策略规则的优先级(prer值),确保更具体的规则优先于通用规则被匹配。
Q2:如何实现基于应用端口的双WAN分流,例如让HTTP流量走电信,FTP流量走联通?A2: 标准的ip rule主要基于源地址或目标地址进行匹配,要实现基于端口的分流,需要结合iptables的mangle表打标功能,使用iptables t mangle A PREROUTING p tcp dport 80 j MARK setmark 1给HTTP流量打上标记1,在策略路由中使用ip rule add fwmark 1 table T_WAN1,将标记为1的流量指向电信路由表,同理配置FTP流量指向联通表,即可实现精细化的业务分流。
通过以上架构设计,CentOS服务器不仅能作为稳定的网关,还能成为企业智能流量的调度中心,最大化利用双线资源,如果您在配置过程中遇到特定的网络环境挑战,欢迎在评论区分享您的拓扑细节,我们将提供更具针对性的排错建议。

