iptables 是 Linux kernel 2.4 的新特性,它取代了 ipchains。如果你的发行版自带 2.4 kernel,那么可能已经安装了 iptables。如果没有,你将需要下载它(并可能需要编译它)。它的主页是 netfilter.samba.org。你或许能在其他地方找到二进制 RPM 包,但我没有查找过。对于好奇的人来说,在 netfilter 网站上有大量的文档。
要设置规则,你需要知道两件事:要被代理的请求进入的接口(我将使用 eth0 作为示例)以及 squid 运行的端口(我将使用默认端口 3128 作为示例)。
现在,用于透明代理的魔法语句
你需要将上述命令添加到 /etc/rc.d/ 下相应的启动脚本中。从 2.2 kernel 升级的读者应该注意到,这是唯一需要的命令。2.2 kernel 需要额外的两个命令来防止转发环路。netfilter 的基础设施更加完善,只需要这一个命令就足够了。