现在,我们需要启动并运行 squid。从 www.squid-cache.org 下载最新的源代码 tarball。确保您下载的是稳定 (STABLE) 版本,而不是开发 (DEVEL) 版本。截至本文撰写时,最新的版本是 squid-2.4.STABLE4.tar.gz。请注意,据我所知 (AFAIK),对于 Linux kernel 2.4,您必须使用 squid-2.4。原因是进程确定原始目标地址的机制从 Linux 2.2 开始发生了变化,只有 squid-2.4 包含了这段新代码。(对于那些感兴趣的人,以前 getsockname() 调用被修改以提供原始目标地址,但现在调用是 getsockopt(),级别为 SOL_IP,选项为 SO_ORIGINAL_DST)。
现在,解压并解压缩该压缩包(使用 ``tar -xzf <文件名>``)。运行自动配置脚本并告知它包含 netfilter 代码(``./configure --enable-linux-netfilter``),编译(``make``)然后安装(``make install``)。
现在,我们需要编辑默认的 squid.conf 文件(安装在 /usr/local/squid/etc/squid.conf,除非您更改了默认设置)。squid.conf 文件包含大量的注释。事实上,关于 squid 的一些最好的文档就在 squid.conf 文件中。在您使其全部启动并运行后,您应该回头重新阅读整个文件。但现在,让我们只获取最低限度的要求。找到以下指令,取消注释,并将它们更改为适当的值
接下来,查看 cache_effective_user 和 cache_effective_group 指令。除非您的系统上已创建默认的 nobody/nogroup(据我所知 (AFAIK),在许多流行的发行版(包括 RH7.1)中,默认情况下未创建),否则您需要创建它们,或者创建另一个用户名/组供 squid 在其下运行。我强烈建议您创建一个名为 squid/squid 的用户名/组并在其下运行,但如果您愿意,也可以使用任何现有的用户/组。
最后,查看 http_access 指令。默认值通常是 ``http_access deny all``。这将阻止任何人访问 squid。现在,您可以将其更改为 ``http_access allow all``,但一旦它工作正常,您可能需要阅读关于 ACL(访问控制列表)的说明,并设置缓存,以便只有您本地网络(或任何其他网络)上的人员才能访问缓存。这可能看起来很傻,但您应该对缓存的访问设置某种限制。位于过滤防火墙(例如色情过滤器,或言论不太自由的国家/地区的过滤器)后面的人员经常“劫持”到开放的代理并消耗您的带宽。
使用 ``squid -z`` 初始化缓存目录(如果这不是 squid 的全新安装,您应该跳过此步骤)。
现在,使用 /usr/local/squid/bin/ 目录中的 RunCache 脚本运行 squid。如果它工作正常,您应该能够将您的 Web 浏览器的代理设置设置为该机器的 IP 地址和端口 3128(除非您更改了默认端口号),并像普通代理一样访问 squid。
有关配置 squid 的更多帮助,请参阅 squid 常见问题解答,网址为 www.squid-cache.org