centos 7重启网络服务需先判断使用network还是networkmanager:执行systemctl list-unit-files | grep -e "^(network|networkmanager)",根据enabled/active状态选择对应service重启;若network.service不存在或报“unit not found”,需检查initscripts包并确认是否启用传统网络管理。

CentOS 7 重启网络服务没有唯一标准命令,得先看系统实际用的是哪个网络管理服务 —— network 还是 NetworkManager,选错就报错或没效果。
怎么判断当前用的是 network 还是 NetworkManager
执行这条命令:systemctl list-unit-files | grep -E "^(network|NetworkManager)",看哪些 service 是 enabled 或 active 状态。
- 如果
network.service是 enabled 且正在运行(systemctl is-active network返回active),说明走传统脚本路径,用systemctl restart network - 如果
NetworkManager.service是 enabled 且 active,而network.service是disabled或inactive,那就该重启NetworkManager,不是network - 两者都 active?说明配置冲突,得停掉一个再试,否则重启后网卡可能被反复 disable/enable
systemctl restart network 报 “Unit not found” 怎么办
这是最常见错误,本质是 network.service 根本没装或被禁用。它只在你手动关闭 NetworkManager 并启用传统网络管理时才存在。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 检查是否存在该 unit:
ls /usr/lib/systemd/system/network.service,不存在就别硬试 - 确认是否装了传统网络支持包:
rpm -q initscripts,没装就yum install initscripts - 如果系统用的是
NetworkManager,强行启network.service会导致两个服务抢网卡,ip link show里看到状态反复切换 - 临时救急可以不用 systemd:
/etc/init.d/network restart(仅限兼容模式,不推荐长期用)
改完 ifcfg-* 文件后,只 restart 不够,还得 reload connection
尤其用 NetworkManager 时,它不会自动读取 /etc/sysconfig/network-scripts/ifcfg-* 的修改,除非你显式通知。
- 先
sudo systemctl restart NetworkManager - 再
sudo nmcli connection reload,否则新 IP、DNS、BOOTPROTO 都不生效 - 如果连接已激活,还需 down/up 一次:
nmcli connection down "System eth0"&&nmcli connection up "System eth0"(连接名用nmcli connection show查) - 注意:改了
/etc/resolv.conf后,NetworkManager可能会覆盖它,应优先改 connection 的 DNS 设置:nmcli connection modify "System eth0" ipv4.dns "8.8.8.8"
重启后 ping 不通、IP 消失的常见原因
不是命令没跑,而是配置本身有问题,systemd 不报错但静默失败。
-
systemctl status network或journalctl -u NetworkManager --since "1 minute ago"里找failed或error关键字,比如Invalid BOOTPROTO value、No device found for connection - ifcfg 文件里缩进错误、大小写错(如
bootproto写成BOOTPROTO通常没事,但onboot=yes写成ONBOOT=Yes就可能失效) - 静态 IP 场景下漏写
GATEWAY或子网掩码不对,会导致路由缺失,ip route里看不到默认路由 - SELinux 开启时,
/etc/sysconfig/network-scripts/下文件上下文不对也会导致脚本拒绝执行,可用restorecon -Rv /etc/sysconfig/network-scripts/修复
真正麻烦的不是记命令,而是搞清背后谁在管网卡 —— 是 network.service 调 ifup,还是 NetworkManager 在监听 udev 事件。改配置前先 nmcli dev status 和 ip link show 对着看,比盲目 restart 有用得多。










