使用 iptables 将所有 HTTP/HTTPS 流量转发到端口

使用 iptables 将所有 HTTP/HTTPS 流量转发到端口

我正在尝试设置一个无线网络,将所有流量路由到本地网络服务器(基本上是酒店 wifi 登录页面)。

这是我的 dhcpd 配置:

$ cat /etc/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
#   option domain-name-servers 8.8.8.8;
    range 192.168.1.2 192.168.1.254;
}

以下是我的配置方法iptables

ifconfig wlan0 up
ifconfig wlan0 192.168.1.1 netmask 255.255.255.0

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

iptables --flush
iptables --table nat --flush
iptables --delete-chain

iptables -P FORWARD ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -j MASQUERADE

echo "1" > /proc/sys/net/ipv4/ip_forward
systemctl restart dhcpd4

192.168.1.1:80如果连接到我的网络的设备尝试连接任何 IP 地址,它们都会被正确重定向,但所有对域名的请求最终都会超时。

我如何让域名也指向我的本地服务器(我在配置中注释掉了该行dhcpd以查看是否有帮助,但无济于事)?还是我的方法不对?

非常感谢您的帮助。

答案1

要回答您的问题,您需要 DNS 服务器。您的网络似乎没有。dnsmasq 或 named 都可以。dnsmasq 比 named 更容易配置

也许您可以进一步阐述您的问题。为什么要将所有域名重定向到计算机?如果您想过滤掉它们,IP 表可以过滤它们如果您想对它们进行 tcpdump,https 是加密的。

相关内容