《Linux 连接 KMUST-Auto 校园网失败的排查与解决》

在 Linux 上连接昆明理工大学 KMUST-Auto 校园 Wi-Fi 时,可能会遇到一个比较隐蔽的问题:账号和密码确认无误,但系统仍然一直无法连接。

这类问题不一定是账号密码错误。

实际排查中发现,KMUST-Auto 使用的是企业级 WPA2 802.1X 认证,部分较新的 Linux 系统可能会因为 OpenSSL / wpa_supplicant 默认安全策略较高,无法兼容学校认证服务器的旧 TLS/cipher 配置。

本文记录一次完整排查和解决过程。

问题现象

连接 KMUST-Auto 时,系统反复认证失败,NetworkManager 可能提示:

Passwords or encryption keys are required to access the wireless network 'KMUST-Auto'

或者一直停留在认证阶段,无法获取 IP。

确认过以下信息后,问题仍然存在:

  • 校园网账号正确
  • 校园网密码正确
  • Wi-Fi 信号正常
  • 同一账号在其他设备上可以使用

KMUST-Auto 的网络类型

KMUST-Auto 用的是企业级认证网络:

安全类型:WPA2 802.1X
EAP 方法:PEAP
二阶段认证:MSCHAPv2

需填写校园网账号和上网密码。

推荐基础配置

如果使用 NetworkManager,先确认或设置如下配置:

nmcli connection modify KMUST-Auto \
  802-11-wireless-security.key-mgmt wpa-eap \
  802-1x.eap peap \
  802-1x.identity '<校园网账号>' \
  802-1x.phase2-autheap mschapv2 \
  802-1x.system-ca-certs no

关键修复

真正解决问题的是这个参数:

nmcli connection modify KMUST-Auto \
  802-1x.openssl-ciphers 'DEFAULT:@SECLEVEL=0'

这个参数会降低该 Wi-Fi 连接在 OpenSSL 中使用的安全级别,使客户端能够兼容较旧的 802.1X/RADIUS 认证服务器。

完整修正命令如下:

nmcli connection modify KMUST-Auto \
  802-1x.phase2-auth "" \
  802-1x.phase2-autheap mschapv2 \
  802-1x.openssl-ciphers 'DEFAULT:@SECLEVEL=0' \
  802-11-wireless.cloned-mac-address permanent \
  802-11-wireless.mac-address-randomization never

然后重新连接:

nmcli connection up KMUST-Auto

为什么这样能解决

较新的 Linux 发行版通常使用较新的 OpenSSL 和 wpa_supplicant。默认安全级别提高后,客户端可能会拒绝某些旧版 RADIUS/802.1X 认证服务器使用的 TLS/cipher 配置。

此时即使账号和密码完全正确,认证握手也可能失败,看起来像是“密码错误”或“需要重新输入密码”。

DEFAULT:@SECLEVEL=0 的作用是针对这个 NetworkManager 连接降低 OpenSSL 安全级别,从而兼容旧认证服务器。

验证连接

连接成功后,可以检查 Wi-Fi 状态:

nmcli device status

查看 IP、网关和 DNS:

nmcli device show wlp0s20f3

测试网络连通性:

ping -c 2 223.5.5.5
ping -c 2 metc.kust.edu.cn

如果能够获取校园网 IP,并且可以 ping 通外网或学校站点,说明连接已经正常。

如果仍然失败

如果执行以上配置后仍然无法连接,可以继续检查:

  • EAP 方法是否为 PEAP
  • 二阶段认证是否为 MSCHAPv2
  • 是否关闭了随机 MAC / 私有 Wi-Fi 地址
  • 是否错误启用了 CA 证书校验
  • 账号是否被校园网系统限制或绑定
  • 该账号是否已达到同时在线设备数量上限

也可以删除旧配置后重新创建:

nmcli connection delete KMUST-Auto

然后通过图形界面或 nmcli 重新连接。

总结

KMUST-Auto 在 Linux 上无法连接时,如果账号密码确认无误

对于较新的 Linux 系统,排查方向是:

PEAP + MSCHAPv2 + 关闭随机 MAC + OpenSSL SECLEVEL 兼容

其中最关键的一项通常是:

nmcli connection modify KMUST-Auto \
  802-1x.openssl-ciphers 'DEFAULT:@SECLEVEL=0'

参考