服务器双网卡配置路由的核心在于通过设置静态路由和策略路由,让两张网卡各司其职比如一张走内网、一张走外网,或者实现链路冗余与负载均衡,从而避免网络冲突并提升业务稳定性。
服务器双网卡怎么配置路由?先搞懂两个关键点
在动手配置之前,有必要先理解双网卡路由的基本原理,很多新手容易陷入两个误区:一是认为插上两张网卡就能自动分流,二是不清楚路由表的作用,双网卡路由配置的核心在于路由表和策略路由。
双网卡路由的两种主流场景
- 内外网隔离:一张网卡连接内网(如192.168.1.x),另一张连接外网(如10.0.0.x),通过路由表指定访问内网特定IP走内网卡,其余所有流量走外网卡,这是最常见的场景,例如企业中的Web服务器,需要同时提供内网访问和互联网访问。
- 链路冗余与负载均衡:两张网卡连接到同一交换机,通过网卡绑定(bonding)或等价路由实现故障切换或带宽叠加,这种场景下,路由配置相对简单,但需要结合链路聚合技术,在数据中心,相当一部分服务器采用双网卡绑定来保证网络可用性。
路由表与策略路由的区别
- 普通路由表:根据目标IP地址选择下一跳,当服务器收到一个发往某个IP的数据包时,系统会查询路由表,找到匹配的条目,然后从对应网卡发出。
- 策略路由:除了目标IP,还可以根据源IP、协议、端口等条件决定路由路径,在双网卡配置中,策略路由常用于实现“源地址路由”让来自不同网卡的流量走不同的出口。
行业共识认为,策略路由在双网卡配置中不可或缺,尤其是在需要源地址路由的场景下,举个例子:如果你有两张网卡,一张接办公内网,一张接互联网,那么你可以为内网网卡添加一条策略路由,要求所有来自内网网卡IP的流量都走内网网关,而不受默认网关影响。
双网卡路由表配置教程:手把手操作
这部分我们分别介绍Linux和Windows Server下的配置方法,因为两者在命令和思路上略有不同。
Linux下配置双网卡路由
Linux系统使用ip route命令管理路由表,配置方便且灵活。
查看当前路由表
ip route show
默认情况下,你会看到一条默认路由(default via …)和若干直连网段的路由,如果两张网卡都配置了默认网关,系统可能会选择跃点数(metric)较小的那条,导致另一张网卡无法正常工作。
添加静态路由
假设你有一张内网网卡eth0,IP为192.168.1.10,网关为192.168.1.1;外网网卡eth1,IP为10.0.0.10,网关为10.0.0.1,你需要让所有访问内网IP的流量走eth0,其他流量走eth1。
- 删除可能存在的冲突默认路由:
ip route del default - 添加外网默认路由:
ip route add default via 10.0.0.1 dev eth1 - 添加内网静态路由:
ip route add 192.168.1.0/24 via 192.168.1.1 dev eth0
注意:内网网段的路由必须是精确匹配,否则流量会走默认路由,如果需要更详细的配置,可以配合ip rule使用策略路由。
配置策略路由(基于源地址)
如果内网网卡也需要访问外网,但必须通过内网网关上网(比如公司内网有上网代理),那么就需要策略路由。
- 创建新的路由表:
echo 200 custom >> /etc/iproute2/rt_tables - 添加路由到custom表:
ip route add 192.168.1.0/24 dev eth0 table custom - 添加默认路由到custom表:
ip route add default via 192.168.1.1 dev eth0 table custom - 添加规则:
ip rule add from 192.168.1.10 table custom
这样,从内网网卡IP发出的数据包就会使用custom路由表,而不是主路由表。
保存配置
在Debian/Ubuntu系统中,可以将路由命令写入/etc/network/interfaces,在iface eth0段中添加up ip route add ...,在CentOS/RHEL系统中,可以创建/etc/sysconfig/network-scripts/route-eth0为路由条目,这样重启后配置自动生效。
Windows Server下配置双网卡路由
Windows使用route命令,同样支持静态路由和跃点数设置。
查看路由表
route print
在Windows中,默认网关的跃点数由接口的自动跃点数或手动设置决定,如果两张网卡都有默认网关,系统会优先使用跃点数较小的那条。
添加静态路由
假设内网网卡接口名称为“本地连接2”,IP为192.168.1.10,网关192.168.1.1;外网网卡为“本地连接”,IP为10.0.0.10,网关10.0.0.1。
- 删除多余默认网关:在“网络和共享中心”中,打开外网网卡属性,将“Internet协议版本4 (TCP/IPv4)”的默认网关设置为10.0.0.1;内网网卡不设置默认网关,或者设置后手动调整跃点数使其优先级低于外网。
- 添加内网静态路由:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 -p - 如果需要持久化到注册表,使用
-p参数。
使用跃点数控制优先级
如果你希望内网网卡也能访问外网,但必须通过内网网关,可以将内网网卡的默认网关跃点数设得较大(如100),外网默认网关跃点数设为1,设置跃点数的方法:在网卡属性的TCP/IPv4设置中,点击“高级”,取消“自动跃点数”,手动输入值。
双网卡内外网同时访问的配置方法
这是很多企业服务器刚需:一张网卡接办公内网,一张网卡接互联网,员工希望通过内网地址访问服务器,同时服务器自身能正常上网。
核心思路:默认网关唯一
- 外网网卡:设置默认网关,跃点数小(如1)。
- 内网网卡:不设置默认网关,只设置IP和子网掩码,然后手动添加内网段静态路由,让内网流量走内网卡。
- 验证:用
ping测试内网IP和外网IP,确保都能通,再用traceroute(Windows下tracert)追踪到外网目标IP的路径,确认数据包经过外网网关。
常见IP规划示例
| 网卡 | IP地址 | 子网掩码 | 默认网关 | 跃点数 |
|---|---|---|---|---|
| 外网 | 0.0.10 | 255.255.0 | 0.0.1 | 1 |
| 内网 | 168.1.10 | 255.255.0 | 无 | 自动 |
实际操作案例:数据库服务器内外网通信
假设一台数据库服务器,内网卡IP为192.168.1.100,网关192.168.1.1;外网卡IP为10.0.0.100,网关10.0.0.1,要求内网客户端(192.168.1.x)能通过内网IP访问数据库,同时服务器自身能通过外网卡访问互联网。
Linux配置步骤:
- 编辑网卡配置,确保内网卡不设默认网关。
- 执行命令:
ip route del default ip route add default via 10.0.0.1 dev eth1 ip route add 192.168.1.0/24 via 192.168.1.1 dev eth0
- 验证:内网客户端ping 192.168.1.100,服务器ping 8.8.8.8,均能成功。
Windows配置步骤:
- 在外网卡属性中设置默认网关10.0.0.1,内网卡不设置网关。
- 执行命令:
route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 -p
- 验证同样。
解决网络冲突问题
如果配置后出现内网访问慢或外网时断时续,通常是路由表出现问题,常见的排查步骤:
- 检查路由表是否有多条默认路由,如有则删除一条。
- 检查接口跃点数,确保外网默认网关优先级最高。
- 检查防火墙规则,确保没有阻止相关流量。
服务器双网卡负载均衡与冗余方案对比
除了内外网分离,双网卡还常用于提升网络稳定性或带宽,这里对比两种主要方案。
网卡绑定(Bonding)
- 模式0(轮询):所有网卡轮询发送数据包,实现负载均衡,但需要交换机支持端口聚合。
- 模式1(主备):一张网卡工作,另一张备用,故障时自动切换,无需交换机支持。
- 模式6(自适应负载均衡):根据每张网卡的负载情况分配流量,也是常见的负载均衡模式。
等价多路径路由(ECMP)
- 在网络层配置,让路由器将流量等价分发到多个下一跳,需要网络设备支持,且路由协议配合。
- 适用于服务器有多张网卡且连接不同路由器的情况。
如何选择适合你的方案
| 方案 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| Bonding mode 1 | 简单可靠,零配置 | 不增加带宽 | 关键业务冗余 |
| Bonding mode 0 | 提升带宽 | 依赖交换机 | 高并发文件服务器 |
| ECMP | 灵活,可扩展 | 配置复杂 | 大型网络架构 |
对于大多数中小企业,bonding mode 1是性价比最高的选择,因为无需额外网络设备投入,就能实现链路故障自动切换。
双网卡配置路由的常见问题与解决
业内专家指出,默认网关冲突是双网卡配置中最常见的错误之一,针对这个问题,可以采取以下措施:
- 问题:配置后外网不通,但内网正常。
- 检查默认网关是否设置正确,是否有多条默认路由。
- 检查外网网卡能否ping通网关,如果网关不通,排查物理链路或网络配置。
- 问题:内网访问时速度慢,或者延迟高。
- 检查内网路由是否精确,避免内网流量走了外网默认路由。
- 使用
traceroute追踪路径,确认数据包是否经过内网网关。
- 问题:重启后路由配置丢失。
- Linux下,需要将路由命令写入启动脚本,如
/etc/rc.local或/etc/network/interfaces。 - Windows下,使用
-p参数添加静态路由,确保永久生效。
- Linux下,需要将路由命令写入启动脚本,如
服务器双网卡路由配置并不复杂,关键在于理解路由表的工作原理,并根据实际场景设计正确的策略,无论是内外网分离,还是链路冗余,只要掌握了静态路由和策略路由的核心方法,就能让双网卡发挥最大价值。
服务器双网卡配置路由常见问题解答
Q1: 服务器双网卡怎么配置路由才能让内外网同时访问?
A1: 关键在于确保只有一个默认网关,通常设置在外网网卡上,内网网卡不设网关,并通过静态路由指定内网网段走内网卡,Linux下使用ip route add,Windows下使用route add -p。
Q2: 双网卡路由配置后,为什么外网访问时断时续?
A2: 这是典型的默认网关冲突现象,检查路由表,确认是否有多条默认路由,并删除多余条目,同时检查接口跃点数,确保外网网关优先级最高,如果两张网卡都设置了默认网关且跃点数相同,系统会随机选择,导致网络不稳定。
Q3: 服务器双网卡负载均衡路由方案有哪些选择?
A3: 常见方案包括网卡绑定(bonding)和等价多路径路由(ECMP),Bonding在驱动层实现,需要操作系统和交换机支持;ECMP在网络层实现,需要路由器支持,Bonding mode 1(主备模式)是多数企业首选,因为它配置简单且不依赖硬件。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/541121.html


