我有一个 linux DHCP 服务器,我需要将所有网络流量重定向到一个登录页面,该页面将说明如何在网络上注册他们的计算机。
无论用户输入什么 URL,都需要将用户重定向到网页(在 DHCP 服务器上)。
即:用户键入 google.com 他们会立即重定向到 192.168.10.1。此 DHCP 服务器将永远不会用于访问 Web。一旦用户从登录页面获得注册计算机的说明,他们将被列入此特定 DHCP 服务器的黑名单,并被迫从主 DHCP 服务器请求 IP。
如何创建这样的重定向?
您似乎正在尝试设置所谓的强制门户。
这有几个组件,其中一个确实是 DHCP 服务器,但这并不是最关键的。
简短概述
您的网络将至少包含以下组件:
客户端将从 DHCP 服务器获得 IP 地址,并被告知使用您的 DNS 服务器和网关。
解决方案 1:基于 DNS 的重定向
在用户登录之前,您的 DNS 服务器会回复登录 Web 服务器的 IP 地址。注意在 DNS 回复上设置一个非常低的 TTL。您要确保客户端浏览器在登录后重新解析 IP 地址。
这很可能会导致除端口 80 上的 Web 浏览之外的任何应用程序出现问题。
方案二:TCP拦截
这是一个稍微困难的解决方案,但可能会更好。DNS 服务器总是为客户端试图访问的任何网站返回正确的 IP 地址。网关会将端口 80 上的 TCP 会话重定向到登录服务器。所有其他数据包都应该得到一个 ICMP 错误回复(例如网络不可达)。