nmcli
通常的 linux 发行版对于网络的配置方法一般会同时支持 network.service 和 NetworkManager.service(简称 NM)。默认情况下,这 2 个服务都有开启,而且功能上是平行的,可以通过任意一个来配置网络,正常的情况下通过 NM 来配置网络后它会自动把配置同步到 network.service 的配置中。
nmcli 是 NetworkManager 的命令行工具, 该命令可以完成网卡上所有的配置工作,绝大部分可以写入配置文件,永久生效 。
1 | nmcli [OPTIONS] OBJECT { COMMAND | help } |
OPTIONS:
1 | -t # terse output 简洁的输出 |
OBJECT
1 | g[eneral] # 显示NM状态和权限;获取和更改系统主机名、NetworkManager logging level and domains |
最常用的是 device 和 connection,主要是 connection
device
设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为 nmcli d
在 NM 里,有 2 个层级:连接(connection)和设备(device),通常 NM 的管理是以连接为单位的,就像你的手机可以记住多个 wifi 连接,但一个时刻只能连接一个 wifi。一个网卡可以关联多个连接,但是一个网卡只能有一个连接处于活跃状态,通过 nmcli connetion up
切换连接。
1 | # 查看网卡状态 |
connection
连接,可理解为配置文件,相当于 ifcfg-ethX。可以简写为nmcli c
。
1 | # 修改网卡名,注意修改的是NAME不是DEVICE |
ubuntu 使用 nmcli
ubuntu 默认情况下,无法使用 nmcli
修改
etc/netplan/*.yaml
1
2
3
4root@u2:~# vim /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: NetworkManager # 注意此行/etc/NetworkManager/NetworkManager.conf
1
2
3
4
5
6
7
8
9root@u2:~# vim /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=flase
[device]
wifi.scan-rand-mac-address=no应用配置
1
root@u2:~# netplan apply