连接后启动网站的 Wifi 热点

连接后启动网站的 Wifi 热点

我的目标是通过网站为某些设备制作用户界面。设备已运行 WiFi 热点,用户可以连接到它。然后我想做一些我在几个机场看到但不知道该怎么做的“事情”。

当我在机场使用免费 wifi 时,有时在连接到热点后,我的智能手机上会自动打开网页,并允许我进行注册,以便使用通过该热点提供的互联网。

如果我能做同样的事情,这对用户来说将是伟大的,他将不必输入 IP 地址(或网络服务器名称,如果我运行 DNS)来在连接后驱动该设备。用例场景是:连接到热点,正确的网站将自动出现在设备上。

您能告诉我如何实现这一目标吗?

PS 这个热点不提供任何互联网连接,不伪装,不路由,仅连接到自身。它运行在嵌入式linux上。

答案1

您想要的就是所谓的强制门户。事实上,提供互联网连接并不是强制性的。

然而,例如,iOS、Windows、Mac OS 和 Android 测试都知道用于测试 Wifi 是否正常工作的通用 URL,并且您可能必须进行设置才能在客户端将 wifi 图标标记为正常。

你的要求是可行的,但是纯粹在 Linux 中完成而不安装太多软件涉及一些 Web 服务器/服务和 DNS 服务器/服务欺骗(+DCHP 和 Hostpad)。

为了获得自动网页/登录警告,您需要将 WISPr 标签放置在强制端口将设备重定向到的第一页中。对于没有这方面经验的人来说,主要的警告是 WISPr 标签不能再次指向同一页面,因为那时您将有递归请求。

有关如何操作的面包屑线索,请访问 U&L 上的以下问题

使用 Apache 的强制门户

强制门户检测、弹出窗口实施?

从 FON 身份验证门户获取 WISPr 标签

使用 wpa_supplicant 通过强制门户登录页面连接到 WiFi 网络

Mac 无法连接到 Wifi 热点 - Google Starbucks

我可以让 dnsmasq 删除/拒绝/重定向除一个之外的任何地址查询吗?

有关的:

在 MacOS 中禁用 CNA

答案2

您需要一个接入点。根据我假设您已经拥有的硬件,hostapd 可能是一个相当标准的驱动 AP 的软件。

您需要一个具有标准设置的 DHCP 服务器来为客户端提供 IP。

您需要配置 DNS 服务器来解析对设备 IP 的任何请求:https://serverfault.com/questions/351108/using-dnsmasq-to-resolve-all-hosts-to-the-same-address

您需要一个能够响应所有请求的 HTTP 服务器,无论客户端实际请求的主机是什么。 Apache 默认会这样做(虚拟主机被禁用)。

当然,这不会自动打开客户端设备上的浏览器。但是,如果用户打开浏览器,它通常会尝试导航到默认主页,该主页将在您的设置中显示您设备的页面。

相关内容