分享
 
 
 

在LINUX下使用Squid代理服务器

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

使用 Squid 代理服务器

Squid 是一种代理服务器,它实现了对 HTTP、FTP 和 Gopher 协议的缓存。Squid 能够使用访问控制列表(Access Control List,ACL)来允许或拒绝访问。Squid 具备强大的可配置能力以及鲁棒性,而且用户会发现,该软件非常容易学习。更好的是,可将 Squid 配置为透明代理,即好像用户根本不知道有 Squid 一样。

1 获取并安装 Squid

用户可从 FTP 站点:ftp://squid.nlanr.net/pub 上获得最新的版本。目前最新的版本是2.3。现在,我们假定你的代理服务有两个网络接口,一个连接到外部世界,而另一个连接到内部网络,并且你已经关闭了 IP 转发功能。

图标 注意 您也可以在仅有一个网络接口的服务器上建立 Squid,但我们并不建议这样做。这种配置会加倍本地网络的交通,并可能导致拥塞。目前,网卡和集线器(Hub)的价格已经非常低廉,即使对较小的网络而言,这种投资也是值得的。

如果用户计划使用 Squid 维护缓存,则需要考虑硬盘驱动器和内存限制。Web 缓存的本质是,有上千个小文件要同时而有效地递交给客户。Squid 的作者建议至少需要有 300MHz Pentium II CPU、512MB RAM 和五个超宽 SCSI 硬盘,每个有 9GB 的容量。笔者曾听说,某个 Internet 供应商只使用几个 486/66 处理器以及 IDE 驱动器。我认为大部分人处于这两种极限之间比较合适。笔者建议使用至少 100MHz Pentium CPU、64MB RAM 和 6GB SCSI 硬盘。实际上,略微低一些的配置也没有多大关系。

在获得 tar.gz 文件之后,使用下面的命令将它解开:

tar zxvf squid-2.3.STABLE4-src.tar.gz

到Squid所在目录中运行 ./configure 检查系统设置并建立配置文件之后,可输入 make 编译 Squid。如果没有出现任何错误,输入 make install,默认将会将其安装到/usr/local下。

2 使用 Squid

为建立交换目录,输入如下命令:

/usr/local/squid/bin/squid ?z

但在第一次运行该命令之前,需要修改 /usr/local/squid/squid.conf 配置文件。Squid 的访问控制列表默认是拒绝所有的请求。编辑 /usr/local/squid/squid.conf 文件并添加如下行:

acl local_net src 192.168.1.1/255.255.255.0

这里,192.168.1.1 是本地网络中的一个 IP 地址,而 255.255.255.0 是内部网络的网络掩码。同时还需要添加:

http_access allow local_net

将这一行放在 http_access deny all 的前面。这定义了允许使用缓存的 IP 地址组。

输入 squid & 启动 Squid。用户可通过几种方法验证 Squid 的运行:

l 在 ps -x 的输出清单中应该出现 Squid。

l 运行 client www.yahoo.com 应该在终端上打印 Web 页文本。

l 目录 /var/log/squid 中的 cache.log 和 store.log 能够表明 Squid 正在工作。

l 运行 squid -k check && echo "squid is running" 将告诉用户 Squid 是否正在运行。

现在进行真正的测试:在 Netscap Navigator 中,可选择 Edit-Preference,然后从 Advanced 类中选择 Proxies 而进行代理设置。选择 Manual Proxy Configuration 然后单击 View,可指定 Squid 服务器的 IP 地址作为 HTTP、FTP 和 Gopher 代理服务器。默认的代理端口是 3128,除非在 squid.conf 文件中修改了默认的代理端口,否则应该在 port 框中输入 3128。

现在应该能够浏览任何 Web 站点了。检查代理服务器上的日志文件 /var/log/squid/access.log,并确认浏览过的 Web 站点保存在日志文件中,从而可再次证实 Squid 正在工作。

3 配置 Squid 满足自己的需求

现在 Squid 已经能够运行,用户可以定制它以满足自己的需求。到此为止,Squid 并不限制用户访问任何站点。你可以在 squid.conf 文件中定义规则,设置访问控制列表 (ACL),然后根据这些列表允许或拒绝访问者。

