ubuntu 网络管理--NetworkManager
- 1 介绍
- 2 NetworkManager 命令
- 2 nmcli 命令
- 显示可用的wifi AP
- 连接wifi
- 检查网络连接 ?? 如何删除
- 删除网络连接
- 查看设备状态
- 添加一个新的以太网连接
- 设置静态 IP 地址
- 启用并测试连接
- 添加新的wifi连接
 
- 3 其他命令
- 参考
1 介绍
NetworkManager 是标准的 Linux 网络配置工具套件。它支持从桌面到服务器、移动设备等多种网络设置,并且与流行的桌面环境和服务器配置管理工具集成得很好。
Ubuntu 18.04开始,Ubuntu和Debian移除了以前的ifup/ifdown命令和/etc/network/interfaces配置文件,转而使用ip link set或者/etc/netplan/01-netcfg.yaml模板和sudo netplan apply命令实现网络管理。
ip link set为iproute2工具集命令,多用于临时配置,取代ifup和ifdown。
如果安装的是服务器版本,则默认使用networkd进行管理,并且不会安装NetworkManager和提供nmcli接口。
 如果安装的是桌面版本,则默认使用NetworkManager进行管理。
 
2 NetworkManager 命令
- 查看是否安装了NetworkManager
sen@ubuntu:~$ systemctl --type=service | grep NetNetworkManager-wait-online.service                       NetworkManager.service                                   systemd-resolved.service                                 systemd-timesyncd.service                               
sen@ubuntu:~$
- 命令
systemctl status NetworkManager 查看NetworkManager状态
systemctl start NetworkManager 开启Net
systemctl restart NetworkManager 重新启动Net(PID值会发生变化)
systemctl reload NetworkManager 重新启动Net(PID值不会发生变化)
systemctl is-enabled NetworkManager 查看Net是否开机自启动
systemctl enable NetworkManager 设置Net开机自启动
2 nmcli 命令
NetworkManager 提供了两个非常好用的工具,nmcli(Network Manager Command line)和nmtui( Network Manager Text User Interface),从英文全称也可以看出来,前者是基于命令行,后者是基于光标的文本用户界面。
显示可用的wifi AP
sen@ubuntu:~$ nmcli device wifi list
IN-USE  BSSID              SSID          MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
*       10:C3:AB:9D:B0:73  Robot  Infra  149   260 Mbit/s  37      **    WPA1 WPA210:C3:AB:9D:8E:73  Robot  Infra  165   260 Mbit/s  37      **    WPA1 WPA210:C3:AB:9D:8F:93  Robot  Infra  157   260 Mbit/s  14      *     WPA1 WPA2
sen@ubuntu:~$
连接wifi
// 方法一
sudo nmcli device wifi connect "$SSID" password "$PASSWORD"eg:
sudo nmcli device wifi connect "worth" password "1234567890"// 方法二
sudo nmcli --ask device wifi connect "$SSID"
然后输入密码
检查网络连接 ?? 如何删除
sen@ubuntu:~$ nmcli con show
NAME                UUID                                  TYPE      DEVICE
docker0             b1c2dfd3-9e0c-44bf-8231-7700afd6b4ce  bridge    docker0
senLab-Robot        a6ce0039-85db-455c-b015-1c1f0565bf68  wifi      --
Wired connection 1  626af501-19ef-3bf7-b6ba-caecd7046979  ethernet  --
Wired connection 2  78640d99-496e-3e82-a4e3-6e8dc3dcc0cd  ethernet  --
sen                 dffecc96-c6cf-4973-ab5f-9253830d19ee  wifi      --
sen@ubuntu:~$
删除网络连接
sudo nmcli con del "$UUID"
查看设备状态
sen@ubuntu:~$ nmcli device status
DEVICE         TYPE      STATE         CONNECTION
wlan0          wifi      connected     sen
docker0        bridge    connected     docker0
p2p-dev-wlan0  wifi-p2p  disconnected  --
eth0           ethernet  unavailable   --
eth1           ethernet  unavailable   --
can0           can       unmanaged     --
can1           can       unmanaged     --
dummy0         dummy     unmanaged     --
lo             loopback  unmanaged     --
sen@ubuntu:~$
添加一个新的以太网连接
使用 nmcli 来添加一个新的以太网连接。确保你有一个空闲的网络接口,通常是 eth0、eth1 等。
sudo nmcli con add con-name bot-eth0 type ethernet ifname eth0
设置静态 IP 地址
为这个新连接分配一个静态 IP 地址、子网掩码、默认网关以及 DNS 服务器:
// eth0
sudo nmcli c m bot-eth0 ipv4.addresses "192.168.1.7/24"
sudo nmcli c m bot-eth0 ipv4.gateway "192.168.1.1"
sudo nmcli c m bot-eth0 ipv4.dns "8.8.8.8, 8.8.4.4"
sudo nmcli c m bot-eth0 ipv4.method 'manual'
启用并测试连接
sudo nmcli c up bot-eth0
ping 192.168.1.7
添加新的wifi连接
nmcli device wifi connect "TP-LINK" password "<PASSWORD>" ifname wlan0
3 其他命令
sen@ubuntu:~$ ip link show eth0
5: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 \
qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000link/ether b2:a2:7b:2b:8d:d7 brd ff:ff:ff:ff:ff:ffaltname enP4p65s0
sen@ubuntu:~$ ip link show eth1
6: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 \
qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000link/ether de:89:41:6c:a9:c1 brd ff:ff:ff:ff:ff:ffaltname enP2p33s0
sen@ubuntu:~$
参考
1、wiki–NetworkManager
 2、networkmanager.dev
 3、archlinux–NetworkManager
 4、掌握 nmcli 命令,轻松管理网络连接
 5、Netplan介绍
 6、Linux 系统中如何使用 nmcli 配置网络连接 ?
 7、Linux - 网络管理