我正在尝试配置 WiFi 接入点,以在本地网络上提供 Web 服务,但不向客户提供 Internet 访问。Web 服务器具有固定 IP 地址(假设为 192.168.2.2),并且为了方便用户,本地 DNS 服务器为其分配了域名app.com
。
然而,当 iOS 8 iPad 连接到网络时,它会自动尝试确定 WiFi 网络是否“可用” - 即它是否提供互联网。如果失败,iPad 会自动断开连接。
我们发现这个答案建议将 DHCP 服务器(本例中为 udhcpd)的 DHCP 网关设置为 0.0.0.0(“空”)并使用静态 DHCP 配置。但是,我们希望使用 DHCP,而且当我们取消设置 udhcpd 的 DHCP 网关(router
选项)时,客户端确实不再自动分配 IP。以下是我们的 的相关部分udhcpd.conf
,希望对您有所帮助:
start 192.168.2.100
end 192.168.2.149
max_leases 50
interface br0
remaining yes
option subnet 255.255.255.0
#option router 192.168.2.1
那么,有没有办法让 iOS 设备保持连接到 WiFi 网络,同时仍使用 DHCP 进行客户端 IP、子网和 DNS 配置?
答案1
如果可能的话,请尝试允许 TCP 流量到 apple.com 和 icloud.com。在我的热点上,它可以防止 iPhone 认为它使用了热点。希望这对你有帮助。
答案2
事实上你做的是强制门户。您提供不具备 Internet 访问权限的 AP。当您未登录、未验证身份或未同意 ToS 时,主操作系统会显示它是强制门户。
这可能令人沮丧,但事实就是如此。操作系统以主流方式思考(如旅馆、餐厅、星巴克等处的热点)。我不知道 0.0.0.0 技巧,但它似乎是错误的先验。
曾经有办法欺骗 iOS。但这些方法已被苹果“修复”。iOS 和 OSX调用一个 URL 并期望得到具体答案。现在您无法确定到底调用了哪个 IP,也无法确定期望得到哪个答案。
嗯,我是这样做的:
- 我创建了一个“欢迎”页面,其中有一个按钮“我同意服务条款”(或者你想要的任何内容),
- 当您加入 Wifi 时,强制 iOS 弹出窗口将打开并显示欢迎页面。
- 当您单击该按钮时,我的路由器将为该用户 MAC 地址开放几秒钟的互联网完全访问权限。
- 完成后,iOS 弹出窗口会自动显示“确定”按钮。
- 当你单击它时,Wifi 就被连接,并且“确定”已连接。
- 最后,我重新关闭了门户。我的 Wifi 仍处于锁定状态,但已加入。
这一切都与 dhcp 无关iptables
。
您必须了解强制门户以及 iOS 如何管理它。在我看来,这是唯一的方法。