添加下面的配置行,该行定义了一个 ACL 规则,称为 BadWords,它匹配任何包含 foo 或 bar 的 URL:

acl BadWords url_regex foo bar

这条规则作用于 http://foo.deepwell.com/pictures 和 http://www.thekennedycompound.com/ourbar.jpg,因为这两个 URL 包含了BadWords 所定义的两个单词。

在 squid.conf 文件中添加下面的行,它可以防止用户访问任何匹配上述规则的 URL:

http_access deny BadWords

图标 注意 几乎每个管理员在使用单词式 ACL 时,都会遇到一些情况,这些情况下不能简单地使用单词。比如,如果你要禁止用户访问包含有“sex”的站点,则同样也会禁止他们访问 www.buildersexchange.com 这样的站点。因为 “buildersexchange” 刚好属于这个由“sex”定义的范畴。

因为 Squid 功能的所有方面均受到 squid.conf 文件的控制,因此用户可通过编辑该文件而调整 Squid 以满足自己的需求。

比如,添加如下配置行:

cach_mem 16 MB

将允许 Squid 使用 16MB 的内存来保存 Web 页。经过不断尝试,就可以找出适合自己的不同数量。

图标 注意 cache_mem 并不是 Squid 所消耗的内存总量,它只是 Squid 用来保存 Web 页图像等的内存最大值。Squid 的文档中说,Squid 可能会消耗这一数量的三倍多的内存。

使用如下配置行:

emulate_httpd_log on

能够让 /var/log/squid 中日志文件的格式类似 Web 服务器的日志文件格式。这样,用户可以使用 Web 统计程序,例如 Analog 或 Webtrends 来分析日志,从而了解用户的使用情况。

某些 FTP 服务器在以匿名方式登录时需要输入 e-mail 地址作为口令。通过将 ftp_user 设置为有效的 e-mail 地址,可以让 FTP 会话另一端的服务器接收到期望的数据,例如:

ftp_user squid@minigui.org

你可能想使用代理防火墙管理员的地址,但这可能会导致外部 FTP 管理员与你联系时出现问题。

如果URL页没有被找到,则可以推断该页不会在近期出现。通过将 negative_ttl 设置为期望的分钟数,可以控制 Squid 记住某页没有找到的时间,例如:

negative_ttl 2 minutes

默认值为 5 分钟,但如果不想禁止的话,笔者建议减小到两分钟或一分钟,因为用户希望代理能够尽量透明。如果用户正在查找一个已知存在的页,则代理不应该在该页能够实际得到的情况下报告找不到。

cache_mgr proxy@minigui.org

将 cache_mgr 设置为自己的 e-mail 地址,可让 Squid 在检测到缓存问题时向你发送 e-mail。

cache_effective_user nobody

cache_effective_group nobody

这两行非常重要,如果以 root 身份启动 Squid,这两行将把 Squid 的 UID 改变为“nobody”。这将避免程序中的 bug 修改或删除不应该修改或删除的东西。

最后,类似 Squid 这样的工具对用户来讲应该是完全透明的。这样,用户不必关系复杂的管理文件,并能够让他们浏览 Web,就像没有 Web 代理服务器一样。如何达到这一目的的方法不在本书中讨论,用户可参阅 http://squid.nlanr.net/Squid/FAQ/FAQ.html 上的 Squid 问答,第 17 小节详细描述了如何设置 Squid 作为透明代理。

同时,如果你需要在 squid.conf 文件中管理一个大的“黑名单”站点,则可以考虑使用一个重定向程序。大的 ACL 规则列表可能会降低负荷很重的 Squid 代理服务器的速度。而使用重定向程序,则可以提供根据过滤规则允许或禁止访问 URL 的效率。用户可在 Squirm 上(http://www.senet.com.au/squirm)获得详细信息,它是一个功能完整的 Squid 重定向器。

Squid 发行中带有一个 cachemrg.cgi 文件。该文件是 CGI 程序,能够用来查看代理的统计信息,也可以用来关闭或重新启动 Squid。该程序能够以清楚的细节来描述代理的执行情况。还能够帮助你调整 Web 缓存。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有