Squid - 代理服务器

Squid 是一个全功能的 web 代理与缓存服务器应用程序,它为超文本传输协议 (HTTP)、文件传输协议 (FTP) 以及其他流行网络协议提供代理和缓存服务。Squid 可以实现安全套接层 (SSL) 请求的缓存和代理、域名服务器 (DNS) 的缓存以及进行传输缓存。Squid 也支持大量不同的缓存协议,如 Internet 缓存协议 (ICP)、超文本缓存协议 (HTCP)、缓存阵列路由协议 (CARP) 以及 Web 缓存协同协议 (WCCP)。

Squid 代理缓存服务器对于不同的代理和缓存服务器需求来说是一个极好的解决方案,它适用于从分支机构到企业级的网络,访问控制机制的粒度以及通过简单网络管理协议 (SNMP) 对临界参数的监视。当选择计算机系统用于 Squid 代理或缓存服务器时,请确保您的系统配置大量的物理内存以便 Squid 可以使用内存进行缓存以提高性能。

安装

在终端提示符后输入下列命令安装 Squid 服务器:

sudo apt-get install squid squid-common

配置

Squid 可以通过编辑在 /etc/squid/squid.conf 配置文件中的语句来进行配置。下面的范例说明一些语句的修改可能对 Squid 服务器的影响。更多 Squid 的配置可以参阅参考章节。

[提示]

在编辑配置文件之前,您应该生成一份原始文件副本并对其进行写保护,以便您可以将原始文件作为参考并在必要时重用它。

要拷贝 /etc/squid/squid.conf 文件并对其进行写保护,可以在终端提示符后使用以下命令:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original

  • 要将您的 Squid 服务器监听 TCP 端口 8888 以代替缺省的 TCP 端口 3128,可以如下所示修改 http_port 语句:

    http_port 8888

  • 改变 visible_hostname 语句是为了给 Squid 服务器一个特定的主机名。该主机名并必是计算机的主机名。在本范例中它被设为 weezie

    visible_hostname weezie

  • 此外,使用 Squid 访问控制,您可以通过 Squid 代理将 Internet 服务配置成仅限于有确定网际协议 (IP) 地址的用户使用。例如,我们将举例说明只让 192.168.42.0/24 子网的用户访问:

    将下列语句添加到您 /etc/squid/squid.conf 文件 ACL 部分的 底部

    acl fortytwo_network src 192.168.42.0/24

    然后添加下列语句到你 /etc/squid/squid.conf 文件 http_access 部分的 顶部

    http_access allow fortytwo_network

  • 使用 Squid 卓越的访问控制功能,您可以通过 Squid 代理将 Internet 服务配置成仅限于在正常商务时间使用。例如,我们将举例说明只允许来自 10.1.42.0/24 子网的商务雇员在周一到周五的上午 9:00 到 下午 5:00 时间段内访问:

    将下列语句添加到您 /etc/squid/squid.conf 文件 ACL 部分的 底部

    acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00

    然后添加下列语句到你 /etc/squid/squid.conf 文件 http_access 部分的 顶部

    http_access allow biz_network biz_hours

[注意]

在修改 /etc/squid/squid.conf 文件后,保存该文件并重启 squid 服务器应用程序以使改动生效。可以在终端提示符后使用下列命令:

sudo /etc/init.d/squid restart

参考资料

Squid 网站