服务器双网卡配置路由的核心,是根据业务流量特征规划静态路由表,明确数据包的出口网关,从而避免路由冲突,实现链路冗余或带宽叠加。
双网卡路由配置典型应用场景
很多运维刚接触双网卡时,以为插上两根网线就能自动提升速度,结果往往导致网络瘫痪,双网卡必须配合路由策略才能发挥价值,下面三个场景最能说明问题。
负载均衡:提升带宽利用率
当服务器承载高并发业务,比如视频流媒体或大文件分发,单千兆网卡很容易打满,双网卡配合链路聚合技术,可以理论上将带宽翻倍,但需要注意,这种模式需要交换机支持LACP协议,并配置为静态聚合或动态协商,服务器端则通过绑定驱动(如Linux bonding)或Windows NIC Teaming创建逻辑端口,但这不是本文重点,本文聚焦于路由层配置,在非链路聚合场景下,双网卡各自独立,只能通过策略路由实现基于连接的分发,比如将来源IP段分配到不同网卡,但这需要上层应用配合。
故障转移:保障业务连续性
对于数据库、ERP等关键业务,单点网络故障不可接受,双网卡做主备模式,是成本最低的冗余方案,配置时,为主备网卡设置不同跃点数,备网卡跃点数更大,默认路由优先走主网卡,当主网卡链路断开,系统自动切换至备网卡,行业共识认为,这是最基础也最可靠的服务器网络冗余方案,适合大多数企业环境。
多网段隔离:满足安全合规
服务器需要同时访问内网和公网,或者连接多个隔离业务网段,这时双网卡各配一个网关,通过静态路由实现精准转发,内网10.0.0.0/8走内网网卡,公网默认走外网网卡,这样避免了内网流量暴露在公网,也防止了路由表混乱,这是企业服务器最常见的双网卡路由配置需求。
双网卡服务器路由设置步骤详解
无论Linux还是Windows,核心思路都是保留一个默认网关,将其他网段流量通过静态路由引导,以下分系统说明。
Linux双网卡路由配置教程
Linux下路由配置非常灵活,但需要注意持久化,建议通过SSH或带外管理操作,以防配置错误导致失联。
查看当前路由表
执行ip route show或route -n,确认两张网卡是否都配置了默认网关,通常只保留一个,否则数据包可能混乱。
删除多余默认网关
假设需要保留eth0的默认网关,删除eth1的:
ip route del default via 192.168.2.1 dev eth1
如果两个默认网关都需要保留,但优先走eth0,可以调整metric值,但更简单的是直接删除一个,然后通过静态路由引导特定网段。
添加静态路由
内网段172.16.0.0/12需要走内网网卡eth1:
ip route add 172.16.0.0/12 via 172.16.0.1 dev eth1
需要永久生效,可以将命令写入/etc/rc.local,并确保rc.local有执行权限,或者使用网络脚本,例如在CentOS/RHEL中,创建文件/etc/sysconfig/network-scripts/route-eth1为:
16.0.0/12 via 172.16.0.1 dev eth1
重启网络服务生效,据统计,生产环境中更推荐使用网络脚本方式,因为rc.local在某些发行版中被弃用。
验证连通性
使用ping -I eth1 172.16.0.1指定源接口测试,或用traceroute -i eth1 172.16.0.1查看路径。
高级策略路由
如果双网卡需要同时承担不同业务流量,且业务流量源IP不同,基础静态路由可能不够,Linux支持多路由表,通过ip rule实现策略路由,创建路由表100,添加默认网关,然后规则匹配源IP走表100:
echo 100 custom >> /etc/iproute2/rt_tables ip route add default via 192.168.2.1 table 100 ip rule add from 192.168.2.100 table 100
这样,来自192.168.2.100的流量会走特定网关,与其他流量隔离,这是生产中的常用技巧。
Windows双网卡路由配置方案
Windows Server的配置相对图形化,但命令同样高效。
使用route add命令
以管理员身份打开CMD,查看路由表:
route print
删除多余默认路由(例如192.168.2.1):
route delete 0.0.0.0 mask 0.0.0.0 192.168.2.1
添加静态路由,让内网段走内网网关:
route add 172.16.0.0 mask 255.240.0.0 172.16.0.1 -p
-p参数必须加,否则重启后丢失。
图形界面操作
在“网络和共享中心”中,进入网卡属性,双击IPv4,点击“高级”,取消“自动跃点”,手动设置跃点数,主网卡跃点数小(如10),备网卡跃点数大(如20),这样默认路由会优先走主网卡,故障时自动切换,但静态路由仍需要手动添加。
多网关情况
Windows原生的策略路由功能较弱,如果需要双默认网关并基于源地址分流,建议使用Linux或第三方软件(如路由遥测工具),最简单的做法是只保留一个默认网关,另一个通过静态路由指定给特定网段。
策略路由高级配置
当业务需要双网卡同时工作,且流量来源不同时,策略路由是必须的,Linux下通过多路由表+规则实现,Windows下可用Netsh命令创建接口路由,但灵活度有限,实际应用中,多网段隔离场景常需策略路由,例如服务器同时连接管理网段和业务网段,且管理网段不能访问公网。
各系统双网卡路由配置方案对比
不同操作系统在双网卡路由配置上各有千秋,下表总结了关键差异:
| 对比项 | Linux | Windows |
|---|---|---|
| 核心命令 | ip route, ip rule | route, netsh |
| 持久化方式 | 配置文件或rc.local | 命令加-p参数 |
| 策略路由支持 | 原生强大,支持多路由表 | 原生较弱,需额外配置 |
| 优先级管理 | 跃点数或路由表权重 | 主要通过跃点数 |
| 适用场景 | 需要灵活路由策略的服务器 | 简单静态路由需求 |
| 学习曲线 | 较陡,但灵活 | 简单,适合入门 |
大多数情况下,Linux适合作为路由网关、代理服务器或复杂网络环境,Windows则适合域环境下的简单双网卡配置,业内专家指出,选择哪种方案取决于团队技术栈和业务复杂度,没有绝对好坏。
还有基于虚拟化或硬件的方案,如VMware虚拟交换机策略路由、物理负载均衡器,但成本较高,适合特定场景。
双网卡路由配置常见问题解答
问题1:双网卡配置后,内网和外网同时不通,怎么回事?
最常见原因是两个网卡都配置了默认网关,导致路由冲突,解决方法是只保留一个默认网关,将另一个网段通过静态路由指定,检查route print或ip route show,确认是否有两条0.0.0.0路由,删除多余的那条,如果使用的是Windows,注意检查接口跃点数,如果相等也可能导致冲突。
问题2:如何让服务器优先使用某张网卡,并在故障时自动切换?
通过调整跃点数实现,Linux中设置主网卡默认路由的metric值较小,备网卡较大;Windows中在网卡高级设置手动设置跃点数,主网卡填10,备网卡填20,当主网卡链路断开,系统会自动启用下一跳路由,但注意,如果只是物理断开但路由表未更新,切换可能不及时,建议配合网络监控脚本或使用keepalived等工具实现更可靠切换。
问题3:双网卡需要同时使用两个默认网关,怎么配置?
这种情况需要使用策略路由,基于源地址或服务端口分流,Linux下创建两个路由表,分别指定默认网关,然后通过ip rule将特定流量导入对应路由表,Windows下原生支持有限,建议使用Netsh命令添加路由并配合跃点数,但效果不理想,更推荐使用Linux作为路由网关,或者升级到Windows Server 2019及以上版本,使用SDN功能,这不是简单配置,需要仔细规划,如果业务必须,建议咨询专业网络工程师。
从最基本的故障转移到多网段策略路由,服务器双网卡配置路由的核心始终是清晰的路由表规划,无论你选择Linux还是Windows,理解跃点数、静态路由和策略路由的本质,就能让服务器网络长期稳定可靠。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/585939.html




