Horus
Squid,有趣的鱿鱼代理服务器
Squid 2.5安装
下载 & 安装
squid的2.5最新版本是squid-2.5.STABLE7,先下载安装包,再安装:
配置Squid.conf
好,接下来要做的仅仅是配置Squid.conf.
但是原来的squid.conf并不是最好的,最好是你自己新建一个Squid.conf.
照我的Squid.conf写,就能正常运行啦. 在ee编辑器中输入:
以上是一个简单,但足以正常工作的squid.conf. 接下来,建立缓存目录和Squid的日志.
建立Squid的日志&缓存目录
运行Squid
好了,运行你的Squid吧!
Q & A
Q:如何判断已经成功实现缓存功能
A:
#ps -waux | grep squid
#cat /var/log/squid/cache.log (有没有正常输出)
#netstat -a | more (找3128端口)
在IE里设置好缓存服务器的地址\端口.乱打一个URL,如:
www.gfnjigj.fdg
看到:
您所请求的网址(URL)无法获取
--------------------------------------------------------------------------------
当尝试读取以下网址(URL)时: http://www.gfnjigj.fdg/
发生了下列的错误:
无法将您输入的主机名称:www.gfnjigj.fdg转换成 IP 地址 域名服务器返回以下讯息:
Name Error: The domain name does not exist. 这表示:
The cache was not able to resolve the hostname presented in the URL. Check if the address is correct. 缓存服务器无法解析您输入网址(URL)中的主机名称,请检查该名称是否正确。
本缓存服务器管理员:horus@etclub.3322.org
--------------------------------------------------------------------------------
Generated Sun, 11 Jul 2004 06:00:58 GMT by etclub.3322.org (squid/2.5.STABLE5) 就成功啦!!! 结果,访问www.163.com,就...
重要Tip
小技巧:安装好了之后,也许错误提示是英文的,这时候,你只要把/usr/local/squid/share/errors下的English目录和Simplify_Chinese目录互换名字,错误提示就成了中文啦(骗一下Squid...)呵呵
浅谈Squid的ACL语法
ACL,Access Control List,访问控制列表.它的语法是: (在/usr/local/squid/etc/squid.conf里添加)
acl 表名 表类型 [-i] 表的值
http_access [allow/deny] 表名下面分条解释:
表名:可以自定义
表类型:表类型有
src 源地址:客户机的IP地址
dst 目的地址:服务器的IP地址
srcdomain 源域:客户机所属的域
dstdomain 目的域:服务器所属的域
url_regex URL正则表达式(字符串部分)
urlpath_regex URL正则表达式中的路径
time [星期] [时间段]
maxconn 客户端的最大连接数
-i 这个参数使Squid不区分大小写
表的值:随表的类型不同而不同
注意:time中的星期要用如下字符:
S (Sunday,星期日) M(Monday,星期一) T(Tuesday,星期二) W(Wednesday,星期三)
H(Thursday,星期四) F(Friday,星期五) A(Saturday,星期六)
时间段的表示方式是: XX:00-YY:00 如: 20:00-22:00
http_access 选项允许你设置一个表是允许(allow)还是拒绝(deny)
下面举几个例子: 防3721的ACL.在squid.conf中加入:
acl badurls dstdomain -i www.3721.com www.3721.net download.3721.com cnsmin.3721.com
http_access deny badurls
acl badkeywords url_regex -i 3721.com 3721.net
http_access deny badkeywords
解释:
badurls 和 badkeywords 是你自定义的表名.
dstdomain 是服务器的域名(目的域) 而 url_regex 则是URL正则表达式(字符串部分)包含的内容.
http_access 选项的 deny 则是把表badurls和表badkeywords的访问拒绝.
禁止下载Flash:
acl badfiles urlpath_regex -i \.swf$
http_access deny badfiles
大家在今后的配置中,慢慢体会ACL的用法吧! 达到目的喽:
错误
您所请求的网址(URL)无法获取
--------------------------------------------------------------------------------
当尝试读取以下网址(URL)时: http://www.3721.com/ 发生了下列的错误:
Access Denied. 拒绝访问
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect. 当前的存取控制设定禁止您的请求被接受,如果您觉得这是错误的,请与您网路服务的提供者联系。 本缓存服务器管理员:horus@etclub.3322.org
--------------------------------------------------------------------------------
Generated Wed, 07 Jul 2004 06:32:41 GMT by etclub.3322.org (squid/2.5.STABLE5)
后记
仅以此Howto献给和我一样用VM玩FreeBSD的小鸟们. 这篇Howto总算是完成了,做了一些修改. 谈到了Squid安装,Squid的ACL语法等. 希望高手别嫌弃这篇Howto浅显,菜鸟晕哥别嫌弃这篇Howto太长&难懂,毕竟这是我第一次写Howto,第一次写这么长的Howto,请大家包涵 . 最后:真切祝愿大家能顺利完成FreeBSD+Squid !
FreeBSD下用Ports来安装比较好吧。
不好意思,是写错了,应该是/cache为缓存目录,修正好了就是:
cache_dir ufs /squid 530 16 256
谢谢Zer4tul
该谢谢你才是,正好最近在搞squid,因为很忙,所以man page看得比较粗略,结果忘了/usr/local/squid/sbin/squid -z ,看了你的文章才恍然大悟
小菜请教各位大虾:
在Squid中如何可否实现通过时间段来限制客户端访问网络?
可以用crontab
各位大虾,请教一下.我打开邮箱时出现这样的提示.ERROR
The requested URL could not be retrieved
________________________________________
While trying to retrieve the URL: http://www.sina.com/
The following error was encountered:
• Access Denied.
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
Your cache administrator is webmaster.
________________________________________
Generated Wed, 31 Aug 2005 07:51:43 GMT by xa-192.sina.com.cn (squid/2.5.STABLE4)
我应该怎么办啊
请大家指教
本功能正在开发中,目前不能使用,敬请原谅。
√ 期刊在线投稿: /journal/contribute.html
√ 本文打印于《CNFUG期刊》,欢迎访问 http://www.cnfug.net 获取更多技术文章。
© 2003-2006 CNFUG(China FreeBSD User Group) All rights reserved.
Powered by FreeBSD
修正一个错误,从squid.conf的内容看来,缓存的地址应该是 /cache 才对……