Ubuntu中wlan配置

前言

在 Ubuntu 的命令行中设置无线网络,可按以下步骤操作:

检查无线网卡状态

是否开启飞行模式

首先要确保无线网卡已启用,使用 iwconfig 命令查看无线网卡信息:

1
iwconfig

此命令会列出系统中所有的网络接口,无线网卡通常以 wlan 开头(如 wlan0)。

查看无线网卡是否被禁用

1
rfkill list

如果看到 Soft blocked: yes,说明被软件禁用(开启了飞行模式),执行以下命令启用:

1
sudo rfkill unblock wifi

无线接口是否启动

首先检查无线接口是否处于 “UP” 状态:

1
ip link show wlan0

如果显示 DOWN,执行以下命令启用接口:

1
sudo ip link set wlan0 up

是否被管理

1
2
3
4
5
6
7
8
# 检查无线接口是否被 NetworkManager 管理
nmcli device status

# 如果显示 "unmanaged",执行以下命令让其被管理
sudo nmcli device set wlan0 managed yes

# 重启 NetworkManager
sudo systemctl restart NetworkManager

扫描可用的无线网络

扫描网络

使用 iwlist 命令扫描附近的无线网络:

1
sudo iwlist wlan0 scan | grep ESSID

这里的 wlan0 是你的无线网卡名称,若你的无线网卡名称不同,需相应替换。

该命令会列出所有可用无线网络的名称(ESSID)。

后续连接使用的SSID就是这里扫到的ESSID。

确认接口状态是否正常

如果报错

wlan0 Failed to read scan data: Invalid argument

首先检查无线接口是否处于 “UP” 状态:

1
ip link show wlan0

如果显示 DOWN,执行以下命令启用接口:

1
sudo ip link set wlan0 up

测试

使用nmcli命令连接 WiFi:

1
sudo nmcli dev wifi connect "YXKJ" password "chrdw@123"
1
sudo nmcli device wifi connect "YXKJ" password "chrdw@123" ifname wlan0

测试网络

1
ping www.baidu.com

创建WiFi并开机自启

使用以下命令创建一个新的 WiFi 连接配置:

1
2
3
4
5
6
7
8
9
10
# 替换以下参数:
# <连接名>:自定义名称(如myhomewifi)
# <WiFi名称>:要连接的WiFi的SSID
# <WiFi密码>:WiFi密码
# <无线接口>:你的无线网卡接口(如wlan0)

sudo nmcli connection add type wifi con-name "<连接名>" ifname "<无线接口>" ssid "<WiFi名称>"
sudo nmcli connection modify "<连接名>" wifi-sec.key-mgmt wpa-psk
sudo nmcli connection modify "<连接名>" wifi-sec.psk "<WiFi密码>"
sudo nmcli connection modify "<连接名>" connection.autoconnect yes

示例

1
2
3
4
sudo nmcli connection add type wifi con-name "YXKJ" ifname "wlan0" ssid "YXKJ"
sudo nmcli connection modify "YXKJ" wifi-sec.key-mgmt wpa-psk
sudo nmcli connection modify "YXKJ" wifi-sec.psk "chrdw@123"
sudo nmcli connection modify "YXKJ" connection.autoconnect yes

启动连接

1
sudo nmcli connection up "<连接名>"

验证配置

1
2
3
4
5
# 查看连接状态
nmcli connection show "<连接名>"

# 检查是否获取到IP
ip addr show <无线接口>

管理连接(可选)

1
2
3
4
5
6
7
8
# 查看所有保存的连接:
nmcli connection show

# 断开连接:
sudo nmcli connection down "<连接名>"

# 删除连接:
sudo nmcli connection delete "<连接名>"

这样配置后,系统会在开机时自动连接到该 WiFi 网络。

nmcli 配置会被保存到 /etc/NetworkManager/system-connections/ 目录下,确保了配置的持久性。

如果遇到问题,可以重启 NetworkManager 服务:

1
sudo systemctl restart NetworkManager

设备排查

1. 先确认无线设备状态

执行命令查看设备当前状态:

1
nmcli device status

重点关注你的无线设备(如 wlan0)的 STATE 列,常见问题状态:

  • unavailable:设备未被识别或驱动未加载
  • disconnected:设备可用但未连接
  • activating:正在连接过程中(可能卡住)

2. 解决unavailable状态

如果设备显示 unavailable,按以下步骤恢复:

步骤 1:检查并启用设备

1
2
3
4
5
6
7
8
# 尝试设备设为 "up" 状态
sudo ip link set wlan0 up

# 解除可能的软件屏蔽
sudo rfkill unblock wifi

# 确认设备状态(应显示 "UP")
ip link show wlan0

步骤 2:重新加载驱动

若设备仍不可用,可能是驱动未正确加载:

1
2
3
4
5
6
# 查看无线网卡型号及驱动
lspci -nnk | grep -A 3 -i network

# 假设驱动名为 iwlwifi(根据实际输出替换)
sudo rmmod iwlwifi # 卸载驱动
sudo modprobe iwlwifi # 重新加载驱动

步骤 3:让 NetworkManager 管理设备

1
2
3
4
5
# 确保设备被NetworkManager管理
sudo nmcli device set wlan0 managed yes

# 重启NetworkManager服务
sudo systemctl restart NetworkManager

3. 处理activating”状态

activating”状态(连接卡住)

如果设备显示 activating 且长时间无响应,可能是连接过程卡住,需要强制重置:

1
2
3
4
5
6
7
8
9
# 终止当前激活过程
sudo nmcli connection down "YXKJ" # 替换为你的连接名

# 重置设备状态
sudo nmcli device set wlan0 managed no
sudo nmcli device set wlan0 managed yes

# 重启NetworkManager
sudo systemctl restart NetworkManager

4. 再次尝试扫描

完成上述步骤后,重新执行扫描命令:

1
2
3
4
5
6
7
8
# 等待2-3秒让设备初始化
sleep 3

# 重新扫描
sudo nmcli device wifi rescan

# 查看扫描结果
nmcli device wifi list

如果问题依旧,可能是驱动兼容性问题,建议:

  • 升级系统内核和固件:sudo apt update && sudo apt upgrade -y && sudo reboot
  • 检查无线网卡型号,安装官方专用驱动(如 Intel、Broadcom 等品牌官网驱动)
  • 若使用 USB 无线网卡,尝试更换 USB 接口或重新插拔

通过以上步骤,多数情况下能恢复设备可用性并正常扫描网络。