Linux:nmcli指令

发布时间 2023-08-14 21:35:58作者: ShineLe

学习自:

Linux 中的 nmcli 命令 - 知乎

 

nmcli是NetworkManager提供的命令,使用时要确保NetworkManager服务处于启用状态

nmcli有四类常用命令:n(networking)、g(general)、c(connection)、d(device)

根据Linux的指令前缀写法,以上所有指令都可写作部分前缀,例如connection就可以从c、co、con一直写到connection,使用时效果相同

1、nmcli networking

1)显示NM是否接管网络

nmcli networking
#或
nmcli n

2)查看网络连接状态

nmcli n connectivity

五种状态:

  • full:联网
  • limited:联网,但无法上网
  • portal:联网,但需要登录认证
  • none:没网
  • unknown:未知

connectivity也可简写为c,所以上述命令可以简写为

nmcli n c

3)开/关网络连接

nmcli n on
nmcli n off

2、general

显示系统网络状态

nmcli general status
#按照之前所说的简写规则,可以简写为
nmcli g s

命令返回

  •  STATE:网络是否连接
  • CONNECTIVITY:同nmcli n c
  • WIFI-HW:WIFI硬件开关
  • WIFI:WIFI软件开关
  • WWAN-HW:WWAN硬件开关
  • WWAN:WWAN软件开关

显示主机名

nmcli general host
nmcli g h

更改主机名

nmcli general hostname newhostname
nmcli g h newhostname

主机名存放在/etc/hostname中。

修改后需要重启NM

3、nmcli connection

显示所有网络连接

nmcli connection show
nmcli c s
nmcli c #show是nmcli c的默认项,因此可以省略

显示当前启动的连接

nmcli c s --active
nmcli c s -a #因为s后边有参数,因此不能省略

显示某个网卡的详细信息

nmcli c s 设备名

启动指定连接

nmcli c up 设备名

如果某个设备原本就处于连接状态,那么该命令会重启它

关闭指定连接

nmcli c down 设备名

关闭之后,再用nmcli c查看DEVICE项将显示--

修改

nmcli c modify 设备名 [+ | -]选项 选项值
nmcli c m 设备名 [+ | -]选项 选项值

常用修改示例

nmcli c m ens33 ipv4.address 192.168.80.10/24  # 修改 IP 地址和子网掩码
nmcli c m ens33 +ipv4.addresses 192.168.80.100/24
nmcli c m ens33 ipv4.method manual             # 修改为静态配置,默认是 auto
nmcli c m ens33 ipv4.gateway 192.168.80.2      # 修改默认网关
nmcli c m ens33 ipv4.dns 192.168.80.2          # 修改 DNS
nmcli c m ens33 +ipv4.dns 114.114.114.114      # 添加一个 DNS
nmcli c m ens33 ipv6.method ignored            # 将 IPv6 禁用,针对CentOS8,三个可选项:disabled、auto、manual
nmcli c m ens33 connection.autoconnect yes     # 开机启动

注意在修改method前,要先修改address

使用空引号""代替选项值,可以将选项设回默认值

nmcli c m ens33 ipv4.method ""

此外connection还有许多选项,可以通过--help查看,主要是connection setting和ipv4 setting部分。

新增连接

nmcli c add type 连接类型 选项 选项值  
nmcli c a type 连接类型 选项 选项值

通常用的type是802-3-ethernet(别名 ethernet)。

选项同之前修改连接的选项,其中有几个重要选项:

connection.id(别名 con-name):连接名;

connection.interface-name(别名 ifname):设备名;

connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes

例子

nmcli c a type ethernet con-name ens36 ifname ens36

删除连接

nmcli c delete ens33  
nmcli c de ens33      # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de

重载

nmcli c reload  # 或
nmcli c r

nmcli c load ifcfg-ens33  # 或
nmcli c l ifcfg-ens33    

这里ifcfg网络配置文件默认保存在/etc/sysnconfig/network-scripts中,如果在其他位置,这里要写完整路径。

 

4、nmcli device

显示所有网络接口设备状态

nmcli device status
nmcli d s
nmcli d 

显示所有设备详细信息

nmcli d show  
nmcli d sh         # show 不可简写为 s,否则与 status 冲突,但可以简写为 sh

显示指定设备详细信息

nmcli d sh ens33

连接设备

nmcli d connect ens33  # 或
nmcli d c ens33  

断开

nmcli d disconnect ens33  # 或
nmcli d d ens33  

更新设备

nmcli d reapply ens33  # 或
nmcli d r ens33