0

我正在尝试设置一台计算机,它将以无线接入点模式启动,在他们的 android/ios 设备上从用户那里接收 SSID 和密码,然后加入从表单上的用户那里收到的网络。

到目前为止,这在 Android 设备上运行良好。但是,出于某种原因,在任何 ios 设备上尝试此操作都会导致无法与无线接入点进行通信。似乎 ios 会自动尝试通过 lte/无线数据查找静态 ip(在本例中为 192.168.0.20),而不是将请求发送到我的接入点。

以下是配置文件:

hostapd.conf:

interface=wlan0
ctrl_interface=/run/hostapd
ctrl_interface_group=0
ssid=my_access_point_ssid
country_code=US
auth_algs=3

dnsmasq.conf:

interface=wlan0
dhcp-range=10.0.0.3,10.0.0.20,12h
port=80

创建无线接入点并填写 ssid 和密码表单并将 POST 请求发送到无线接入点后,shell 脚本会接收信息并使用以下内容连接到该接入点:

nmcli device wifi connect "$1" password "$2"
4

1 回答 1

0

好的,我想通了。在启动接入点的脚本中,我有

ip addr add 10.0.0.1/24 dev wlan0

出于某种原因,Android 并不关心“路由器”的 ip 地址是 10.0.0.1,但 ios 会并且只会通过 10.0.0.1/api_endpoint 向接入点发送请求。

我将启动脚本无线配置更改为

ip addr add 192.168.0.20/24

除此之外,我不得不更改 dnsmasq.conf dhcp-range:

dhcp-range=192.168.0.21,192.168.0.49,12h

我不确定使用 192.168.0.xx 提供给手机是否违反最佳实践,但它似乎适用于手机只有一个临时本地接入点连接的用例。

于 2021-09-20T19:18:18.060 回答