Iptables 重定向

Iptables 重定向

我已经使用 Hostapd 设置了个人热点。但此热点未连接到互联网,但我确实安装了 Apache。我试图实现的是,当所有客户端(连接到我的热点)访问另一个网站时,将它们重定向到我的 Apache 页面。因此基本上将所有流量重定向到我的 Apache 页面。

我尝试过的是:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.150.1:80

但是使用此 iptable,只有当我与热点共享互联网连接时,客户端才会重定向到我的 Apache 网页。但如果没有互联网连接,它们就不会被重定向。

答案1

原因可能是在连接到网站之前,浏览器需要通过 DNS 请求解析要连接的名称。由于热点未连接到互联网,因此不会有任何 IP 响应,浏览器也不会进一步尝试。

为了实现您的计划,您应该创建一个 DNS 服务器,使用类似的iptable规则捕获 DNS 请求(因为某些客户端不会使用热点指定的 DNS 服务器)并使用您的 apache 的 IP 回答所有请求。

如果您将其用作bindDNS 服务器,则可以在 named.conf 中设置一个名为“.”的主区域(使用提示信息注释掉默认的“.”区域)。然后,创建一个包含 apache IP 通配符记录的区域文件。

相关内容