wpa_supplicant p2p连接测试

本文详细描述了在两台Ubuntu系统上配置P2P无线网络连接(包括PIN码和PBC方式),以及如何配置DHCP服务器为连接设备分配IP地址的过程。涉及的配置文件和步骤对IT技术人员有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分参照https://blog.youkuaiyun.com/weixin_44498318/article/details/126810994,实际测试中碰到问题,对流程有所改动,因此发出。

使用两台ubuntu电脑测试,测试指令已经过验证。

1. 配置文件

1.1. p2p.conf

ctrl_interface=/var/run/wpa_supplicant
update_config=1
device_name=TEST_GO
device_type=10-0050F204-5 #如果没有这个信息部分手机pin方式不能连接 不弹出pin输入窗口
#config_methods=virtual_display keypad #pin方式
config_methods=virtual_display keypad virtual_push_button #pbc方式 实测对使用指令连接的case这个config可以兼容pin和pbc 只对手机有影响
p2p_go_ht40=1
p2p_no_group_iface=1 #启用之后使用p2p_add_group不会创建新的网卡接口

1.2. /etc/dhcp/dhcpd.conf

#添加以下内容
subnet 192.168.43.0 netmask 255.255.255.0 {
  range 192.168.43.2 192.168.43.22;
  option domain-name-servers 192.168.43.1;
#  option domain-name "internal.example.org";
  option subnet-mask 255.255.255.0;
  option routers 192.168.43.1;
  option broadcast-address 198.168.43.255;
  default-lease-time 6000;
  max-lease-time 72000;
}
#如果启动出现问题,检查前面是否有其他subnet配置,如果有将其注释掉。

1.3. /etc/default/isc-dhcp-server

#修改以下内容
INTERFACESv4="wlan0" 

2.指令流程

启动supplicant

wpa_supplicant -i wlan0 -c p2p.conf

2.1. 协商

1.1 PIN码方式加入

Steps

设备1 (Client)

设备2(Go)

1

wpa_cli

wpa_cli

2

p2p_find

3

p2p_find

4

p2p_connect 00:01:02:03:04:05 pin auth go_intent=1

得到随机pin

或用以下指令自定义pin

p2p_connect 00:01:02:03:04:05 <pin> display auth go_intent=1

获取结果用于之后的连接

5

p2p_connect 00:02:04:06:08:0b <pin> go_intent=15

1.2 PBC方式加入

Steps

设备1 (Client)

设备2(Go)

1

wpa_cli

wpa_cli

2

p2p_find

3

p2p_find

4

p2p_connect 00:01:02:03:04:05 pbc go_intent=1

5

p2p_connect 00:02:04:06:08:0b pbc go_intent=14

2.2. p2p_group_add 提前创建Group 

2.1 PBC方式加入

Steps

设备1 (GO)

设备2(Client)

1

wpa_cli -i wlan0 p2p_group_add

wpa_cli

2

p2p_find

3

p2p_connect 00:02:04:06:08:0b pbc join

4

wpa_cli -i wlan0 wps_pbc

2.2 PIN码方式加入(from GO)

Steps

设备1 (GO)

设备2(Client)

1

wpa_cli -i wlan0 p2p_group_add

wpa_cli

2

wpa_cli -i wlan0 wps_pin any

得到随机pin

或用以下指令自定义pin

wpa_cli -i wlan0 wps_pin any <pin>

3

p2p_find

4

p2p_connect 00:02:04:06:08:0b <pin> join

2.3. dhcp

通过以上方法连接成功以后,可以通过以下方式分配ip。

Steps

设备1 (GO)

设备2(Client)

5

ifconfig wlan0 192.168.43.1

6

sudo systemctl restart isc-dhcp-server & sudo systemctl status isc-dhcp-server

7

busybox udhcpc -i wlan0

8

ping 192.168.43.2

ping 192.168.43.1

