在无图形界面的linux设备上,需通过命令行连接wpa2 wi-fi:先启用wlan0接口、解除rfkill封锁、扫描ssid,再用wpa_passphrase生成或手动编辑配置,最后运行wpa_supplicant认证并dhclient获取ip。

在没有图形界面的Linux服务器、树莓派或嵌入式设备上,必须通过命令行连接WPA2加密的Wi-Fi网络才能获得互联网访问能力,否则系统将处于离线状态,无法更新软件、下载依赖或远程调试。
确认无线网卡可用并启用
运行 ip link show 查看所有网络接口,找到类型为 managed 且名称以 wlan 开头的接口(如 wlan0)。
若该接口状态中不含 UP 关键字,执行 ip link set wlan0 up 启用它;这一步失败通常意味着内核未加载对应无线驱动,需先检查 lspci | grep -i network 或 lsusb | grep -i wireless 确认硬件识别状态。
执行 rfkill list 检查是否有软/硬封锁——【如果显示“Soft blocked: yes”,必须先运行 rfkill unblock wifi,否则后续所有连接操作都会静默失败】。
扫描并确认目标SSID存在
使用 iw dev wlan0 scan | grep "SSID:" | sort -u 扫描周边网络,确认你要连接的SSID(例如 HomeNet)出现在结果中。
注意:部分路由器默认隐藏SSID,此时扫描结果里不会显示该网络名,你必须跳过本步,直接进入配置环节,但需确保手动输入的SSID拼写完全一致(区分大小写),否则认证会因找不到匹配网络而终止。
生成并写入WPA2预共享密钥配置
方法一:用 wpa_passphrase 一键生成加密配置
执行 wpa_passphrase "HomeNet" "your_password_here" >> /etc/wpa_supplicant/wpa_supplicant.conf,该命令会自动计算PSK哈希值并追加标准network块到配置文件末尾。
方法二:手动编辑配置文件(适用于无法执行命令或需复用已有配置)
打开 /etc/wpa_supplicant/wpa_supplicant.conf,确保文件开头包含以下两行:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
在文件末尾添加完整network块:
network={
ssid="HomeNet"
psk="your_password_here"
key_mgmt=WPA-PSK
}
⚠️ 注意:手动写入明文密码虽可工作,但会降低安全性——wpa_supplicant启动时会自动将其替换为哈希值并注释掉明文行;若你坚持保留明文,请额外加上 proto=RSN 和 pairwise=CCMP 以强制WPA2协议栈。
启动wpa_supplicant并关联认证
第一步:前台启动用于调试(推荐首次连接时使用)
运行 wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -dd,观察终端输出:
– 出现 CTRL-EVENT-CONNECTED 表示认证成功;
– 若卡在 Trying to associate with xx:xx:xx:xx:xx:xx 超过15秒,大概率是密码错误或AP拒绝接入(检查路由器MAC过滤或DHCP池是否已满)。
第二步:后台启动并持久化
认证成功后,按 Ctrl+C 终止前台进程,再执行:
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
第三步:获取IP地址
运行 dhclient wlan0 请求动态IP;若系统已安装 dhcpcd,则改用 dhcpcd wlan0。
验证连通性:执行 ping -c 3 8.8.8.8,能收到回复即表示Wi-Fi链路层和网络层均正常。











