安装squid
yum install -y squid
Squid 官方网站为 http://www.squid-cache.org
打开注释掉的
cache_dir ufs /var/spool/squid 100 16 256
缓存目录的位置,大小100M 一级子目录16个 二级子目录256个。
在下面添加一行
cache_mem 128 MB
为了加快速度,把缓存的东西放内存里,128M
在最后添加一行
refresh_pattern .(jpg|png|gif|js|css|mp3|mp4) 1440 20% 2880 ignore-reload
visible_hostname aminglinux.com
正则表达匹配,,把这些格式的文件缓存,忽略重新加载。
启动squid
/etc/init.d/squid start
查看监听端口
netstat -lnp
tcp 0 0 :::3128 :::* LISTEN 1423/(squid)
占用的是3128端口
在windows浏览器里设置
工具-Internet选项-链接-局域网设置-为LAN使用代理服务器-地址192.168.1.117:端口3128
访问www.baidu.com,很慢,还是可以访问。
抓包
安装抓包命令
yum install -y tcpdump
抓包命令
tcpdump -nn port 3128
缓存目录产生了很多文件,都是刚刚产生的
cd /var/spool/squid/00/00
用curl查看,ok的
curl -x127.0.0.1:3128 www.baidu.com -I
HTTP/1.0 200 OK
控制访问
有时,我们会有这样的需求,就是想限制某些域名不能通过代理访问,或者说只想代理
某几个域名
打开配置文件
vim /etc/squid/squid.conf
添加一段
acl http proto HTTP
acl good_domain dstdomain .baidu.com .qq.com
http_access allow good_domain
http_access deny !good_domain
制定http协议
good_domain 白名单
allow 允许访问
deny 拒绝非good_domain
cache_mem分的内存太大,要小于上面的100 修改否则报错
WARNING cache_mem is larger than total disk cache space!
cache_mem 128 MB 改为 cache_mem 28 MB
检查配置文件是否正确
squid -kcheck
重新加载
squid -kre
crul 一下网站试试
curl -x127.0.0.1:3128 www.qq.com -I
200 OK
curl -x127.0.0.1:3128 www.163.com -I
403
黑名单
acl http proto HTTP acl bad_domain dstdomain .sina.com .souhu.com http_access allow http !bad_domain http_access deny http bad_domain