在运维工作中,CentOS 7 作为一个经典的 Linux 发行版,依然被广泛使用,由于系统版本较老以及网络配置的复杂性,很多新手或老手在使用过程中经常会遇到“网络服务起不来”的问题,当你运行 systemctl start network 或 service network restart 却发现服务无法启动时,该如何应对?
本文将为你提供一套系统的排查思路和解决方案,助你快速恢复网络连接。
初步诊断:查看服务状态
我们需要确认问题的具体表现,打开终端,输入以下命令查看网络服务的当前状态:

systemctl status network
如果看到类似以下的输出,说明服务确实挂了:
Failed to start Network.service: Unit Network.service failed to load: No such file or directory.Job for network.service failed because the control process exited with error code.Active: inactive (dead)
核心原因一:配置文件中缺少 ONBOOT
这是最常见的原因,CentOS 7 的网卡配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常以 ifcfg- 开头,ifcfg-ens33。
请检查该文件的内容,重点寻找 ONBOOT 这一行:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
常见错误:
BOOTPROTO=dhcp DEVICE=ens33 ONBOOT=no <-- 这里被设置为 no,导致开机不自启
解决方案:
将 ONBOOT 修改为 yes,并保存退出(Esc + wq)。
BOOTPROTO=dhcp DEVICE=ens33 ONBOOT=yes <-- 修改为 yes
修改完成后,再次执行 systemctl restart network 即可启动网络。
核心原因二:NetworkManager 与 network 服务冲突
CentOS 7 默认使用 NetworkManager 服务来管理网络,而不是传统的 network 服务,如果你的系统中 NetworkManager 正在运行,它可能会接管网络控制权,导致传统的 network 服务无法启动。
排查方法:
输入 systemctl status NetworkManager,如果显示 Active: active (running),说明 NetworkManager 正在运行。
解决方案:
如果你想使用传统的 network 服务,可以尝试禁用 NetworkManager:
systemctl disable NetworkManager systemctl stop NetworkManager
然后重新启动 network 服务:
systemctl start network
注意: 禁用 NetworkManager 后,修改网卡配置文件(如
ifcfg-ens33)可能不会自动生效,你需要重启网络服务或重启机器才能生效。
核心原因三:IP 地址配置错误
ONBOOT 已开启,但网络依然起不来,可能是 IP 地址配置错误,导致系统无法获取 IP 或无法通信。
- 检查 IP 是否冲突: 使用
ip addr查看当前分配的 IP,确保没有与局域网内其他设备重复。 - 检查静态 IP 配置: 如果你配置的是静态 IP,请检查子网掩码(NETMASK)和网关(GATEWAY)是否填写正确。
- 检查 DNS: 编辑
/etc/resolv.conf,确保有可用的 DNS 服务器地址,否则可能无法解析域名。
核心原因四:SELinux 或防火墙限制
虽然这种情况较少见,但有时 SELinux 或防火墙会阻止

