环境说明:
博客使用的linux版本:CentOS Linux release 7.7.1908 (Core)
终端语言调整:调整成汉语是为了方便学习,点击这里查看
【本期这里使用的是本地服务器; cat /etc/redhat-release】
yum源:阿里源
一、nmcli相关简介
NetworkManager:一个系统守护进程,有多种可用的图形化前端
NetworkManager会不断扫描系统上网络硬件的变化以及新的接入点。如果有新的有线网络可用,则NetworkManager会自动切换到该有线网络 。如果电线断开, NetworkManager会悄悄切换回首选的无线连接。
nmcli:
- nmcli是用于控制NetworkManager和报告网络状态的命令行工具。它可以替代 nm-applet或其他图形客户端。 nmcli用于创建,显示,编辑,删除,激活和停用网络连接,以及控制和显示网络设备状态
- 通过nmcli使用NetworkManager,而不是手动管理网络连接。nmcli支持简洁的输出格式,该格式更适合脚本处理。
二、演示环境准备
1.安装linux系统【CentOS Linux release 7.7.1908 (Core)】
2.VMware 添加多个网卡【我这里添加两个,nat模式】
3. 开启虚拟机
4. nmcli命令使用前要启动 NetworkManager服务
rpm -qa |grep NetworkManager #查看是否安装了对应包
dnf install -y NetworkManager #安装了可以跳过本步,未安执行安装
systemctl start NetworkManager #centos7启动方法
5. 验证 nmcli 命令是否可用
nmcli -v #查看nmcli版本
nmcli -t -f RUNNING general #显示NetworkManager是否在运行
nmcli -t -f STATE general #显示NetworkManager运行状态
三、nmcli常用参数介绍
参数 | 含义 |
---|---|
-a | 停止并询问所有缺少的必需参数网络 |
-c | 监控和管理网络设备的连接 |
-f | 指定打印那些字段 |
d | 监控和管理网络设备的接口 |
-g | 打印指定字段中的值 |
-p | 对齐值页眉,更容易阅读 |
-t | 简洁打印 |
-v | 显示nmcli版本 |
四、nmcli语法格式
- 网络控制命令
nmcli networking { on | off | connectivity } [ARGUMENTS…] - 连接管理
nmcli connection { show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export } [ARGUMENTS…]
五、nmcli命令应用
1. 网络控制命令
- 网络开启、关闭
nmcli radio wifi off #关闭wifi
nmcli networking off #关闭网络
nmcli networking on #开启网络
- 网络连通性
nmcli -p networking connectivity
补充内容:
常见状态 | 含义 |
---|---|
none | 主机未连接到任何网络。 |
portal | 无法访问Internet |
limited | 主机已连接到网络,但无法访问Internet |
full | 主机已连接到网络,并且可以访问Internet |
unknown | 找不到连接状态 |
2.连接管理命令
- 查看所有网络连接/查看活动网络连接
nmcli -p connection #显示所有网络连接信息
nmcli -p device status #查看所有的网卡设备
- 查看指定网卡详细信息
nmcli device show ens37 #显示指定网卡的详细信息
nmcli device show #显示所有网卡的详细信息
- 停用、启用和断开网卡
nmcli connection down '有线连接 1' #关闭ens37的网络连接
nmcli connection up '有线连接 1' #打开ens37的网络连接
nmcli device disconnect ens37 #断开ens37设备
nmcli connection delete '有线连接 1' #删除ens37设备 有线连接1 的网络配置文件
nmcli connection reload #重新加载配置文件
nmcli dev connect ens37 #连接ens37设备
#这里ens37 设备的连接叫 有线连接1 在你禁用后重新激活会话就可以解决了
- nmcli 网卡配置 (ens37示例)
nmcli connection modify ens37 connection.autoconnect yes #设置ens37设备开机启动
nmcli connection modify ens37 ipv4.method manual #关闭dhcp
nmcli connection modify ens37 ipv4.addresses 192.168.243.38/24 #修改iPv4地址
nmcli connection modify ens37 +ipv4.addresses 192.168.243.39/24 #添加ipv4地址
#nmcli connection modify ens37 -ipv4.addresses 192.168.243.39/24 #删除ipv4地址
nmcli connection modify ens37 ipv4.gateway 192.168.243.254 #修改网关
nmcli connection modify ens37 ipv4.dns 114.114.114.114 #修改dns
nmcli connection modify ens37 +ipv4.dns 8.8.8.8 #添加dns
nmcli connection down ens37 #停用网络连接
nmcli connection up ens37 #启用网络连接
修改后网卡配置文件中的内容
HWADDR=00:0C:29:24:D1:8B
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=f02ffae7-0799-4b18-8a5c-ebe14383f06a
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.243.38
PREFIX=24
GATEWAY=192.168.243.254
DNS1=114.114.114.114
DNS2=8.8.8.8
~
注意:修改配置文件后需要重启网卡连接生效
nmcli connection down ens37 #停用网络连接
nmcli connection up ens37 #启用网络连接
六、 补充:网卡配置文件说明
- 网卡配置文件路径:/etc/sysconfig/network-scripts
ll /etc/sysconfig/network-scripts/ifcfg-*
#都是网卡配置文件
我们也可以直接编辑网卡配置文件实现以上功能
HWADDR=00:0C:29:24:D1:8B #物理mac地址
TYPE=Ethernet #网络类型标识
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp #获取ip地址方式,static使用静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no #yes时激活的设备的IPv4配置失败意味着激活被认为是整体故障
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no #yes时激活的设备的IPv6配置失败意味着激活被认为是整体故障
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37 #连接名称
UUID=f02ffae7-0799-4b18-8a5c-ebe14383f06a #网卡唯一标识
DEVICE=ens37 #网卡名称
ONBOOT=yes #设置开机是否重启网卡