当你进入一个linux操作系统之后,你首先想了解恐怕就是这个环境的网络状态了,如果你使用的linux桌面GUI系统,你可以直接查看桌面上的网络图标;如果你使用的是服务器text文本模式登录,那恭喜你,下面的使用方式可以帮到你;
openEuler 20.03-LTS、Redhat 8.x、CentOS 8.x、fedora 32等都已经默认使用的是NetworkManager来管理操作系统网络了,至于你说为啥不继续用network服务了,那我们就先看下network和NetworkManager的区别哈,知其然,知其所以然!
*************************network**************************************
network是一个系统服务,你可以使用systemctl来查看该服务状态;这个服务是由initscripts软件包提供的,你看这个initscripts软件包名字你也能猜出来,这个包提供了操作系统运行起来后的一些脚本对系统做一些设备初始化,其中就包括对网络设备做初始化;
linux-oycygI:~ # systemctl status network
● network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: active (exited) since Sun 2020-06-07 13:09:13 CST; 1 months 0 days ago
Docs: man:systemd-sysv-generator(8)
Process: 3069 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
linux-oycygI:~ # rpm -qf "/etc/rc.d/init.d/network"
initscripts-9.49.39-1.1.h8.x86_64
之后我们再刨根问底儿,查下这个服务脚本到底是怎么管理网卡设备的,那就要直接看这个脚本的源码了,下面是openEuler社区该包的源码包,大家自行下载查看;
https://gitee.com/src-openeuler/initscripts/blob/master/initscripts-10.01.tar.gz
我这边为了方便,直接github上查看已经展开的脚本文件,链接如下:
https://github.com/fedora-sysv/initscripts/blob/master/etc/rc.d/init.d/network
从下面的脚本内容就可以看出来,是直接去/etc/sysconfig/network-scripts下面找ifcfg-*文件(该文件时每个网卡设备的配置文件)
# Check that networking is up.
is_false "${NETWORKING}" && exit 6
# if the ip configuration utility isn't around we can't function.
[ -x /sbin/ip ] || exit 1
CWD=$(pwd)
cd /etc/sysconfig/network-scripts
. ./network-functions
# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=$(ls ifcfg-* | \
LC_ALL=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo$\|:\|ifcfg-.*-range\)/d' \
-e '{ s/^ifcfg-//g;s/[0-9]/ &/}' | \
LC_ALL=C sort -k 1,1 -k 2n | \
LC_ALL=C sed 's/ //')
rc=0
好了,到这里,我们知道了network是怎么管理网络设备的;那接下来就要看日常通过什么命令来查看/设置network服务管理下的网络配置
*************************ifconfig命令**************************************
大家默认喜欢用的是ifconfig和ip命令,那这两个命令是来自哪里的呢?分别是来自net-tools和iproute
linux-oycygI:~ # rpm -qf "/usr/sbin/ifconfig"
net-tools-2.0-0.17.20131004git.h3.x86_64
linux-oycygI:~ # rpm -qf "/usr/sbin/ip"
iproute-3.10.0-87.h8.x86_64
ifconfig的基本命令使用方式也在这里给大家一并整理