马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 CentOS 7 / RHEL 7 系虚拟机上,偶发会遇到一个让人一脸懵的错误:Error: Failed to start LSB: Bring up/down networking。表现通常是:网卡 IP 突然没了、ping 不通网关、ip addr 里只剩 lo,然后 service network restart 报这个错,重启后又恢复正常。这类问题多半出在网络管理方式的取舍或网卡驱动上,本文按现象 → 成因 → 定位 → 三类解决方案的顺序梳理一遍。
一、现象长什么样
典型症状组合:
ip addr 里网卡(常见名 ens33/eth0)只有 NO-CARRIER 或完全没IP;
ip route 里默认路由消失;
ping 网关 不通,ping 外网 更不通,但 ping 127.0.0.1 正常;
- 执行
service network restart 时打印 Error: Failed to start LSB: Bring up/down networking;
- 宿主机(VMware / VirtualBox)看,虚拟机网卡是连着的,但就是拿不到地址。
注意一个细节:这个错误只在「用 ifup/ifdown 这套 LSB 脚本管网卡」的系统上出现。如果是 RHEL 8+/Rocky 9 这类用 NetworkManager 全套管理的系统,你看到的会是 Job for NetworkManager.service failed,排查思路类似但命令不同。
二、先看有哪几类成因
按出现频率排:
- 网卡配置文件被改坏或缺失:
/etc/sysconfig/network-scripts/ifcfg-ens33 里 ONBOOT=no、BOOTPROTO 与 IPADDR 冲突、或者文件被误删。
- NetworkManager 与 network 服务打架:装了图形组件或误装 NM,两套管理同一块网卡, NM 写了配置、network 脚本读到另一份,重启时互相顶掉。
- 网卡名变化:克隆虚机或改过 MAC,系统把
ens33 认成了 ens34,旧配置文件成了孤儿,新网卡没有配置。
- 虚拟网卡驱动问题:实体机上 VMXNET3 与系统里 e1000e 驱动不兼容,驱动加载失败直接 bring up 不起来。
- UUID/持久化冲突:
/etc/sysconfig/network-scripts/ifcfg-* 与 NM 的 /etc/NetworkManager/system-connections/ 两边 UUID 不一致。
- 裸的 /etc/resolv.conf 被覆盖:DNS 丢失导致「能 ping IP 但域名不通」,容易被误判成网络挂了。
三、定位步骤(按顺序走)
ip addr # 网卡到底在不在、有没有 IP
ip link show ens33 # 看状态 UP/DOWN、NO-CARRIER
ip route # 默认路由还在不在
cat /etc/sysconfig/network-scripts/ifcfg-ens33
nmcli device status # NetworkManager 认为它是什么状态
systemctl status network.service
journalctl -xn --no-pager | grep -i network
几个判断分水岭:ip link show 显示 NO-CARRIER 通常指向宿主机侧或驱动;显示 DOWN 而配置 ONBOOT=yes 却起不来,多半是配置文件或服务冲突;nmcli 里显示 unavailable 一般为驱动没加载。
四、方案一:把 NetworkManager 接管回来(最省事)
如果这台机器本来就该由 NM 统一管理,直接让 NM 接管:
systemctl stop network
systemctl disable network
systemctl restart NetworkManager
nmcli dev connect ens33
ip addr
确认 NM 开机自启:
systemctl enable NetworkManager
systemctl is-enabled NetworkManager
这条适用于开发机、桌面、以及「我不在乎管理方式、只要能联网」的运维机器。
五、方案二:回归 network 脚本 + 手动静态 IP(服务器首选)
生产服务器一般坚持用传统 network 脚本,配置更可预期。编辑(或新建)网卡配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
一份能跑的最小完整配置:
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
NETMASK=255.255.255.0
关掉 NM 对该网卡的托管,避免两套配置打架:
nmcli dev set ens33 managed no
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward=1
EOF
sysctl -p
然后重启网络服务:
service network restart
ip addr
ping -c 4 192.168.1.1
关键参数解释一下:ONBOOT=yes 是开机自启的核心,写成 no 就永远不会带上;BOOTPROTO 静态地址时必须写 static,写 none 但留着 IPADDR 也能起,只是语义含混;DEVICE 必须与文件名中的网卡名严格一致,写错就成孤儿配置。
六、方案三:实体机 / 特殊网卡驱动问题
如果 ip link 里连设备都没有,或者 nmcli 显示 unavailable,基本指向驱动。检查:
lspci | grep -i ethernet
ethtool -i ens33
dmesg | grep -i e1000e
modinfo e1000e
e1000e(Intel 集成网卡常见驱动)在老系统上对新硬件支持不全,编译加载步骤大致是:
yum install -y kernel-devel-$(uname -r) gcc make
tar xzf e1000e-*.tar.gz
cd e1000e-*/src
make && make install
modprobe -r e1000e
modprobe e1000e
ethtool -i ens33
加载后再 ip link set ens33 up。这一步在实体机上风险偏高,务必先备份现有驱动(cp -a /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/e1000e /root/e1000e.bak)再动。
七、预防性建议
- 克隆虚机后立刻核对 MAC 与网卡名,必要时改
/etc/sysconfig/network-scripts/ifcfg-* 里的 HWADDR 与 DEVICE;
- 服务器环境二选一管理网络:全用 network 脚本就彻底禁用 NM,全用 NM 就不要手改 ifcfg,混用是这类故障的头号来源;
- 改网卡配置前先
cp ifcfg-ens33 /root/,配置错了能秒回滚;
- 用
nmcli con mod 改 NM 配置后,记得 nmcli con up ens33 让它生效,而不是重启 network;
- DNS 问题单独看
/etc/resolv.conf,别和网络故障混在一起排查。
八、小结
遇到 Failed to start LSB: Bring up/down networking,不用背错误文本,按这个顺序走就行:ip addr 看设备 → ip link 看状态(NO-CARRIER 查驱动/宿主机,DOWN 查配置)→ nmcli 看 NM 认不认 → 决定要么让 NM 接管,要么回到 network 脚本配静态 IP → 实体机再单独处理 e1000e 驱动。绝大多数虚拟机场景,把 ONBOOT=yes 配对、或者干脆让 NetworkManager 接管,就能解决。
qidao123.com企服评测-应用市场 编辑提示 |