如何在 Centos 7.6 上使用 NMCLI 配置网络接口
在此页
- 初步说明
- 网络设备
- 资料连接
安装 Linux 操作系统作为服务器后的第一件事是配置网络接口以进行远程访问,您可以在方便的时候从您的工作站/笔记本电脑和一杯咖啡来管理您的服务器。
在本教程中,我们将使用 nmcli,它代表网络管理器命令行工具来配置我们的网络接口。
初步说明
此命令的特殊性是您不需要任何要求,但是,它以 root 身份运行
nmcli的基本格式:
nmcli [OPTIONS] OBJECT { COMMAND | help }
OBJECT 可以是以下选项之一:connection、device、general、networking、radio、agent 和 monitor,我们可以使用这些选项的前缀:
nmcli -p 设备 --> nmcli -p dev --> nmcli -p d
注意:-p代表--pretty是一个选项
在教程的这一部分,我们将介绍两个对象:Connection 和 Device
网络设备
我们可以将此对象与那些最常用的命令一起使用:status、show 和 set
如果我们有很多具有状态的接口(设备),我们将从显示我们的接口(设备)开始:
nmcli device status
输出:

第一列是name interfaces,我的物理接口是ens33 可能和你的环境不一样,最后一列是profile的名字也叫“connection profile”。
另一种方式:
nmcli -p device
选项 -p 代表 Pretty 是人类可读的输出。
输出 :

我们使用 nmcli dev show 来列出关于所有接口的所有信息(这是很多信息),所以我们将指定一个我们将使用 ens33 的接口:
nmcli dev show ens33
输出:

这里的所有信息都非常明确,我们不需要查看此输出。
我们可以使用 set 命令设置任何设备是否使用 nmcli 进行管理。
列出我们的设备并检查它是否被管理。
nmcli device status
输出:

注意 STATE 列。
现在我将 ens33 更改为非托管接口。
sudo nmcli device set ens33 managed no
输出:

请注意,我们无法再使用 NetworkManager 管理 ens33 接口,但设备仍处于连接状态。
让我们启用管理 ens33 接口:
sudo nmcli device set ens33 managed yes
检查我的接口的状态:
nmcli device status
输出 :

最后,我们将了解如何使用断开连接和连接命令激活和停用我们的设备(接口)。
sudo nmcli dev disconnect ens33
您应该会收到一条成功消息:设备 \ens33 已成功断开连接。
显示设备状态:
nmcli dev status
输出:

注意 ens33 设备被标记为红色,状态为断开连接并且没有附加连接配置文件。重启后设备会自动激活,也可以手动激活。
激活我们的设备:
sudo nmcli dev connect ens33
输出:

成功激活的消息和最后的配置文件连接的 UUID。
我们接口的状态:
nmcli dev status
输出:

该界面不再停用。
配置文件连接
现在让我们通过显示信息来关注个人资料:
nmcli connection show
输出:

第一列是连接名称(不是设备名称),第二列是 UUID 或通用唯一标识符,最后一列是设备名称。
配置文件是保存在 /etc/sysconfig/network-scripts/ 中的接口配置,并以前缀 ifcfg- 命名,然后是配置文件的名称,让我们看看:

带有设备名称的配置文件是自动生成的,ifcfg-amine 是手动创建的。
现在让我们创建一些配置文件。
注意:我有两个物理接口连接到我的虚拟机 ens33 和 ens37。
我们将创建一个带有动态 IP 地址的以太网配置文件。
sudo nmcli con add type ethernet con-name HomeDHCP ifname ens37
接口是以太网类型,HomeDHCP 是配置文件的名称,ens37 是配置文件附加到的接口。
输出:

现在让我们看看配置文件:

请注意,这里的配置文件已创建但未附加到 ens37 接口,我们必须通过以下方式激活我们的新配置文件:
sudo nmcli con up HomeDHCP
注意配置文件的名称区分大小写。
输出:

再来看看:

注意第一列 NAME HomeDHCP 附加到 ens37 接口。并且 ens37 配置文件(自动生成)未附加到任何接口。
让我们看看个人资料:
nmcli con show HomeDHCP
并检查在 /etc/sysconfig/network-scripts/ifcfg-HomeDHCP 中创建的文件

让我们从 ens37 接口停用 HomeDHCP 配置文件。
sudo nmcli con down HomeDHCP
输出 :

请注意,默认配置文件附加到 ens37 接口。
让我们删除 HomeDHCP 配置文件:
sudo nmcli con delete HomeDHCP
输出:


不再有 HomeDHCP 配置文件。
现在让我们创建一个名为 HomeStatic 的带有静态地址 IP 的以太网配置文件。
sudo nmcli con add type ethernet con-name HomeStatic ifname ens37 ip4 192.168.0.10/24 gw4 192.168.0.1
输出:

检查我们的接口连接:
nmcli con s
输出:

请记住,我们必须通过激活配置文件将配置文件附加到界面:
sudo nmcli con up HomeStatic
输出:

显示配置文件配置:
nmcli dev show ens33
输出:

另一种方式,但有很多信息,所以我们将专注于我们想看到的内容。
输出:

注意这里我们没有 DNS 服务器的任何信息,所以我们将使用另一个命令添加一个 DNS 服务器:
sudo nmcli con modify HomeStatic ipv4.dns "8.8.8.8 8.8.4.4"
查看 :
nmcli c s HomeStatic

另一种添加 DNS 服务器地址的方法:
sudo nmcli c mod HomeStatic +ipv4.dns "192.168.0.1"

当然要删除一个 DNS 服务器地址:
sudo nmcli c mod HomeStatic -ipv4.dns "192.168.0.1"
到目前为止,我们完成了网络的基本操作,以使用这两个对象与我们的服务器进行通信,在下一个教程中我们将继续探索这些命令,并尝试以一个脚本来总结我们所做的事情。