服务器双网卡静态路由配置的核心在于通过路由表管理,确保数据从正确网卡进出,避免默认网关冲突导致网络中断。
当服务器安装两块网卡,分别连接不同网段时,如果两个网卡都配置了默认网关,默认路由会产生冲突,导致部分网络访问异常,静态路由配置就是手动指定特定网段的流量走对应网关,使多网卡协同工作,无论你是运维新手还是老手,掌握服务器双网卡静态路由配置方法,能让你在处理内外网互通、多子网隔离时得心应手。
服务器双网卡静态路由配置方法
配置静态路由前,需要明确网络拓扑:内网网段、外网网段、网关IP,通常服务器双网卡静态路由配置方法包括命令行临时配置和配置文件持久化两种,以下以Windows Server和Linux(Ubuntu/CentOS)为例。
Windows系统静态路由配置
Windows环境下,使用 route 命令操作,首先查看当前路由表:
route print
找到显示的网络接口,确认网卡对应的网关,添加静态路由命令格式:
route add 目标网段 mask 子网掩码 网关IP -p
-p 参数表示持久化,重启后保留,内网网段为192.168.10.0/24,网关为192.168.10.1,外网访问通过另一网卡,默认网关为192.168.1.1,则添加:
route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 -p
如果希望所有内网流量走内网卡,外网流量走外网卡,只需保持默认网关在外网卡,内网卡不设网关,通过静态路由指定内网段。
Linux系统静态路由配置
Linux下添加静态路由常用 ip route 命令或 route 命令,查看当前路由:
ip route show
添加静态路由:
ip route add 192.168.10.0/24 via 192.168.10.1 dev eth1
但临时配置重启后失效,需要持久化,不同发行版方法不同:
- Ubuntu/Debian:修改
/etc/network/interfaces或/etc/netplan/下的配置文件。 - CentOS/RHEL:在
/etc/sysconfig/network-scripts/下创建文件,内容如route-eth1
168.10.0/24 via 192.168.10.1。
企业服务器双网卡配置场景中,常需要内外网隔离,通过静态路由实现访问控制,一台服务器同时连接内部办公网和外部业务网,通过正确配置静态路由,让财务系统访问内网数据库,对外提供Web服务走外网卡。
双网卡路由冲突怎么解决?
很多运维人员在配置双网卡时遇到网络不通,根本原因是路由冲突,双网卡路由冲突怎么解决?核心是调整路由表,确保每个网段流量只走一个网关。
识别路由冲突
通过 route print(Windows)或 ip route(Linux)查看默认网关(0.0.0.0)是否出现多个,如果两个网卡都配置了默认网关,系统会随机选择或使用优先级(metric)较低的,这会导致某些外网访问时走内网网关,从而连接失败。
一个典型场景:服务器内网卡IP为192.168.1.10,外网卡IP为10.0.0.10,两个网卡都配置了网关,当访问公网IP时,系统可能选择内网网关,导致数据包无法到达公网,此时ping外网网关不通,但内网正常。
解决策略
一种常见做法是:只保留一个默认网关(通常在外网卡),内网卡不设网关,然后添加针对内网段的静态路由,这样所有流量默认走外网,内网段走内网卡。
另一种是保留两个默认网关,但调整路由度量值(metric),让外网卡优先级更高(metric更小),但这种方式不如静态路由精确,行业共识认为,双网卡配置时只保留一个默认网关是最稳妥的做法。
双网卡上网设置中的注意事项
- 内网卡IP地址必须与内网段在同一子网,网关不填或填内网网关(但需配合静态路由)。
- 外网卡配置正确网关和DNS。
- 测试连通性:ping内网网关、外网网关、公网IP。
- 如果使用Windows,注意检查网络连接属性中IPv4的自动跃点数,建议手动设置跃点数来配合路由优先级。
静态路由配置命令详解
静态路由配置命令在不同系统有细微差别,但原理一致,以下整理常用命令,方便快速参考。
| 系统 | 查看路由表 | 添加静态路由(临时) | 持久化方法 |
|---|---|---|---|
| Windows | route print |
route add 目标网段 mask 子网掩码 网关IP |
加 -p 参数 |
| Linux | ip route show 或 route -n |
ip route add 目标网段 via 网关IP dev 网卡名 |
修改配置文件 |
| 华为交换机 | display ip routing-table |
ip route-static 目标网段 子网掩码 下一跳IP |
保存配置 |
注意:Linux中 route 命令已逐渐被 ip route 替代,建议使用 ip route。
持久化配置举例
CentOS:在 /etc/sysconfig/network-scripts/route-eth1 文件中写入:
168.10.0/24 via 192.168.10.1
Ubuntu 18.04+使用Netplan,在 /etc/netplan/01-netcfg.yaml 中添加:
routes:
- to: 192.168.10.0/24
via: 192.168.10.1
metric: 100
Windows Server 2019及以上,除了 route add -p,还可以通过PowerShell的 New-NetRoute 命令配置。
New-NetRoute -DestinationPrefix "192.168.10.0/24" -NextHop "192.168.10.1" -InterfaceIndex 12
静态路由配置中的常见问题与排查
即使配置正确,也可能遇到网络不通,静态路由配置不到位,会导致数据包无法回程,双网卡静态路由怎么设置才能稳定?需要关注以下几点:
回程路由问题
服务器能访问外网,但外网无法访问服务器,通常是因为服务器回程数据包走错了网卡,服务器有两块网卡,外网卡IP为1.2.3.4,内网卡IP为10.0.1.2,如果外网发起请求,服务器响应时可能从内网卡发出,导致源IP与外网不一致,解决方法:确保回应流量从接收网卡发出,可以使用策略路由(Policy Routing)实现源地址路由,但静态路由无法解决此问题,需要更高级的配置。
网关冲突
业内专家
指出,双网卡配置时,除非必要,否则只保留一个默认网关,内网卡不设网关,仅靠静态路由,这样避免路由表条目混乱,如果公司网络环境要求双默认网关,请确保外部网络的所有流量都通过外网卡,并通过静态路由精确控制内网段。
系统重启后配置丢失
很多用户反映静态路由配置后重启就失效。Windows 必须加 -p 参数;Linux 必须写入配置文件,否则重启后路由丢失,某些云服务器或虚拟化环境,重启后网卡顺序可能变化,导致路由中指定的dev失效,这时建议使用IP地址绑定而不是网卡名。
服务器双网卡静态路由配置常见问题
服务器双网卡静态路由配置后网络不通怎么办?
先检查路由表是否包含正确条目,使用 route print 或 ip route 查看,确认目标网段的下一跳网关是否正确,子网掩码是否匹配,如果路由表正确,检查防火墙规则是否阻止了流量,确认物理连接和网卡驱动正常,依旧不通,可以抓包分析,在Windows中,用 netsh trace start capture=yes 抓包,Linux用 tcpdump。
双网卡静态路由配置适合哪些场景?
适合服务器需要同时访问内外网、多子网互通、负载均衡不完全适用等场景,企业服务器双网卡配置内部业务网段同时对外提供Web服务,通过静态路由隔离流量,但如果需要实现双网卡冗余或负载均衡,建议使用网卡绑定(Bonding)或高级路由策略,静态路由的优势在于配置简单,资源占用少,适合拓扑固定的小型网络。
静态路由和动态路由有什么区别?
静态路由由管理员手动配置,适用于小型网络或拓扑固定场景;动态路由通过协议(如OSPF、BGP)自动学习,适用于大型复杂网络,静态路由配置简单,对设备性能要求低,但变更需手动调整,动态路由能自动适应网络变化,但配置复杂,占用更多资源,选择静态路由还是动态路由,取决于网络规模、稳定性需求和维护成本,对于大多数双网卡服务器场景,静态路由足以满足需求。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/583255.html




