NetWorkManager服务进行Linux网络管理

本文介绍了从RHEL7开始,NetWorkManager如何替代早期的network服务进行网络配置,包括图形化工具、伪图形工具nmtui和命令行工具nmcli的使用方法,以及如何管理和操作网卡配置文件以实现统一网络配置。

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

网络管理的结构

在这里插入图片描述

网络管理服务

早期的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) 所以这里就没有换。!!

### NetworkManager服务与network服务的区别 #### 设计理念 NetworkManager 是一种动态的、用户友好的网络管理工具,主要面向桌面环境和移动设备。它能够自动检测并切换网络连接,支持 Wi-Fi、有线网络以及移动宽带等多种类型的网络接入方式[^1]。相比之下,`network` 服务是一种传统的方式,主要用于服务器环境中静态配置网络接口,适合于不需要频繁更改网络设置的情况[^2]。 #### 使用场景 - **NetworkManager**: 更适用于需要灵活管理和快速响应变化的工作负载,比如笔记本电脑或虚拟机,在这些环境下可能经常更换不同的网络环境(例如从办公室到家庭Wi-Fi)。对于现代桌面发行版来说,这是默认的选择。 - **network 服务 (ifcfg)**: 主要针对那些追求稳定性和长期不变性的应用场景,如生产环境下的服务器部署。在这种情况下,管理员通常希望手动精确控制每一个细节而不依赖自动化过程带来的潜在风险[^3]。 #### 配置方法 ##### NetworkManager 的配置 可以使用命令行工具 `nmcli` 或图形界面 GUI 来完成大部分操作。例如通过以下命令启动特定的连接: ```bash nmcli connection up id "Your Connection Name" ``` 如果想修改某个现有连接,则可执行如下指令调整参数后再保存更改: ```bash nmcli con mod "ConnectionName" ipv4.addresses 192.168.1.10/24 nmcli con up "ConnectionName" ``` 另外还可以利用 D-Bus API 实现更复杂的定制化需求. ##### network 服务的配置 此方法涉及编辑 `/etc/sysconfig/network-scripts/ifcfg-*` 文件来定义每张网卡的具体属性。下面是一个典型的例子展示如何设定一张名为 eth0 的以太网适配器地址为固定IP形式: ```bash DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.10 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ``` 之后重启 networking service 让改动生效即可: ```bash systemctl restart network ``` 值得注意的是当两者共存时,默认优先级给予给了 NetworkManager, 如果想要完全移除它的影响则需将其关闭并且禁用开机自启状态同时确保开启 classic network stack : ```bash systemctl stop NetworkManager systemctl disable NetworkManager chkconfig network on service network start ``` 以上步骤基于 CentOS/RHEL 类似系统版本下适用。 --- ### 巨帧(MTU) 设置说明 为了提高数据中心内部通信效率或者满足某些特殊应用的要求(如分布式文件系统),有时我们需要增大 MTU 大小至接近最大值即 9000 字节长度。这被称为 Jumbo Frames 。可以通过简单的一条 ethtool 命令轻松达成目标;先确认当前实际使用的硬件端口名称再运行相应脚本: ```bash ethtool -K ens33 tx off rx off tso off gso off gro off lro off sg off ufo off ip link set dev ens33 mtu 9000 ``` 最后记得核查新设定是否成功实施: ```bash ip addr show ens33 | grep mtu ``` 上述代码片段展示了怎样改变指定网卡ens33的最大传输单元大小至9k字节数量级别[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值