三分钟速学网卡管理配置-nmcli命令

三分钟速学网卡管理配置-nmcli命令

三分钟速学网卡管理配置-nmcli命令

环境说明:
博客使用的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支持简洁的输出格式,该格式更适合脚本处理。

三分钟速学网卡管理配置-nmcli命令

二、演示环境准备

1.安装linux系统【CentOS Linux release 7.7.1908 (Core)】
2.VMware 添加多个网卡【我这里添加两个,nat模式】
三分钟速学网卡管理配置-nmcli命令
3. 开启虚拟机
4. nmcli命令使用前要启动 NetworkManager服务

rpm -qa |grep NetworkManager #查看是否安装了对应包
dnf install -y NetworkManager #安装了可以跳过本步,未安执行安装
systemctl start  NetworkManager #centos7启动方法

三分钟速学网卡管理配置-nmcli命令
5. 验证 nmcli 命令是否可用

nmcli -v #查看nmcli版本
nmcli -t -f RUNNING general #显示NetworkManager是否在运行
nmcli -t -f STATE general #显示NetworkManager运行状态

三分钟速学网卡管理配置-nmcli命令

三、nmcli常用参数介绍

参数 含义
-a 停止并询问所有缺少的必需参数网络
-c 监控和管理网络设备的连接
-f 指定打印那些字段
d 监控和管理网络设备的接口
-g 打印指定字段中的值
-p 对齐值页眉,更容易阅读
-t 简洁打印
-v 显示nmcli版本

四、nmcli语法格式

  1. 网络控制命令
    nmcli networking { on | off | connectivity } [ARGUMENTS…]
  2. 连接管理
    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 

三分钟速学网卡管理配置-nmcli命令
补充内容:

常见状态 含义
none 主机未连接到任何网络。
portal 无法访问Internet
limited 主机已连接到网络,但无法访问Internet
full 主机已连接到网络,并且可以访问Internet
unknown 找不到连接状态

2.连接管理命令

  • 查看所有网络连接/查看活动网络连接
nmcli -p connection #显示所有网络连接信息
nmcli -p device status  #查看所有的网卡设备

三分钟速学网卡管理配置-nmcli命令

  • 查看指定网卡详细信息
nmcli device show ens37 #显示指定网卡的详细信息
nmcli device show #显示所有网卡的详细信息

三分钟速学网卡管理配置-nmcli命令

  • 停用、启用和断开网卡
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命令

  • 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 #启用网络连接

三分钟速学网卡管理配置-nmcli命令

六、 补充:网卡配置文件说明

  • 网卡配置文件路径:/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 #设置开机是否重启网卡