You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用wpa_supplicant配置有线802.1x认证失败求助

有线802.1x认证失败排查(Docker环境)

问题背景

通过两个Ubuntu Docker容器搭建有线802.1x环境,FreeRADIUS服务端与客户端部署完成后,radtest测试可正常连接服务器,但配置wpa_supplicant实现开机自动连接时认证失败。

客户端wpa_supplicant.conf配置

ap_scan=0
network={
              key_mgmt=IEEE8021X
              identity="testing"
              password="password"
              eap=MD5
              } 

执行命令

wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -dd -D wired -i eth0

关键日志异常点

从输出日志中能发现核心矛盾:配置指定使用MD5作为EAP认证方式,但日志中加载的却是PEAP+MSCHAPV2参数:

phase1 - hexdump_ascii(len=11):
     70 65 61 70 6c 61 62 65 6c 3d 30                  peaplabel=0
phase2 - hexdump_ascii(len=13):
     61 75 74 68 3d 4d 53 43 48 41 50 56 32            auth=MSCHAPV2

遗漏配置与解决步骤

1. 修正wpa_supplicant.conf配置

强制锁定EAP类型,清除冗余参数,避免自动加载其他认证方法:

ap_scan=0
eapol_flags=0
network={
    key_mgmt=IEEE8021X
    identity="testing"
    password="password"
    eap=MD5
}
  • eapol_flags=0:禁用自动EAP方法协商,强制使用配置指定的类型
  • 移除所有PEAP相关参数,确保配置只保留MD5认证逻辑

2. 排查配置文件干扰

Docker容器中可能存在默认配置文件或自动加载的子配置,执行命令时务必指定完整且唯一的配置文件路径,避免加载其他冲突配置:

wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -dd -D wired -i eth0

同时检查容器内/etc/wpa_supplicant/conf.d/目录,删除该目录下所有自动加载的配置文件。

3. 匹配EAPOL版本

日志显示当前使用eapol_version=2,如果FreeRADIUS服务端配置为EAPOLv1,需在wpa_supplicant.conf全局区域添加:

eapol_version=1

4. 调整Docker网络模式

有线802.1x需要二层EAPOL帧直接传输,默认bridge网络会过滤此类报文,需将容器切换为host网络模式:

docker run --network=host ...

或使用支持二层转发的自定义网络。

5. 验证FreeRADIUS服务端配置

确保服务端已启用MD5 EAP模块,检查/etc/raddb/mods-enabled/eap配置:

eap {
    default_eap_type = md5
    md5 {
    }
}

确认md5模块已启用,且未强制要求其他EAP类型。

验证方法

修改配置后重新执行命令,查看日志中是否出现MD5相关的EAP方法加载记录,若配置生效且服务端正常响应,认证即可成功。

内容的提问来源于stack exchange,提问作者Tobias Nilsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:05:23