问题标签 [hostapd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wifi - WiFi随机断开,“已连接,没有互联网”。使用新的 HostAPD 2.9 版时
我有一个嵌入式项目,我在其中使用 yocto 工具链构建了 hostAPD v2.9 以从 v2.3 更新它。WiFi 和 Internet 正常工作,但是在使用新版本时,我会经常断开连接,无法访问 Internet。
WiFi 保持连接,但没有互联网。发生这种情况时,可以在 hostapd_log 中看到:
我不知道事件 20 (DISASSOC) 来自哪里,或者是什么原因造成的。
我在互联网上搜索过,我发现有些人建议它可能是 WPA TKIP,当切换到 CCMP 时它不会再突然断开连接。但这对我不起作用。
有什么建议么?
hostapd - hostapd有线驱动检测用户异常断线
我一直在测试有线驱动程序的 hostapd 功能,并且还使用 wpa_supplicant 和 freeradius 在 3 个 linux 虚拟机上完成 8021x 整个过程。
只要我从 wpa_cli 发送 hostapd 可以检测到用户离线的注销帧,事情就会正常。但是,如果我杀死 wpa_supplicant 进程或重新启动它所在的机器,当我通过 hostapd_cli 命令 list_sta 检查时,hostapd 似乎使 sta 保持活动状态。
我检查了 hostapd 配置文件,最相关的条目是 ap_max_inactivity,但是在设置它并通过 ap_max_inactivity 秒后,hostapd 仍然没有任何动作。所以我想知道是否有某种方法可以检测有线驱动程序的用户不活动。
已编辑:附上我的 hostapd .config 文件,有些字段我不熟悉,所以我只保留它
linux - Hostapd 从启动到重新启动 hostapd.service 速度很慢
我正在使用带有 linux 内核的 Ubuntu-server 20.04LTS,5.4.124
并安装了 hostapd v2.9,打算用作 5GHz 接入点。我为我的 sparklan wifi 模块安装了 ath10k 驱动程序。除了安装 Ubuntu、hostapd 和 dnsmasq(用于 dhcp-server)之外,什么都没有完成。- 除了在内核中启用 DFS,否则不允许使用 5GHz AC 接入点。
我正在使用以下 hostapd 配置(大部分来自这里):
Hostapd 在引导时由默认的 systemd hostapd.service 启动。
我通过 iPerf3 测试(phone1 -> wifi 接入点 -> phone2)测试 wifi,其中 phone1 是 iPerf3 客户端,phone2 是 iPerf3 服务器。
由于某种原因,wifi 接入点的吞吐量从启动开始就很低。当 hostapd 接入点启动时,可以建立稳定的 ~70mbit/s 连接。但是...如果我然后重新启动 hostapd.service,我会在手机之间获得稳定的 ~150mbit/s 连接,这是两倍多。这与我完成的每次重启都是 100% 一致的。
- 连接手机并启动 iPerf3 服务器/客户端
- 查看 ~70mbit/s 连接吞吐量
- 重启 hostapd.service
- 请参阅 ~150mbit/s 连接吞吐量。
- 重新启动并重复。
这是我迄今为止尝试过的:
- 将 hostapd 服务设置为,
type=idle
但这根本没有效果。 - 通过创建一个
restart-wifi.service
with来尝试破解解决方案type=idle
,再次没有任何影响。 - 谷歌搜索了这个问题,但我似乎找不到任何有同样问题的人。
所以问题是这样的:
- 这是怎么回事?我会假设如果启动时出现问题,接入点甚至都不会启动?
- 如何确保 hostapd 接入点从启动时提供明显有能力的 ~150mbit/s 吞吐量,而不是 ~70mbit/s?
任何指针将不胜感激。
certificate - 连接热点时使用什么机制向客户端发送证书
在连接到公共 WiFi 热点时,我遇到了接受他们的证书颁发机构以使用他们的服务的情况。这是一家半合法的医院,但当您知道可以信任提供者时,它仍然是封闭网络的有用机制。
为此使用什么机制?HostAPD 是否可用。还是只是将证书失败的连接路由到 CA 文件?
它似乎也自动接受了配置文件。
有人有这方面的经验吗?
android - 与手机的无线接入点通信适用于 Android,但未收到 IOS 的任何请求?
我正在尝试设置一台计算机,它将以无线接入点模式启动,在他们的 android/ios 设备上从用户那里接收 SSID 和密码,然后加入从表单上的用户那里收到的网络。
到目前为止,这在 Android 设备上运行良好。但是,出于某种原因,在任何 ios 设备上尝试此操作都会导致无法与无线接入点进行通信。似乎 ios 会自动尝试通过 lte/无线数据查找静态 ip(在本例中为 192.168.0.20),而不是将请求发送到我的接入点。
以下是配置文件:
hostapd.conf:
dnsmasq.conf:
创建无线接入点并填写 ssid 和密码表单并将 POST 请求发送到无线接入点后,shell 脚本会接收信息并使用以下内容连接到该接入点:
authentication - hostapd 2.9 不支持 2 个服务器证书
根据 hostapd 2.9 [https://w1.fi/cgit/hostap/plain/hostapd/ChangeLog] 的发行说明,它提到支持配置 2 个服务器证书/密钥 (RSA/ECC)。我尝试在服务器端配置 2 个证书,但客户端始终只连接第二个证书。这是为 2 个服务器证书配置的 hostapd.conf 参数
在 hostapd:tls_global_set_params() 初始化后转储证书时,它只转储第二个证书。即第一个证书总是被覆盖。如果单独配置,我能够连接这两个证书。一次配置 2 个证书时会出现问题。
有人可以帮我用 hostapd 配置 2 个服务器证书,以便客户端可以同时连接这两个证书吗?
freeradius - 如何使用隧道 EAP 身份验证设置 eap-ttls?
我想先执行 EAP-TTLS,然后使用 EAP/MD5-Challenge(参见RFC 5281 第 15.2 节)作为隧道用户身份验证机制。
我使用 eapol_test 并使用此配置文件测试了服务器:
但是,服务器返回 Access-Reject,如下所示:
正如您在上面看到的,服务器没有调用 md5 模块,而是刚刚终止,因为它收到了 EAP-NAK 类型。我回到客户端,发现 md5 不受支持:
如果我在配置过程中遗漏了什么,你能告诉我吗?(根据代码,似乎 wpa_supplicant 不支持 EAP-TTLS 的隧道 EAP/md5 方法...)如果我想在 wpa_supplicant 上演示具有隧道 EAP 身份验证的 EAP-TTLS,我应该选择哪种方法作为身份验证-在 wpa_supplicant 配置中输入?
谢谢!
buffer - 访问 Wi-Fi MAC 层缓冲区
我正在尝试实施一些集成 NR+Wi-Fi(类似于 LWA)的解决方案。出于这个原因,我想访问 MAC 的缓冲区 (Wi-Fi) 并测量数据包在此类缓冲区中经历的缓冲延迟。我打算在 Ubuntu 16.04 上使用 HOSTAPD 来创建 Wi-Fi AP。但是,我不知道如何访问已经提到的缓冲区的统计信息并测量缓冲区大小和缓冲延迟。因此,我将使用 iperf 作为流量生成器,将数据从 AP 发送到接收器。
有人知道如何访问 hostapd 在 Linux 上使用的 MAC 缓冲区统计信息吗?
预先感谢您的支持。
radius - hostapd v2.9 上的 MACsec 设置问题
我在使用最新的 hostap 版本 v2.9 进行有线连接时遇到 MACsec 设置问题。我的设置很简单(仅用于测试) - HOSTAP 和 RADIUS 在同一台机器上,通过 RADIUS 协议在 127.0.0.1 上进行通信;wpa_supplicant 正在从通过网络接口连接到 HOSTAP 的另一台机器请求安全的以太网访问。EAP TLS 用于 HOSTAP 的客户端授权。wpa_supplicant 和 HOSTAP 之间用于授权的 EAP 帧交换通过多播地址 01:80:c2:00:00:03 进行。
问题:
- wpa_supplicant 由 RADIUS 成功验证,这由 HOSTAP 发送的“成功”EAP 帧指示。此时 EAPOL-MKA 应该介入。
- wpa_supplicant 发送一个 EAPOL-MKA 帧,据我了解,它是一种心跳或指示器。HOSTAP 不响应任何 EAPOL-MKA 帧,之后也不发送任何 EAPOL 帧。
- EAPOL-MKA“指标”被 wpa_supplicant 重复 3 次以上,这就是结束。
在认证完成阶段来自 hostapd 的调试跟踪片段:
...
...
EAP:EAP 进入状态 SUCCESS2
enp0s8:CTRL-EVENT-EAP-SUCCESS2 08:00:27:6e:f4:d8
IEEE 802.1X: 08:00:27:6e:f4:d8 BE_AUTH 进入状态成功
enp0s8:STA 08:00:27:6e:f4:d8 IEEE 802.1X:发送 EAP 数据包(标识符 112)
IEEE 802.1X: 08:00:27:6e:f4:d8 AUTH_PAE 进入状态 AUTHENTICATED
enp0s8: STA 08:00:27:6e:f4:d8 IEEE 802.1X: 授权端口
enp0s8:STA 08:00:27:6e:f4:d8 IEEE 802.1X:已验证 - EAP 类型:13 (TLS)
IEEE 802.1X:外部通知 - 为 08:00:27:6e:f4:d8 创建 MKA
MACsec: 成功获取密钥 (len=64)
MSK: - hexdump(len=64): [已移除]
MACsec:无法从 EAPOL 状态机获取 SessionID
IEEE 802.1X:无法获得 EAP 会话 ID
...
...
上述跟踪的最后两行指向一个我无法解释的问题。请指教。我的 hostapd.conf 设置是:
ieee8021x=1
eapol_version=3
eapol_key_index_workaround=0
use_pae_group_addr=1
驱动程序=macsec_linux
macsec_policy=1
eap_server=0
own_ip_addr=127.0.0.1
radius_client_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
acct_server_addr=127.0.0.1
acct_server_port=1813
acct_server_shared_secret=testing123
有趣的是,如果我使用相同的 hostapd 二进制文件,但将 hostapd.conf 更改为内置 EAP 身份验证器而不是外部 RADIUS 服务器,那么 EAPOL-MKA 会唤醒并成功启用 MACsec。在瘦情况下,在跟踪输出中未观察到“无法获取 SessionID...”行,并且 HOSTAP 发送 EAPOL-MKA 帧。
我的“好”案例的 hostapd.conf 设置与上面的配置不同,只有“eap_server=1”和用户文件和证书的路径。当然,RADIUS 相关部分完全被注释掉了。
请给我一个线索,在“坏”情况下可能会出现什么问题。以下 hostapd 跟踪输出的根本原因是什么?MACsec:无法从 EAPOL 状态机获取 SessionID IEEE 802.1X:无法获取 EAP 会话 ID