环境:Fedora 43,NetworkManager 管理网络,基于 nmcli(NetworkManager Command Line Interface)操作。
WiFi 连接全流程
1. 确认网卡状态
输出示例:
1
2
3
| DEVICE TYPE STATE CONNECTION
wlan0 wifi disconnected --
eth0 ethernet connected Wired connection 1
|
如果 STATE 为 unmanaged,说明网卡未被 NetworkManager 接管:
1
| sudo nmcli device set wlan0 managed yes
|
2. 扫描可用网络
输出示例:
1
2
3
4
5
| IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
MyHome_5G Infra 149 1300 Mbit/s 75 ▂▄▆_ WPA2
MyHome_2.4G Infra 6 1300 Mbit/s 90 ▂▄▆█ WPA3
Neighbor_WiFi Infra 1 195 Mbit/s 30 ▂___ WPA2
* Office_Guest Infra 36 540 Mbit/s 60 ▂▄▆_ WPA2
|
IN-USE 列带 * 表示当前已连接的网络。
3. 连接 WiFi
基本连接(自动保存配置)
1
| sudo nmcli device wifi connect "MyHome_5G" password "your_password"
|
成功输出:
1
| Device 'wlan0' successfully activated with 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
|
此命令自动完成:生成 connection profile(保存在 /etc/NetworkManager/system-connections/)→ 触发 DHCP → 设置 autoconnect=yes。
连接隐藏 SSID
1
| sudo nmcli device wifi connect "Hidden_SSID" password "your_password" hidden yes
|
指定加密方式(避免协商不确定性)
1
| sudo nmcli device wifi connect "MyHome_5G" password "your_password" wep-key-type key
|
4. 查看活动连接与 IP
1
2
3
| nmcli connection show --active
ip addr show wlan0
ping -c 3 8.8.8.8
|
5. 切换 WiFi(断旧连新一步完成)
1
| sudo nmcli device wifi connect "New_SSID" password "new_password"
|
nmcli device wifi connect 会自动断开当前连接,无需手动先行断开。
6. 断开当前 WiFi
方式一:断开网卡(不会自动重连)
1
| sudo nmcli device disconnect wlan0
|
方式二:禁用连接配置(autoconnect 可能触发重连)
1
| sudo nmcli connection down "MyHome_5G"
|
方式三:彻底删除配置
1
| sudo nmcli connection delete "MyHome_5G"
|
nmcli 网卡操作参考
查看设备与连接
| 命令 | 用途 |
|---|
nmcli device status | 查看所有网卡状态、类型、连接情况 |
nmcli device show wlan0 | 查看指定网卡详细信息(驱动、MAC、IP、DNS 等) |
nmcli connection show | 列出所有 connection profile |
nmcli connection show --active | 列出当前活动的连接 |
nmcli connection show "MyHome_5G" | 查看指定连接配置详情 |
设备管理
| 命令 | 用途 |
|---|
nmcli device connect wlan0 | 让网卡尝试自动连接(根据已有 profile) |
nmcli device disconnect wlan0 | 断开网卡,不再自动连接 |
nmcli device set wlan0 managed yes | 将网卡纳入 NetworkManager 管理 |
nmcli device set wlan0 managed no | 将网卡排除出管理(变为 unmanaged) |
nmcli device reapply wlan0 | 重新应用当前连接配置 |
nmcli device wifi list | 扫描并列出附近 WiFi |
nmcli device wifi rescan | 强制重新扫描 |
nmcli device monitor wlan0 | 实时监控网卡状态变化 |
Connection Profile 管理
modify 常用示例
1
2
3
4
5
6
7
8
9
10
11
| # 设置静态 IP
sudo nmcli con modify "MyHome_5G" ipv4.addresses 192.168.1.100/24
sudo nmcli con modify "MyHome_5G" ipv4.gateway 192.168.1.1
sudo nmcli con modify "MyHome_5G" ipv4.dns "8.8.8.8,1.1.1.1"
sudo nmcli con modify "MyHome_5G" ipv4.method manual
# 关闭自动连接
sudo nmcli con modify "MyHome_5G" connection.autoconnect no
# 设置连接优先级(数字越大越优先)
sudo nmcli con modify "MyHome_5G" connection.autoconnect-priority 10
|
全局设置
| 命令 | 用途 |
|---|
nmcli general status | 查看 NetworkManager 整体状态 |
nmcli general hostname | 查看/设置主机名 |
nmcli general set wifi.on-demand on | 仅在需要时启用 WiFi(省电/安全) |
nmcli general permissions | 查看当前用户权限 |
配置文件操作
直接编辑后重载:
1
2
| sudo vim /etc/NetworkManager/system-connections/MyHome_5G.nmconnection
sudo nmcli connection reload
|
配置文件为 INI 格式,手动修改后必须 reload 才能生效。注意设置权限:
1
2
| sudo chmod 600 /etc/NetworkManager/system-connections/*.nmconnection
sudo chown root:root /etc/NetworkManager/system-connections/*.nmconnection
|