在CentOS 7系统中,nmcli
(NetworkManager Command-Line Interface)是一个强大且功能丰富的命令行工具,用于管理网络连接,它取代了传统的ifcfg
脚本编辑方式,提供了更直观、可脚本化和一致性的网络管理体验,通过nmcli
,管理员可以轻松完成从查看网络状态、配置IP地址到管理复杂网络连接的各种任务。
核心概念:设备与连接
在深入使用nmcli
之前,理解两个核心概念至关重要:设备(Device)和连接(Connection)。
- 设备:指系统中的网络接口硬件,如
eth0
、ens33
或wlan0
。nmcli device status
可以查看所有设备及其当前状态(如已连接、未连接)。 - 连接:指应用于某个设备的一套网络配置参数,一个设备可以有多个连接配置,但在任何时刻只有一个连接可以被激活,这类似于为一张网卡准备多套“拨号设置”,可以根据需要在不同的网络环境(如办公室、家庭)下快速切换。
nmcli connection show
用于列出所有已保存的连接配置。
理解这两者的区别是掌握nmcli
的关键,我们操作的主要对象是“连接”,而不是“设备”。
基础命令速查
开始使用前,掌握几个基础命令可以帮助你快速了解当前网络环境。
# 查看NetworkManager整体状态 nmcli general status # 查看所有网络设备的状态 nmcli device status # 查看所有已保存的网络连接配置 nmcli connection show # 查看特定连接的详细信息 nmcli connection show "连接名称"
这些命令为你提供了网络环境的“全景图”,是进行任何配置前的必要步骤。
实战操作:配置静态IP地址
为服务器配置静态IP是管理员最常见的任务之一,假设我们要为网卡ens33
配置一个静态IP地址168.1.100
,子网掩码255.255.0
(或前缀24),网关168.1.1
,DNS为8.8.8
和8.4.4
。
步骤1:创建一个新的连接配置
我们可以创建一个名为static-ens33
的新连接,并将其绑定到ens33
设备上。
nmcli connection add type ethernet ifname ens33 con-name static-ens33 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4" ipv4.method manual
命令解析:
add type ethernet
:指定连接类型为以太网。ifname ens33
:指定此连接要绑定的网络设备。con-name static-ens33
:为这个连接配置起一个易于识别的名称。ipv4.addresses 192.168.1.100/24
:设置IPv4地址和子网前缀。ipv4.gateway 192.168.1.1
:设置默认网关。ipv4.dns "8.8.8.8,8.8.4.4"
:设置DNS服务器,多个地址用逗号隔开。ipv4.method manual
:明确指定IPv4的配置方法为手动(静态)。
步骤2:激活连接
创建后,连接并不会自动激活,需要手动启动它。
nmcli connection up static-ens33
ens33
设备就会使用static-ens33
连接配置中定义的静态IP参数进行通信。
实战操作:切换至DHCP动态获取IP
如果需要将ens33
从静态IP切换回由DHCP服务器自动获取IP,只需修改现有连接配置即可。
# 假设我们要修改名为 "static-ens33" 的连接 nmcli connection modify "static-ens33" ipv4.method auto # 重新激活连接以应用更改 nmcli connection down "static-ens33" && nmcli connection up "static-ens33"
ipv4.method auto
表示使用DHCP协议自动获取IP地址、网关和DNS等信息。
常用连接管理命令
除了创建和修改,日常管理还包括启动、停止和删除连接。
操作 | 命令 | 说明 |
---|---|---|
启动连接 | nmcli connection up <连接名称> | 激活指定的连接配置 |
停止连接 | nmcli connection down <连接名称> | 停用当前活动的连接,设备会变为未连接状态 |
删除连接 | nmcli connection delete <连接名称> | 永久删除一个已保存的连接配置 |
重新加载配置 | nmcli connection reload | 在修改了配置文件后,让NetworkManager重新读取所有配置 |
高级技巧:修改主机名与查看详情
nmcli
的功能不止于网络接口,它还可以管理系统主机名。
# 临时修改主机名(重启后失效) nmcli general hostname new-hostname # 永久修改主机名(推荐) hostnamectl set-hostname new-hostname
当网络出现问题时,查看详细的连接信息是排查故障的关键。
nmcli device show ens33
这个命令会显示ens33
设备当前激活的所有参数,包括IP、路由、DNS等,非常详尽。
相关问答FAQs
问题1:我使用 nmcli connection modify
命令修改了连接配置,为什么没有立即生效?
解答: nmcli connection modify
命令只是修改了保存在磁盘上的连接配置文件,要让这些更改应用到正在运行的系统上,您需要重新激活该连接,最简单的方法是先将其关闭再启动:nmcli connection down "连接名称" && nmcli connection up "连接名称"
或者,您也可以使用 nmcli device reapply 设备名
来尝试在不中断连接的情况下应用更改,但对于某些核心参数(如IP地址),重新激活连接是更可靠的方式。
问题2:如何为一个网络连接配置多个IP地址?
解答: nmcli
支持为单个连接配置添加多个IP地址,您可以使用 号前缀来添加一个新的IP地址,而不会覆盖现有的地址,要为名为 office-net
的连接再添加一个IP 0.0.50/24
:nmcli connection modify "office-net" +ipv4.addresses 10.0.0.50/24
执行后,同样需要重新激活连接才能使新的IP地址生效,要删除一个额外的IP地址,可以使用 号前缀,nmcli connection modify "office-net" -ipv4.addresses 10.0.0.50/24
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复