<think>嗯,用户问的是wpa_supplicant中的use_p2p_group_interface参数是什么意思。首先,我需要回忆一下wpa_supplicant的相关知识。wpa_supplicant是Linux和其他类Unix系统上用于支持WPAWPA2的守护进程,负责处理无线网络连接。用户提到的参数可能与Wi-Fi Direct(P2P)有关,因为P2P_group是创建群组网络的部分。 接下来,我需要确认use_p2p_group_interface的具体作用。查阅文档或源代码可能是一个办法,但可能比较耗时。根据经验,wpa_supplicant在管理P2P群组时,可能会创建虚拟接口来处理群组的连接。use_p2p_group_interface参数可能控制是否使用独立的网络接口来处理P2P群组。 可能的情况是,当这个参数设置为1时,每个P2P群组会有一个单独的接口(比如p2p-group0),这样可以更好地隔离不同的群组,管理更方便。而设置为0时,可能共享同一个接口,可能会影响多个群组同时运行时的稳定性。需要进一步确认默认值是什么,以及不同设置对系统的影响。 然后,用户的应用场景可能是在配置P2P功能时遇到问题,或者在优化多设备连接时的性能。比如,用户可能在使用Wi-Fi Direct进行文件传输或连接多个设备时,发现接口管理有问题,或者希望提高连接的稳定性。 需要注意的是,用户可能对wpa_supplicant的配置不太熟悉,因此解释时需要简明扼要,同时提供实际应用的例子,帮助他们理解如何调整这个参数。此外,可能需要提醒用户修改配置文件后需要重启服务或重新加载配置才能生效,以及不同版本之间参数的可能变化。 最后,要确保回答准确,避免误导用户。如果有不确定的地方,应该建议用户查阅官方文档或进行进一步测试。</think>以下是对 `wpa_supplicant` 中 `use_p2p_group_interface` 参数的详细解释: --- ### **基本定义** `use_p2p_group_interface` 是 `wpa_supplicant` 配置文件(如 `wpa_supplicant.conf`)中与 **Wi-Fi Direct(P2P)** 功能相关的一个配置项,用于控制是否**为每个 P2P 群组(Group)创建独立的虚拟网络接口**。 --- ### **核心作用** - **启用(`use_p2p_group_interface=1`)**: 每个 P2P 群组(例如设备作为 P2P Group Owner 或 Client)会分配一个独立的虚拟接口(如 `p2p-group0`、`p2p-group1`)。 - **优点**:隔离不同群组的流量,便于单独管理(如设置防火墙规则)。 - **典型场景**:需要同时运行多个 P2P 群组时(如设备同时作为多个群组的 Owner)。 - **禁用(`use_p2p_group_interface=0`)**: 所有 P2P 群组共享主无线接口(如 `wlan0`)。 - **缺点**:可能导致多群组操作时资源冲突或管理混乱。 - **典型场景**:仅需单个 P2P 群组的简单场景。 --- ### **技术细节** 1. **接口命名规则** - 独立接口默认命名为 `p2p-groupX`(X 为数字,从 0 开始递增)。 - 可通过 `p2p_group_add` 命令手动指定接口名(需结合 `persistent=1` 参数)。 2. **底层实现** - 依赖 Linux 内核的**虚拟接口(Virtual Interface)**支持。 - 每个虚拟接口独立运行 MAC 地址、IP 地址和网络配置。 3. **默认行为** - 在多数 `wpa_supplicant` 版本中,默认值为 `use_p2p_group_interface=1`(启用独立接口)。 --- ### **配置示例** ```plaintext # wpa_supplicant.conf 片段 ctrl_interface=/var/run/wpa_supplicant update_config=1 p2p_listen_reg_class=81 p2p_listen_channel=1 p2p_oper_reg_class=81 p2p_oper_channel=11 # 启用独立 P2P 群组接口 use_p2p_group_interface=1 ``` --- ### **实际应用建议** 1. **启用场景** - 设备需同时作为多个 P2P 群组的 Owner(如智能家居中枢)。 - 需要精细控制每个群组的网络策略(如 QoS 或流量监控)。 2. **禁用场景** - 仅需单一 P2P 连接(如手机与电视直连投屏)。 - 资源受限设备(避免虚拟接口占用额外内存)。 --- ### **常见问题** **Q1: 如何查看已创建的 P2P 群组接口?** 通过 `ifconfig` 或 `ip link show` 命令查看 `p2p-groupX` 接口状态。 **Q2: 接口创建失败的可能原因?** - 内核不支持虚拟接口(检查 `iw list` 输出中是否有 `valid interface combinations` 支持多接口)。 - 无线网卡驱动限制(部分老旧驱动仅支持单一接口)。 --- 若需进一步调试 P2P 功能,可通过以下命令观察日志: ```bash wpa_cli -i <接口名> log_level DEBUG ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值