网络管理的结构
网络管理服务
早期的Linux发行版本里几乎所有的网络服务都是network服务。从RHEL7开始红帽官方建议采用NetWorkManager的方式配置网络。而不建议再使用network服务传统方式配置网络。
原因:
- 网络的复杂性,需要的网络的相关参数非常多。
- 早期配置网络的方法。几乎只有创建网卡配置文件,添加网络参数,修改网络参数,然后重启network服务,让network服务加载网卡配置文件到内存,然后让内核读取内存里面的网卡配置文件来获取网络配置。
目的:
- NetWorkManager早期涉及的目的是为了统一网络配置,统一网络配置的意思就是以后所有网络相关的配置都用NetWorkManager来实现。
NteWorkManger服务提供了3中工具可以用来配置网卡参数。无论那种都不需要,我们手工给的修改网卡的配置文件。
确认NetWorkManager服务是开启状态。
[root@redhat8-3 ~]# systemctl status NetworkManager
[root@redhat8-3 ~]# lshw -class net -businfo 查询网卡的总线信息
第一种工具 图形化管理工具(nm-connection-editor)
用NetWorkManager服务的图形化工具进行对网络配置文件进行管理。
网络管理工具正常需要认为的指定配置文件和网卡名字的关系。
[root@redhat8-3 ~]# nm-connection-editor 调出图形化工具
添加网卡配置文件信息
如果是在控制台操作,系统必须安装图形软件才可以调用出图形界面。
如果远程操作,即是Linux并没有安装图形界面,远程的终端服务器必须安装了图形服务器软件才可以调出图形。(Xming、XManger)
第二种:伪图形工具(nmtui)
通过终端的字符,模拟出图形界面,其实所看到的图形并不是真正的图形,而是字符组出来的。
[root@redhat8-3 ~]# nmtui 调用出伪图形
通过控制键盘,进行对配置文件进行编辑,或者添加配置文件。
第二种:命令行管理工具 nmcli (nm->network manager )(cli->command line interface)
1、nmcli 查看我们的网卡参数–硬件层面
[root@redhat8-3 ~]# nmcli device status 查看网卡参数
nmcli device status 显示内容共计4列
-
第一列:网卡的名称 (内核label)
-
第二列:网卡的类型(内核label)
-
第三列:当前网卡的状态(指的是networkmanger服务是否接管这块网卡。
-
如果第三列是 umanaged就表示该网卡没有被networkmanger服务接管。则无法使用networkmanger服务管理该网卡。
-
如果第三列是 disconnected ,意味着该网卡并没有使用任何配置文件。
-
如果第三列是 connected ,意味着该网卡正在使用某个配置文件
-
如果第三列是 connecting ,就意味着该网卡正在获取ip地址。
-
第四列:表示当前网卡使用的配置文件是 那个文件。 如果有文字,该网卡的配置文件就是该名字。如果是
--
就表示该网卡当前没有配置文件。
DEVICE (设备网卡) 物理网卡
CONNECTION(连接、网卡配置文件)
nmcli 可以补全,但是需要安装bash-completion-2.7-5.el8.noarch软件
支持补全
查看网卡和网卡配置文件信息
[root@redhat8-3 ~]# nmcli device status
2、删除网卡(只能删除虚拟网卡、无法删除物理网卡)
[root@redhat8-3 ~]# nmcli device delete 网卡名(只能删除虚拟网卡)
3、断开当前网卡与当前网卡的配置文件
nmcli device disconnect 网卡名
disconnect : 表示指定一个网卡并切断与当前网卡配置文件的联系
[root@redhat8-3 ~]# nmcli device disconnect ens224
4、让网卡与网卡配置文件相连接
[root@redhat8-3 ~]# nmcli device connect ens224
connect ;表示连接一个网卡的配置文
5、查看网卡的参数信息,可以查看有多少块网卡
nmcli device show
[root@redhat8-3 ~]# nmcli device show
6、查看具体网卡的详细信息 例如(查看ens160网卡的详细信息)
nmcli device show ens160
[root@redhat8-3 ~]# nmcli device show ens160
nmcli对网卡配置文件进行管理,常用的网卡配置文件参数有:
ip地址 、ip掩码 、ip.gateway 、DNS
ipmethod :表示手工配置还是dhcp自动获取地址
ip autoconnect : 表示开机是否自动连接
注意:操作网卡配置文件非常危险(前往不能配置远程连接的管理网卡配置文件)
一般来说管理网卡(控制网络的网卡)配置文件是装系统的时候就配置好的,我们操作的网卡配置文件一般都是 操作数据网络的网卡和存储网络的网卡。
对网卡配置文件进行操作
通过nmcli connection 操作的网卡配置文件默认目录在:/etc/sysconfig/network-scripts/下都是以 ifcfg-开头的,后面跟的是网卡配置文件名。
1、操作网卡的配置文件
[root@redhat8-3 ~]# nmcli connection show
网卡配置文件的信息:
第一列:表示网卡配置文件的名称
第二列:表示该网卡配置文件的UUID
第三列:表示该网卡配置文件的类型(一般是ethernet或者是bridge 也可能是tun )
第四列:device 表示配置文件服务的网卡。
2、添加一个网卡配置文件
命令: nmcli connection add
必须添加的三个参数是:
1、con-name :表示配置文件的名称
2、type: 表示配置文件的类型
3、ifname : 表示配置文件的网卡
如果一个网卡没有配置文件,那么添加之后就会直接将这个配置文件应用于该网卡。
如果在添加网卡配置文件的时候,只添加了默认的3个参数,该网卡的地址获取方式就是dhcp。
[root@redhat8-3 ~]# nmcli connection add
[root@redhat8-3 ~]# nmcli connection add con-name ens160-1 type ethernet ifname ens160 ipv4.addresses 1.1.1.10/24 ipv4.gateway 1.1.1.1
连接 "ens160-1" (f22f17a8-f4a3-447d-a7e2-20729d900bf1) 已成功添加。
想要这块网卡手工获取IP地址 需要在配置文件里面添加 `ipv.method manual`
3、删除一个网卡的配置文件
- 先通过 nmcli connection show 查看网卡的配置文件。
- 在将不需要的网卡配置文件进行删除:nmcl connection delete 网卡配置文件名
4、激活一个网卡的配置文件
nmcli connection up 网卡配置文件名
[root@redhat8-3 ~]# nmcli connection up ens224-2
5、关闭一个网卡的配置文件
nmcli connection down (网卡配置文件名)
[root@redhat8-3 ~]# nmcli con down ens224-2
6、查看一个网卡的配置文件
nmcli connection show
[root@redhat8-3 ~]# nmcli con show
7、重新加载一个网卡的配置文件
nmcli connection reload
在对网络配置文件里面的参数进行更改之后,需要进行重新重新加载,是将在硬盘里面的配置文件加载到内存中。
[root@redhat8-3 ~]# nmcli con reload 让所有网卡配置文件重新加载。
8、修改网卡配置文件
命令:
nmcli connection modify 网卡配置文件名称
modify与add的参数几乎相似
例子:
[root@redhat8-3 ~]# nmcli con modify ens224-2 ipv4.addresses 3.3.3.3/24 ipv4.gateway 3.3.3.1 ipv4.method manual connection.autoconnect yes
然后需要重新加载一下这个网卡配置文件(这里添加了参数:connection.autoconnect:(yes)表示下次开机是否自动启动。)
nmcli connection reload 网卡配置名
在进行对网卡进行激活
nmcli connection up 网卡配置文件
- 修改网卡配置文件名字
nmcli connection modify ens256-1 connection.id ens256-2
[root@redhat8-3 ~]# nmcli connection modify ens224-2 connection.id ens224-5
- 将网卡配置文件应用于别的网卡
nmcli connection modify ens256-2 connection.interface-name ens160(ens160表示网卡名)
[root@redhat8-3 ~]# nmcli con modify ens224-5 connection.interface-name ens160
这里因为管理网卡是(ens160) 所以这里就没有换。!!