【Linux】nmcli命令详解

目录

一、概述

二、常用参数使用

[2.1 nmcli networking](#2.1 nmcli networking)

1.显示NM是否接管网络

2.查看网络连接状态

3.开/关网络连接

[2.2 general](#2.2 general)

?编辑

1.显示系统网络状态

2.显示主机名

3.更改主机名

[2.3 nmcli connection](#2.3 nmcli connection)

?编辑1.显示所有网络连接

2.显示某个网卡的详细信息

3.启动/关闭指定连接

4.修改

5.新增连接

6.删除连接

7.重载

8.监控连接

[2.4 nmcli device](#2.4 nmcli device)

?编辑1.显示所有网络接口设备状态

2.显示所有设备详细信息

3.连接设备

4.断开

5.更新设备


一、概述


以往我都是在linux的系统中都是通过配置文件来配置和修改ip的,今天我们就来说一说nmcli命令配置网络。

目前所有的linux系统配置网卡等信息,均已经推行Network-Manager服务去管理。nmcli 是 NetworkManager 的命令行工具。nm 代表 NetworkManager,cli 代表 Command-Line 命令行。

复制代码
# 查看运行状态
systemctl status NetworkManager
# 启动
systemctl start NetworkManager
# 重启
systemctl restart NetworkManager
# 关闭
systemctl stop NetworkManager

# 查看是否开机启动
systemctl is-enabled NetworkManager
# 开机启动
systemctl enable NetworkManager

二、常用参数使用


我们可以看help查看参数,man nmcli查看参数详细使用

版本**:**nmcli tool, version 1.12.0-6.el7

常用参数如下:

常用参数

释义

g[eneral]

NetworkManager的一般状态和操作

n[etworking]

网络整体控制

r[adio]

NetworkManager无线交换机

c[onnection]

NetworkManager无线交换机

d[evice]

通过NetworkManager管理设备

a[gent]

NetworkManager秘密代理或polkit代理

m[onitor]

监控NetworkManager更改

2.1 nmcli networking


1.显示NM是否接管网络
复制代码
mcli networking
#或
nmcli n
2.查看网络连接状态
复制代码
nmcli n connectivity
或者  
nmcli n c

五种状态:

  • full:联网
  • limited:联网,但无法上网
  • portal:联网,但需要登录认证
  • none:没网
  • unknown:未知
3.开/关网络连接
复制代码
nmcli n on
nmcli n off

如下关闭网络连接 ,xshell 断开了

我们可以看到网络关闭后网络设备 DEVICE : -- ,打开网络后DEIVCE : ens192

2.2 general


1.显示系统网络状态
复制代码
nmcli general status
#按照之前所说的简写规则,可以简写为
nmcli g s
  • STATE:网络是否连接
  • CONNECTIVITY:同nmcli n c
  • WIFI-HW:WIFI硬件开关
  • WIFI:WIFI软件开关
  • WWAN-HW:WWAN硬件开关
  • WWAN:WWAN软件开关
2.显示主机名
复制代码
nmcli general host
nmcli g h
3.更改主机名
复制代码
nmcli general hostname newhostname
nmcli g h newhostname

主机名存放在**/etc/hostname**中,修改后需要重启NM。

2.3 nmcli connection


1.显示所有网络连接
复制代码
nmcli connection show
nmcli c s
nmcli c #show是nmcli c的默认项,因此可以省略

显示当前启动的连接

复制代码
nmcli c s --active
nmcli c s -a #因为s后边有参数,因此不能省略
2.显示某个网卡的详细信息
复制代码
nmcli c s 设备名
3.启动/关闭指定连接
复制代码
# 如果某个设备原本就处于连接状态,那么该命令会重启它
nmcli c up 设备名

#  关闭之后,再用nmcli c查看,DEVICE项将显示--。
nmcli c down 设备名
4.修改
复制代码
nmcli c modify 设备名 [+ | -]选项 选项值
nmcli c m 设备名 [+ | -]选项 选项值

常用修改示例

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

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

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

复制代码
nmcli c m ens33 ipv4.method ""

如下修改主机IP地址

复制代码
nmcli connection modify ens192 ipv4.address 192.168.2.201/24
5.新增连接
复制代码
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 ens33 ifname ens33
6.删除连接
复制代码
nmcli c delete ens33  
nmcli c de ens33      # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
7.重载
复制代码
nmcli c reload  # 或
nmcli c r

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


## 指定文件
nmcli connection  load  /etc/sysconfig/network-scripts/ifcfg-ens192

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

8.监控连接
复制代码
# 监控ens192 
nmcli connection   monitor ffb0dc33-75d6-42b7-8cd4-509c465448e8

2.4 nmcli device


1.显示所有网络接口设备状态
复制代码
nmcli device status
nmcli d s
nmcli d
2.显示所有设备详细信息
复制代码
nmcli d show  
nmcli d sh         # show 不可简写为 s,否则与 status 冲突,但可以简写为 sh

# 显示指定设备详细信息
nmcli d sh ens192
3.连接设备
复制代码
nmcli d connect ens192  # 或
nmcli d c ens33
4.断开
复制代码
nmcli d disconnect ens192  # 或
nmcli d d ens33
5.更新设备
复制代码
nmcli d reapply ens192  # 或
nmcli d r ens33

参考原文链接:linux nmcli命令详解-CSDN博客

相关推荐
木心月转码ing17 小时前
WSL+Cpp开发环境配置
linux
JaguarJack19 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo19 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应2 天前
vi编辑器使用
linux·后端·操作系统
何中应2 天前
Linux进程无法被kill
linux·后端·操作系统
何中应2 天前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应2 天前
Linux常用命令
linux·操作系统
葛立国2 天前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel