NetworkManager干扰wpa_supplicant:WiFi Direct组创建失败问题求助
解决NetworkManager运行下WPA_Supplicant WiFi Direct组被关闭的问题
核心原因
NetworkManager会自动接管wpa_supplicant创建的独立P2P虚拟接口(如p2p-wlo1-0),导致刚创建的WiFi Direct组被强制关闭。而set p2p_no_group_iface 1命令会让wpa_supplicant复用物理WiFi接口(如wlo1)进行P2P通信,避免生成新接口触发NetworkManager的接管逻辑。
C++应用实现方案
- 建立与wpa_supplicant的控制连接:调用
wpa_ctrl_open("wlo1")获取控制句柄,这是与wpa_supplicant交互的核心入口。 - 前置设置关键参数:在发起P2P操作前,通过
wpa_ctrl_request发送命令:SET p2p_no_group_iface 1,确保参数即时生效。 - 执行标准P2P流程:依次发送
P2P_FIND、P2P_CONNECT等命令完成组创建与连接,此时流量直接走物理接口,不会被NetworkManager干扰。 - 可选持久化配置:若不想每次启动应用都设置参数,可修改wpa_supplicant配置文件(通常为
/etc/wpa_supplicant/wpa_supplicant.conf),添加一行p2p_no_group_iface=1,NetworkManager默认会加载该配置。
验证方法
- 查看wpa_supplicant日志,确认组创建后无“组被关闭”的相关条目。
- 执行
iw dev命令,检查是否未生成新的P2P虚拟接口。
内容的提问来源于stack exchange,提问作者EddyIT
相关产品推荐
相关产品推荐

