ubuntu 网络管理--NetworkManager
- [1 介绍](#1 介绍)
- [2 NetworkManager 命令](#2 NetworkManager 命令)
- [2 nmcli 命令](#2 nmcli 命令)
-
- [显示可用的wifi AP](#显示可用的wifi AP)
- 连接wifi
- [检查网络连接 ?? 如何删除](#检查网络连接 ?? 如何删除)
- 删除网络连接
- 查看设备状态
- 添加一个新的以太网连接
- [设置静态 IP 地址](#设置静态 IP 地址)
- 启用并测试连接
- 添加新的wifi连接
- [3 其他命令](#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
shell
sen@ubuntu:~$ systemctl --type=service | grep Net
NetworkManager-wait-online.service
NetworkManager.service
systemd-resolved.service
systemd-timesyncd.service
sen@ubuntu:~$
- 命令
shell
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 WPA2
10:C3:AB:9D:8E:73 Robot Infra 165 260 Mbit/s 37 ** WPA1 WPA2
10:C3:AB:9D:8F:93 Robot Infra 157 260 Mbit/s 14 * WPA1 WPA2
sen@ubuntu:~$
连接wifi
shell
// 方法一
sudo nmcli device wifi connect "$SSID" password "$PASSWORD"
eg:
sudo nmcli device wifi connect "worth" password "1234567890"
// 方法二
sudo nmcli --ask device wifi connect "$SSID"
然后输入密码
检查网络连接 ?? 如何删除
shell
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:~$
删除网络连接
shell
sudo nmcli con del "$UUID"
查看设备状态
shell
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 等。
shell
sudo nmcli con add con-name bot-eth0 type ethernet ifname eth0
设置静态 IP 地址
为这个新连接分配一个静态 IP 地址、子网掩码、默认网关以及 DNS 服务器:
shell
// 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'
启用并测试连接
shell
sudo nmcli c up bot-eth0
ping 192.168.1.7
添加新的wifi连接
shell
nmcli device wifi connect "TP-LINK" password "<PASSWORD>" ifname wlan0
3 其他命令
shell
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 1000
link/ether b2:a2:7b:2b:8d:d7 brd ff:ff:ff:ff:ff:ff
altname 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 1000
link/ether de:89:41:6c:a9:c1 brd ff:ff:ff:ff:ff:ff
altname enP2p33s0
sen@ubuntu:~$