目录
一、nmcli介绍
nmcli(Network Manager Command Line Interface),是Network Manager的命令行接口,用于Network Manager的管理和配置。
另外:在使用 nmcli 时,NetworkManager 必须保持开启。
NetworkManager的相关命令:
//查看运行状态
systemctl status NetworkManager
//启动:
systemctl start NetworkManager
//重启:
systemctl restart NetworkManager
//关闭:
systemctl stop NetworkManger
//查看是否开机启动:
systemctl is-enabled NetworkManager
//开机启动:
systemctl enable NetworkManager
//禁止开机启动:
systemctl disable NetworkManager
常用参数 | 释义 |
g[eneral] | NetworkManager的一般状态和操作 |
n[etworking] | 网络整体控制 |
r[adio] | NetworkManager无线交换机 |
c[onnection] | NetworkManager无线交换机 |
d[evice] | 通过NetworkManager管理设备 |
a[gent] | NetworkManager秘密代理或polkit代理 |
m[onitor] | 监控NetworkManager更改 |
二、常用的命令
conn可以简写为c,device可以简写为d,connectivity可以简写为c
开启网卡:nmcli conn up ens33
关闭网卡:nmcli conn down ens33
重启网络:systemctl start NetworkManager/systemctl restart NetworkManager/systemctl status NetworkManager
删除网络连接:nmcli conn delete eth0 或者 nmcli c de eth0
重载所有连接的配置文件:nmcli c reload或者nmcli c r
重载某一指定连接的配置文件:nmcli c load ifcfg-ens33或者nmcli c l ifcfg-ens33;另外,网络配置文件默认保存在/etc/sysconfig/network-scripts/路径下,如果配置文件在其他位置,则需要填写完整路径。
网络配置文件的命名方式就是ifcfg-连接名,例如ens33的配置文件名为ifcfg-ens33。
网络配置文件说明:
TYPE=Ethernet # 以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none # 静态配置,等同于 ipv4.method manual
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=ens33 # 连接名
UUID=16862343-b55e-4248-b05d-a3ea662a84a4
DEVICE=ens33 # 设备名
ONBOOT=yes # 开机自启
IPADDR=192.168.80.10 # IP 地址
PREFIX=24 # 子网掩码
GATEWAY=192.168.80.2 # 网关
DNS1=192.168.80.2 # DNS1
DNS2=114.114.114.114 # DNS2
建议使用nmcli命令来设置网络参数,不要直接修改此文件。
显示网络连接的详细信息:nmcli conn show,nmcli connection show 有一个-active参数,可以只显示当前启动的连接:nmcli c s -a
显示某一特定连接的详细信息:nmcli c s ens33
启动指定连接:nmcli c up ens33如果ens33本来就处于连接状态,那此命令会重启ens33
关闭指定连接:nmcli c down ens33,关闭连接后,使用nmcli c 命令,DEVICE项将显示为-
修改连接:nmcli c modify ens33 [ + | - ]选项 选项值 / nmcli c m ens33 [ + | - ]选项 选项值
比如: nmcli c m ens33 ipv4.address 192.168.80.10/24 # 修改 IP 地址和子网掩码
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 disabled # 将 IPv6 禁用
nmcli c m ens33 connection.autoconnect yes # 开机启动
注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!
查看路由:route -n
添加一个网卡连接:nmcli conn add type ethernet con-name eth0 ifname eno160
新增连接:nmcli c add type 连接类型 选项 选项值
或者 nmcli c a type 连接类型 选项 选项值
其中;type为必选项,我们通常用到的是802-3-ethernet(别名ethernet)。选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:connection.id(别名con-name):连接名;connection.interface-name(别名ifname):设备名;connection.autoconnet(别名autoconnect):是否开机自启,值可能是yes/no,默认yes.
实例:nmcli a type enthernet con-name ens36 ifname ens36
给网卡添加IP和子网掩码:nmcli conn modify eth0 +ipv4.addresses 192.168.0.58/24
删除网卡的IP和子网掩码:nmcli conn modify eth0 -ipv4.addresses 192.168.0.58/24
显示NetworkManager是否接管网络设置:nmcli networking 可以简写为nmcli n;
显示所有网络接口设备的状态:nmcli device status ,可以简写为nmcli d\de\dev status
另外:status 是device的默认项,可以省略不写。所以,以上命令简写为nmcli d;显示所有设备的详细信息:nmcli d show 后者 nmcli d sh;显示某一特定设备的详细信息:nmcli d sh ens33;连接设备nmcli d connect ens33或者 nmcli d c ens33;如果ens33本来就处于连接状态,那么此命令会重新激活ens33。断开设备:nmcli d disconnect ens33或者nmcli d d ens33;更新设备信息:nmcli d reapply ens33或者nmcli d r ens33;只有在设备处于连接状态,才可以更新设备,更新设备相当于重启连接。
查看网络连接的可达性:nmcli n connectivity 网络连接状态共五种:full(连网,且至少有一个活跃的连接)、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)、unknown。另外,connectivity 可以简写为c,所以上面的命令可以写成nmcli n c
设定NetworkManager接管网络设置:nmcli n on
取消NetworkManager接管网络设置:nmcli n off
显示系统网络状态:nmcli general status 或者 nmcli g;其中:STATE显示网络是否连接;
CONNECTIVITY与前面介绍的nmcli networking connectivity相同;WIFI-HW表示WIFI硬件开关、WIFI表示WIFI软件开关;WWAN-HW表示WWAN硬件开关、WWAN表示WWAN软件开关。HW代表hardWare,WWAN代表Wireless Wide Area Network。
显示主机名:nmcli g
更改主机名:nmcli g h newHostName;主机名存放在/etc/hostname文件中,修改主机名后,需要重启NetworkManager,systemctl restart NetworkManager
三、图形展示
3.1nmcli networking
3.1.1显示NM是否接管网络
3.1.2查看网络连接状态
full连网;limited连网,但无法上网;portal连网,但需要登录认证;none没网;unknown未知。
3.1.3开/关网络连接
如果关闭网络连接,xshell就断开了。
3.2 general
3.2.1显示网络状态
- STATE:网络是否连接;
- CONNECTIVITY:同nmcli n c ;
- WIFI-HW:WIFI硬件开关;
- WIFI:WIFI软件开关;
- WWAN-HW:WWAN硬件开关;
- WWAN:WWAN软件开关;
3.2.2显示主机名
3.2.3更改主机名
主机名存放在/etc/hostname中,修改后需要重启NM。
3.3nmcli connection
3.3.1显示所有网络连接
显示当前启动的连接
3.3.2显示某个网卡的详细信息
3.3.3启动和关闭连接
3.3.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
3.3.5新增连接
nmcli c add type 连接类型 选项 选项值
nmcli c a type 连接类型 选项 选项值
其中;type为必选项,我们通常用到的是802-3-ethernet(别名ethernet)。选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:connection.id(别名con-name):连接名;connection.interface-name(别名ifname):设备名;connection.autoconnet(别名autoconnect):是否开机自启,值可能是yes/no,默认yes.
示例:nmcli c a type ethernet con-name ens33 ifname ens33
3.3.6删除连接
nmcli c delete ens33
nmcli c de ens33 # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
3.3.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中,如果在其他位置,这里要写完整路径。
3.3.8监控连接
# 监控ens192
nmcli connection monitor ffb0dc33-75d6-42b7-8cd4-509c465448e8