我在家里设置了 Squid + Dansguardian 家长控制。我将 WIFI 路由器连接到 Ubuntu 机器,并为孩子的移动设备共享该网络。家长控制在盒子上运行良好,我已使用 IPTables 将所有 http 流量路由到 dansguardian。出于某种原因,当我将 eth0(共享网络)路由到 dansguardian(端口 8080)时,它不起作用。如果我将其路由到 squid(端口 3128),它就可以正常工作(当然没有 dansguardian 过滤)。
这就是我现在的 iptables (将 eth0 路由到 3128):
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere ! owner UID match proxy tcp dpt:http redir ports 8080
ACCEPT tcp -- anywhere anywhere tcp dpt:3128 owner UID match proxy
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.42.0.0/24 !10.42.0.0/24
但当我将 eth0 路由到 8080(而不是 PREROUTING 中的 3128)时,我无法访问互联网。不知道出了什么问题。任何帮助都将不胜感激。
答案1
好的。我找到问题了,我让 dansguardian 在 127.0.0.1 上启动,但并没有在所有可用 IP 上运行。从配置文件中删除 127.0.0.1 后,一切正常。