常用 squid 配置及命令

squid默认拒绝所有访问客户机的请求。

acl格式:

 acl 列表名称 列表类型 -i 列表值

 

列表名称:给acl随意起得的名称。

列表类型:常用的

 src  源IP地址(客户机IP)
 dst  目的IP地址(服务器IP地址)
 srcdomain  源名称(客户机所属的域)
 dstdomain 目标名称(服务器所属域) 
 time 一天中的时刻和一周中的一天 
 url_regex URL规则表达式 
 urlpath_regex:  略去协议和主机名的URL规则表达式
 proxy_auth 通过外部程序进行用户认证 
 maxconn 单一IP的最大连接数 

 

-i:表示忽略列表值得大小写,否则squid是区分大小写的。

列表值:针对不同的类型,列表值得内容不相同。

acl添加到#Recommended minimum configuration:下面就行

acl <列表名称> <列表类型> -i <列表值>

解释:
列表名称:可以任意命名,但不能与其它列表重名。
列表类型:常见有以下几种
   src:源地址
   dst:目标地址
   srcdomain:源名称
   ds

二.应用实例

1、禁止指定的IP上网
例:禁止192.168.1.20这台机器上网

acl client1 src 192.168.1.20 (定义这台机器)
http_access deny client1

2、禁止某个网段上网
例:禁止192.168.1.0网段的机器上网

acl net1 src 192.168.1.0/255.255.255.0
http_access deny net1

3、禁止用户访问某个IP
例:禁止用户访问192.168.1.66这台机器

acl ip1 dst 192.168.1.66
http_access deny ip1

4、禁止用户访问某个域名
例:禁止访问www.test.com

acl domain1 dstdomain -i www.test.com (-i表示忽略大小写)
http_access deny domain1

5、禁止访问域名中包含163.com的网站
例:禁止访问包含“163.com”的域名,如www.163.com、mail.163.com

acl domain2 url_regex -i 163.com
http_access deny domain2

6、禁止访问网址路径中含有关键字的网站
例:禁止访问网址路径中包含“sex”的网站(如:http://www.123.com/sex.html

acl domain3 urlpath_regex -i sex
http_access deny domain3

7、限制客户端最大并发连接数
例:限制192.168.1.18这台机器的最大并发连接数为5

acl client1 src 192.168.1.18
acl conn1 maxconn 5
http_access deny client1 conn1

8、禁止指定网段在指定时间段内上网
例:不允许192.168.2.0这个网段的机器在星期一至星期五的9:00-17:00上网

acl net1 src 192.168.2.0/255.255.255.0
acl time1 time MTWHF 9:00-17:00
http_access deny net1 time1
(MTWHF 是星期一至星期五的英文缩写)

9、禁止访问指定类型的文件(可禁止下载)
例:禁止访问.gif .exe .mp3 .rmvb .zip等类型的文件

acl badfile urlpath_regex -i \.gif$ \.exe$ \.mp3$ \.rmvb$ \.rm$ \.wma$ \.wav$ \.rar$ \.zip
http_access deny badfile

10、禁止指定的MAC地址的机器上网
例:禁止02:00:4C:4F:4F:50这台机器上网

acl mac1 arp 02:00:4C:4F:4F:50
http_access deny mac1

注:squid的访问控制列表是按顺序读取的,且类似于路由器的访问控制列表,隐含一条http_access deny all
所以,在所有的访问控制列表设置完毕后,要在最后加上

acl all src 0.0.0.0/0.0.0.0
http_access allow all

这样其它机器才可访问。

11、让squid的提示信息变为中文

mv /etc/squid/errors /etc/squid/errors.bak(将原来的链接文件改名)
ln -s /usr/share/squid/errors/Simplify_Chinese /etc/squid/errors
/etc/rc.d/init.d/squid reload(重新载入新的配置)

12.禁止缓存某个域的,不缓存指定的域名

acl nocache urlpath_regex -i enorth\.com\.cn
no_cache deny nocache

(12)允许或拒绝某个访问控制列表

 格式:http_access [allow | deny] 访问控制列表名称

四、检查squid语法

 squid -k parse

五、创建squid使用硬盘缓冲区的目录结构(第一次启动时必须输入的)

#/usr/sbin/squid -z

 查看/var/spool/squid目录里的内容:

[root@localhost errors]# ll /var/spool/squid/

六、设置squid错误提示信息为中文

 在配置文件里添加:

error_directory /usr/share/squid/errors/Simplify_Chinese

 各种语言的错误提示在:# cd /usr/share/squid/errors/目录下

七、重新载入配置文件

 修改完配置文件,想要重新生成,虽然可以通过重启来实现,但如果squid正在运行,重启服务会花不少时间,做好是让squid重新载入配置文件。

# /etc/rc.d/init.d/squid reload

在前台启动squid,并输出启动过程。

#/usr/local/squid/sbin/squid -N -d1

如果有到 ready to server reques,恭喜,启动成功。
然后 ctrl + c,停止squid,并以后台运行的方式启动它。

八、让squid不缓存某个域名no_cache

acl nocache urlpath_regex -i enorth\.com\.cn
no_cache deny nocache (一般加在http_access前头)

九、常用维护命令

clear_squid_cache.sh 为一个清除缓存的shell,见:http://blog.haohtml.com/archives/3189

1、清除所有Flash缓存(扩展名.swf):

./clear_squid_cache.sh swf

2、清除URL中包含sina.com.cn的所有缓存:

./clear_squid_cache.sh sina.com.cn

3、清除文件名为zhangyan.jpg的所有缓存:

./clear_squid_cache.sh zhangyan.jpg

如果对于频繁更新的gif或者什么,可以在crontab中添加对应的命令行

0 * * * * /usr/local/bin/clear_squid_cache.sh gif &

这样就会每隔一个小时进行一次刷新操作了,很是方便

注意:使用squidclient命令,有时回报拒绝访问

HTTP/1.0 403 Forbidden
Server: squid/2.6.STABLE16
Date: Tue, 05 Jan 2010 07:42:20 GMT
Content-Type: text/html
Content-Length: 1129
Expires: Tue, 05 Jan 2010 07:42:20 GMT
X-Squid-Error: ERR_ACCESS_DENIED 0

在配置文件里加入以下两条

acl Purge method PURGE
http_access allow Purge localhost

squidclient -p 80 mgr:objects | grep jpg  //获取所有缓存 *.jpg 的信息

*取得squid运行状态信息: squidclient -p 80 mgr:info
*取得squid内存使用情况: squidclient -p 80 mgr:mem
*取得squid已经缓存的列表(小心使用此命令 可能导致崩溃): squidclient -p 80 mgr:objects
. use it carefully,it may crash

*取得squid的磁盘使用情况: squidclient -p 80 mgr:diskd
*强制更新某个url:*(也是删除这个url的缓存)squidclient -p 80 -m PURGE http://www.yejr.com/static.php  (80是squid端口)
*更多的请查看:squidclient -h 或者 squidclient -p 80 mgr:

更多选项请参考:http://bbs.linuxtone.org/thread-15681-1-2.html

2 thoughts on “常用 squid 配置及命令

  1. Pingback: mơ thấy đi chùa lạy phật

  2. Pingback: relogio omega replica

Leave a Reply