NetworkManager-基本使用

参考 Archwiki

安装

1
sudo pacman -S networkmanager

主要两个工具:

  • nmcli, 命令行
  • nmtui, curses 界面

服务进程可用:

1
sudo systemctl start NetworkManager.service

nmcli 语法和逻辑

语法:

1
2
3
nmcli [OPTIONS...] {help | general | networking | radio |
connection | device | agent | monitor} [COMMAND]
[ARGUMENTS...]

有 8 个大类:

  • help
  • general, 一般功能. 如查看状态, 重新加载配置, 启用或禁用 NetworkManager
  • networking, 网络 “设置” 管理. 查看, 启用或禁用网络接口, 设置网络地址
  • radio, 无线电设备管理 (如无线网卡). 查看无线设备状态, 启用, 禁用无线设备, 扫描无线网络
  • connection, 网络连接管理. 查看连接列表, 建立, 修改, 删除, 激活, 停用连接
  • device, 网络设备管理. 查看设备列表, 启用或禁用设备
  • agent, 与代理相关.
  • monitor, 监控状态和事件

连接 (connection)

在 NetworkManager 中, 一个连接是指与网络相关的配置信息的集合, 它描述了如何与一个网络进行通信. 一个连接可以是有线连接, 无线连接, VPN 连接. (相当于就是保存了一堆配置)

一个连接包含:

  • 连接类型 (Connection Type), 如 wifi, ethernet, vpn
  • 连接名称 (Connection Name), 如 My Ethernet, Test
  • 连接设置 (Connection Setting)
  • 连接状态 (Connection State)

一个 device 可以有多个 connection 配置, 但在同一时间, 只能有一个 active connection.

nmcli device

查看设备状态

1
nmcli dev[vice] [status]

([] 里的都是可选)

断开一个设备的连接

1
nmcli device disconnect enp7s0

(注意只是断开这个 connection 的连接, 也就是网卡和这个配置文件之间断开, 而不是 down 掉设备)

将一个设备设置为连接状态

1
nmcli device connect enp7s0

(这里相当于恢复了 enp7s0 和其配置文件的连接)

nmcli connection

查看配置文件的状态

1
nmcli connection [show]

添加一个配置文件

1
nmcli connection add type ethernet ifname ens37 con-name ens37 ipv4.method auto autoconnect yes

(其会在 /etc/sysconfig/network-scripts/ 目录下添加一个配置文件)

手动配置 ip 地址的示例:

1
nmcli connection add type ethernet ifname ens37 con-name ens37 ipv4.addresses 192.168.177.21/24 ipv4.method manual ipv4.gateway 192.168.177.1 ipv4.dns 192.168.177.1 autoconnect yes

修改一个配置文件

1
nmcli connection modify ens37 ipv4.addresses 192.168.177.22/24 ipv4.gateway 192.168.177.2

激活一个配置文件

1
nmcli connection up con_name

Deactivate 一个配置文件

1
nmcli connection down con_name

修改配置, 添加或删除项

1
nmcli con modify con_name +ipv4.addresses 172.16.8.10/24

+ 来添加, 用 - 删除.

Connection 存放的位置

一般放在 /etc/NetworkManager/system-connections/ 目录下.

nmcli 配置和 ifcfg-* 配置文件对应表

nmcli 常用示例

重新读取配置

1
nmcli connection reload

显示附近 Wi-Fi 列表

1
nmcli device wifi list

连接一个 Wi-Fi

1
nmcli device wifi connection "$SSID" password "$PASSWORD"

设置 active-backup 类型 bond

添加一个 bond

1
nmcli connection add type bond ifname bond0 con-name bond0 mode active-backup 

给 bond 添加 ip 地址

1
nmcli connection modify bond0 ipv4.addresses 192.168.177.21/24 ipv4.gateway 192.168.177.1 ipv4.dns 192.168.177.1 ipv4.method manual autoconnect yes

给 bond 添加网卡

1
2
nmcli connection add type bond-slave ifname ens32 con-name ens32 master bond0
nmcli connection add type bond-slave ifname ens37 con-name ens37 master bond0

启用 bond

1
nmcli connection up bond0

创建 bridge

添加网桥接口

1
nmcli connection add type bridge ifname br0 con-name br0

添加 ip 地址

1
nmcli connection modify br0 ipv4.addresses 192.168.177.1/24 method manual

分配物理网卡

1
nmcli connection add slave-type bridge ifname ens32 con-name ens32 master br0

启用 bridge

1
nmcli connection up br0

物理接口配置创建

1
2
nmcli connection add con-name Demo type ethernet ifname enp1s0
nmcli connection up Demo

NetworkManager-基本使用
http://example.com/2024/01/12/NetworkManager-基本使用/
作者
Jie
发布于
2024年1月12日
许可协议