network服务及其启动流程介绍

本文探讨了CentOS 7中NetworkManager服务与传统network脚本的共存及其问题,重点讲解了network.service的启动流程,指出网络故障不影响部分网卡使用,并提到了如何通过ping测试网络连接。最后,对比了CentOS 7与8在网络服务选择上的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

先说一下NetworkManager服务:从RHEL/CentOS 7开始,网络功能默认由NetworkManager以服务的形式提供。NetworkManager是一个能够动态控制和配置网络的守护进程,管理网络服务和网络连接,对应NetworkManager.service服务。
旧的 /etc/init.d/network 以及 ifup,ifdown 等静态控制脚本依然存在,但是处于备用状态,即:NetworkManager运行时,多数情况下这些脚本会调用NetworkManager去完成网络配置任务;NetworkManager么有运行时,这些脚本就按照老传统管理网络。
但是由于Centos 7系列二者共存,且NetworkManager还不够完善,二者一并开启会出现一定的问题。所以大多数情况下用户会把NetworkManager关闭。只用network服务,network服务相关的内容,还是很值得探讨一下的。
(Centos 8系列已经摒弃了network服务,那就老老实实用NetworkManager吧~~)

使用

network.service是系统提供的服务之一,以兼容遗留的网络功能。该服务的运行也被纳入SystemD的管理,命令如下:

systemctl start|stop|restart|status network

启动流程分析

A picture is worth a thousand words. 上图:
network服务启动流程
通过上图可以发现network服务启动过程就是一个遍历需要自动连接网络的网络设备、通过调用ifup读取对应的配置和初始化。当然,启动过程中还会读取默认的route、VPN等配置。**最后就是sleep。**所以network服务其实就是启动时候进行一下网络配置,启动完之后就搁那儿看戏,啥事不管了(这也叫服务?可能是因为用systemd管理,作为服务进行对待了吧)。
在这里插入图片描述
更多的细节和stop、restart的流程,可以参考/etc/rc.d/init.d/network代码

一个小问题讨论

问:那么network服务起不来,是不是我们的网卡设备就不能用了呢?
**答:不完全是。**因为启动流程中network是通过遍历一个一个网卡来初始化的,以5个网卡为例,如果遍历顺序第3的网卡初始化有问题,导致network服务启动失败。网卡3可能是不能用的,但网卡1和网卡2已经初始化完成可以正常使用。网卡4和网卡5如果之前已经有配置过了,那么也可以使用。

小测试:在遍历过程中加入一个ping动作

在这里插入图片描述
重启系统,观察journalctl日志:(systemd[1]: Starting LSB: Bring up/down networking…代表开始启动network服务)
可以发现,在ens1f0网卡启动之后,此时network服务启动过程还没有完全结束,但网络已经正常可用了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值