![通知 WiFi 用户丢失互联网连接](https://linux22.com/image/1413766/%E9%80%9A%E7%9F%A5%20WiFi%20%E7%94%A8%E6%88%B7%E4%B8%A2%E5%A4%B1%E4%BA%92%E8%81%94%E7%BD%91%E8%BF%9E%E6%8E%A5.png)
我们在城镇提供免费 WiFi,Freifunk gluon 固件。有时会发生这种情况,路由器集群确实相互连接,但实际上该集群中的任何路由器都没有到互联网的上行链路。
在这种情况下,我想告诉客户,确实可以连接到 WLAN 网络,但实际上您无法通过此连接访问互联网。只有本地 Freifunk 服务(SIP 电话、聊天、文件交换等)可用,这些服务在本地集群中提供(该集群可能非常大,极端情况下是全市范围)。
我的第一个想法是首先将 SSID 更改为包含“~local only~”或类似的内容,但这似乎会断开所有连接的客户端(请参阅在客户端连接时更改 SSID)
因为最明显的解决方案是强制门户对我们来说不是一个解决方案因为我们不想干扰用户的 http(s) 请求,
我该如何通知用户我的 WiFi 网络暂时没有互联网连接?
答案1
我没有这方面的经验,但我的第一个想法是,当您检测到互联网连接中断时,将 DNS 请求重定向到 DNS 服务器,该服务器将所有请求映射到 Web 服务器,并显示“互联网暂时中断”(例如,设置您自己的 DNS 服务器并让您的 DHCP 服务器提供该服务,可能在切换期间强制续订所有租约)。当然,这仅在浏览网页时可见,但这将涵盖绝大多数情况;对于非网络连接,客户可能会注意到它不工作,并希望尝试访问网络。另一个缺点是它不会对覆盖其 DNS 设置的客户产生影响(例如,我总是使用 Google 的公共 DNS),但我认为这也是少数。我猜客户端 DNS 缓存也可能存在一些问题。
您可能不想更改 SSID,原因如下(但不限于):
互联网的宕机/启动对用户来说并不透明。
如果切换,用户将失去其 WiFi 连接。
除非用户选择,否则他们不会自动连接到“〜仅本地〜”,并且我知道我不会选择这样做,因为这是一个我不认识的网络名称(并且看起来不像我想在咖啡店连接的东西)。
用户可能甚至不会将您的公共网络与“~仅限本地~”联系起来(或者不一定知道“仅限本地”的含义)。从他们的角度来看,公共网络已经消失,并且独立地存在一个新的无法识别的网络。
这有点马虎(在我看来)并且可能对您的系统不是一个很好的 PR 举措。
您还可以尝试通过其他方式让用户知道该连接通常是不可靠的,例如如果您有一个描述您的服务的网站。
此外,在我看来,如今 wifi 已经无处不在,如果网络浏览器发出请求超时,他们通常会自然而然地得出结论,“互联网连接现在无法正常工作”,而无需你告诉他们 - 所以你可以什么也不做——但我确实认为将他们重定向到显示服务已关闭的页面将为他们带来最佳体验。
我思考这是一种不同于评论中讨论的强制门户的技术,因为当互联网启动时,它完全不存在,并且不涉及现场操作数据。但是,如果您出于某种原因也无法设置自己的 DNS 服务器,我绝对会什么也不做,而不是切换 SSID,如果您考虑一下当用户面对您的公共 SSID 不再存在并且无法识别名为“~local only~”的新 SSID 时,用户的一般反应是什么,那么这本质上是一回事。