38.2. 使用 nmcli 在离线模式下创建 keyfile 连接配置文件
使用 NetworkManager 工具(如 nmcli
)、network
RHEL 系统角色或 nmstate
API)来管理 NetworkManager 连接,以创建和更新配置文件。但是,您也可以使用 nmcli --offline connection add
命令,在离线模式下创建各种 keyfile 格式的连接配置文件。
脱机模式可确保 nmcli
在没有 NetworkManager
服务的情况下运行,以通过标准输出生成 keyfile 连接配置集。此功能在以下场景下很有用:
- 您需要创建需要预先部署的连接配置集。例如在容器镜像中,或者作为 RPM 软件包。
-
您希望在
NetworkManager
服务不可用的环境中创建连接配置文件,例如当您要使用chroot
工具时。或者,当您想通过 Kickstart%post
脚本创建或修改 RHEL 系统的网络配置时。
流程
以 keyfile 格式创建新连接配置集。例如,对于不使用 DHCP 的以太网设备的连接配置文件,请运行类似的
nmcli
命令:# nmcli --offline connection add type ethernet con-name Example-Connection ipv4.addresses 192.0.2.1/24 ipv4.dns 192.0.2.200 ipv4.method manual > /etc/NetworkManager/system-connections/example.nmconnection
注意使用
con-name
键指定的连接名称被保存到生成的配置集的id
变量中。当您使用nmcli
命令稍后管理这个连接时,请按如下所示指定连接:-
如果没有省略
id
变量,请使用连接名称,如Example-Connection
。 -
当没有使用
id
变量时,请使用没有.nmconnection
后缀的文件名,如output
。
-
如果没有省略
对配置文件设置权限,以便只有
root
用户可以读和更新它:# chmod 600 /etc/NetworkManager/system-connections/example.nmconnection # chown root:root /etc/NetworkManager/system-connections/example.nmconnection
启动
NetworkManager
服务:# systemctl start NetworkManager.service
如果将配置文件中的
autoconnect
变量设置为false
,激活连接:# nmcli connection up Example-Connection
验证
验证
NetworkManager
服务是否正在运行:# systemctl status NetworkManager.service ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-08-03 13:08:32 CEST; 1min 40s ago ...
验证 NetworkManager 是否可以从配置文件中读取配置集:
# nmcli -f TYPE,FILENAME,NAME connection TYPE FILENAME NAME ethernet /etc/NetworkManager/system-connections/examaple.nmconnection Example-Connection ethernet /etc/sysconfig/network-scripts/ifcfg-enp1s0 enp1s0 ...
如果输出没有显示新创建的连接,请验证密钥文件权限和您所用的语法是否正确。
显示连接配置文件:
# nmcli connection show Example-Connection connection.id: Example-Connection connection.uuid: 232290ce-5225-422a-9228-cb83b22056b4 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: -- connection.autoconnect: yes ...
其他资源
-
您系统上的
nmcli (1)
和nm-settings-keyfile (5)