centos 8中network.service默认不存在,因其依赖的network-scripts包已从base仓库移除;需手动安装该包并禁用networkmanager才能启用network.service,否则两者冲突导致网络异常。

network.service 不存在?先装 network-scripts 包
CentOS 8 默认不带 network.service,不是服务被停了,而是根本没安装。它依赖的底层包 network-scripts 已被移出 base repo,必须手动装:
- 运行
yum install network-scripts -y(注意:不是network,那个包不存在) - 装完后检查服务是否存在:
systemctl list-unit-files | grep network,应能看到network.service状态为disabled - 如果提示
Package network-scripts is not available,说明你用的是 CentOS Stream 8 或精简镜像,需先启用baseos和appstream仓库
这个包装的是 /etc/sysconfig/network-scripts/ifup、ifdown、systemctl restart network 的全部逻辑,没它,后续所有操作都无效。
NetworkManager 和 network.service 不能共存
两者会抢网卡控制权,直接导致 ifconfig 显示 UP 但 ping 不通、或 ip a 里地址反复消失。必须二选一:
- 停用并禁用 NetworkManager:
systemctl stop NetworkManager && systemctl disable NetworkManager - 确认它没残留进程:
ps aux | grep NetworkManager,若有残留,kill掉再清空/var/lib/NetworkManager/(可选,但推荐) - 启动
network.service:systemctl start network && systemctl enable network - 验证:执行
ip link show,再改一个ifcfg-xxx文件里的IPADDR,然后systemctl restart network,看是否立即生效
别跳过禁用 NetworkManager 这步——哪怕只留它 running,network.service 就会拒绝接管设备。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
ifcfg 文件写法有坑,尤其 ONBOOT 和 DEVICE
CentOS 8 的 ifcfg 解析比老版本更严格,常见错误包括:
-
DEVICE=eth0必须和实际接口名完全一致(用ip link show确认,很可能是ens192或enp0s3) -
ONBOOT=yes是硬性要求,否则systemctl restart network不加载该接口 -
BOOTPROTO=static时,IPADDR、NETMASK、GATEWAY缺一不可;若用PREFIX,就别写NETMASK,否则冲突 - 别加
UUID字段——这是 NetworkManager 用的,network.service会忽略甚至报错
一个最小可用示例:
DEVICE=ens192<br>BOOTPROTO=static<br>ONBOOT=yes<br>IPADDR=192.168.1.100<br>PREFIX=24<br>GATEWAY=192.168.1.1<br>DNS1=8.8.8.8
重启后网络不通?大概率是路由或防火墙没同步
network.service 启动时不会自动刷新 firewalld 规则,也不重载 iptables,容易出现“IP 配好了但连不上”:
- 检查路由:
ip route show,确认默认路由存在;若缺失,手动加:ip route add default via 192.168.1.1 dev ens192 - 临时关防火墙测试:
systemctl stop firewalld,再 ping 外网 - 如果用了
iptables而非firewalld,确保iptables-services已安装且规则文件在/etc/sysconfig/iptables - 别信
ifconfig输出——它不显示 IPv6 地址或多 IP,一律用ip a和ip r
最常被忽略的是:NetworkManager 停掉后,它之前设置的 DNS(比如写进 /etc/resolv.conf 的)可能被清空,记得检查该文件内容是否还剩有效 nameserver。










