Ubuntu服务器双网卡配置:深入解析同一网段冲突与路由优先级实战
最近在给一台用于混合计算任务的Ubuntu服务器做网络调优时,遇到了一个颇为典型的“幽灵”问题:服务器在特定配置下会间歇性失联,无法访问外部网络,但内部服务看起来一切正常。经过一番排查,问题的根源锁定在了两张配置在同一网段的物理网卡上。这并非个例,对于需要在单台服务器上部署多网络环境(如同时接入业务网络、存储网络或管理网络)的运维工程师和开发者而言,理解并解决此类路由冲突,是保障服务稳定性的基本功。本文将从一个真实的故障场景切入,不仅告诉你如何快速“救火”,更会深入剖析Linux内核路由决策的底层逻辑,并提供一套从诊断、分析到永久性修复的完整操作指南。
1. 问题现象与快速诊断:当网络“选择困难症”发作
那天下午,监控系统报警提示一台关键的计算节点无法通过SSH连接。登录到带外管理界面查看,系统本身是运行的,systemctl status networking 也显示服务正常。尝试从服务器内部 ping 一个公网地址(如 8.8.8.8)或内部网关,却收到了 Destination Host Unreachable 或干脆超时无响应。
第一步,我们总是从最基础的连通性检查开始:
# 检查物理链路状态
ip link show
# 示例输出摘要:
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
# 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
# 3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
两个网口 eno1 和 eno2 都显示 state UP 和 LOWER_UP,说明网线连接和物理链路层是正常的。
第二步,查看IP配置,这是发现问题的关键:
ip addr show
输出显示:
eno1:inet 192.168.2.10/24 brd 192.168.2.255 scope global eno1eno2:inet 192.168.2.12/24 brd 192.168.2.255 scope global eno2
警报立刻响起:两张网卡配置在了同一个 192.168.2.0/24 网段。这本身不一定导致问题,但结合无法上网的现象,就高度可疑。
第三步,进行那个经典的“拔线测试”:
- 保持
eno1(连接主交换机和外部网络)网线连接。 - 物理拔掉
eno2(连接另一台专用设备)的网线。 - 再次尝试

&spm=1001.2101.3001.5002&articleId=155125407&d=1&t=3&u=ee11fbbc4e1546a98e9f9c8f549687ec)
3465

被折叠的 条评论
为什么被折叠?



