nmcli
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,尤其是无线网络,能自动发现网卡并配置ip地址。
在rhel8上,必须开启NM,否则无法使用网络。
nmcli使用方法
nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全,也可在命令最后通过-h、--help、help查看帮助。在nmcli中有2个命令最为常用:
nmcli connection
译作连接,可理解为配置文件,相当于ifcfg-eth0。可以简写为nmcli c
nmcli device
译作设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d
在NM里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即 nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即 nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过 nmcli c up切换连接。
connection有2种状态:
▷ 活跃(带颜色字体):表示当前该connection生效
▷ 非活跃(正常字体):表示当前该connection不生效
device有4种常见状态:
▷ connected:已被NM纳管,并且当前有活跃的connection
▷ disconnected:已被NM纳管,但是当前没有活跃的connection
▷ unmanaged:未被NM纳管
▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ethX down)
配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type ethernet con-name eth0 ifname ens33 ipv4.method auto
type ethernet:创建连接时候必须指定类型,类型有很多,可以通过nmcli c add type -h看到,这里指定为ethernet。
con-name eth0 ifname ens33:第一个eth0表示连接(connection)的名字,这个名字可以任意定义,无需和网卡名相同;第二个ens33表示网卡名,这个ens33必须是在nmcli d里能看到的。
配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
nmcli c add type ethernet con-name eth0 ifname ens33 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual
ipv4.method对应ifcfg文件内容的BOOTPROTO,ipv4.method默认为auto,对应为BOOTPROTO=dhcp,这种时候如果指定ip,就可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual表示BOOTPROTO=none,即只有静态ip。
查看ip(类似于ifconfig、ip addr)
nmcli
启用指定网卡配置文件(相当于ifup)
nmcli c up ethX
停止指定网卡配置文件(相当于ifdown)
nmcli c down ethX
删除指定网卡配置文件(类似于ifdown并删除ifcfg)
nmcli c delete ethX
查看connection列表
nmcli c show
查看connection详细信息
nmcli c show ethX
重载所有网卡配置文件(不会立即生效)
nmcli c reload
重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
立即使网卡配置文件生效,有3种方法
nmcli c up eth0 # 启用指定网卡配置文件
nmcli d reapply eth0 #刷新网卡配置文件,前提是网卡的device处于connected状态,否则会报错。
nmcli d connect eth0 #激活网卡
查看网卡列表
nmcli d
查看所有网卡的详细信息
nmcli d show
查看指定网卡的详细信息
nmcli d show eth0
激活网卡(就算之前nmcli c delete eth0删除网卡配置文件,也可以使用此命令激活重新生成配置文件)
由NM对指定网卡进行管理,同时刷新该网卡对应的活跃connection(如果之前有修改过connection配置);如果有connection但是都处于非活跃状态,则自动选择一个connection并将其活跃;如果没有connection,则自动生成一个并将其活跃。
nmcli d connect eth0
nmcli d disconnect eth0
让NM暂时不管理指定网卡,此操作不会变更实际网卡的link状态,只会使对应的connection变成非活跃。若重启系统则又会自动connect。另外,如果手工将该网卡的connection全部删掉,该网卡状态也会自动变为disconnected。
关闭无线网络(NM默认启用无线网络)
nmcli r all off
查看NM启动状态
nmcli n
开启NM纳管
nmcli n on
关闭NM纳管(谨慎执行)
nmcli n off
监听事件
nmcli m
查看NM本身状态
nmcli
检测NM是否在线可用
nm-online
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix