将未注册的用户重定向到本地计算机上的站点

将未注册的用户重定向到本地计算机上的站点
  • 我有一台服务器 192.168.0.3 (服务器)。运行 Ubuntu Server + DHCP 服务器 + Apache;
  • 路由器 192.168.0.1 (ROUTER)(我无法访问它);
  • 我在服务器上有一个 Web 应用程序,用于通过为网络注册用户(在 DHCP 服务器中)来注册用户;
  • 用户在子网192.168.0.0/16内;

我可以配置 DHCP 服务器,让未注册的机器将我的服务器作为默认网关。
那么我该如何重定向所有来自未注册机器的 http 请求到我的本地网络应用程序192.168.0.3 ?

答案1

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp -dport 80 -j DNAT –to-destination 1.2.3.4:80 iptables -t nat -A POSTROUTING -j MASQUERADE

答案2

您必须设置一个特殊的 DNS 服务器,该服务器使用您服务器的 IP 来响应所有 DNS 查询,并设置 Apache 的虚拟服务器来接受任何主机的请求(即 *:80 + *:443)。

诀窍在于,登录后,DNS 服务器必须开始提供正确的 DNS 结果,而不是虚假的结果。您不能简单地再次更改 DHCP 中的设置,因为默认租约时间会太长,并且/或者用户必须断开连接才能获取新设置。

许多Wi-Fi登录系统都采用这种架构,因此您也许能够找到一个开源解决方案。

答案3

我找到了另一种方法。

  1. 将未注册的机器 SERVER 作为默认网关。
  2. 重定向端口 80到网络服务器使用iptables

但我不知道具体该怎么做:)

相关内容