Squid代理服务器安装与配置

Squid加速原理

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。


设置网卡
eth0(内网)
192.168.0.1/255.255.255.0
eth1(外网)
10.10.10.1(可自动获取)/25.525.255.0

安装squid
yum install squid

配置squid文档
vim /etc/squid/squid.conf
http_port   3128
cache_mem 64MB
maximum_object_size 4096KB
reply_body_max_size1024000 allow all
access_log /var/log/squid/access.log
visible_hostnameproxy.test.xom(可以不配置)

cache_effective_usersquid //设置缓存的有效用户

cache_effective_groupsquid //设置缓存的有效用户组

dns_nameservers192.168.0.254 //设置DNS服务器地址,一般可以不设置,默认使用服务器自己设置的dns

cache_mgr [url=mailto:[email protected]][email protected][/url]
http_access allow all

初始化目录
suqid -z

检查配置文档
squid -k parse

启动squid
service squid start

检查代理端口是否打开
netstat -nlp
如果打开了就会看到有3128

打开防火墙的3128端口
iptables -A INPUT  -s 0/0 -p tcp --dprot 3128 -j ACCEPT
(或者直接关闭防火墙service iptables stop)


查看你的日志文档

#more /var/log/squid/access.log| grep TCP_MEM_HIT

该指令可以看到在squid运行过程中,有哪些文件被squid缓存到内存中,并返回给访问用户。

#more /var/log/squid/access.log| grep TCP_HIT

该指令可以看到在squid运行过程中,有哪些文件被squid缓存到cache目录中,并返回给访问用户。

#more /var/log/squid/access.log| grep TCP_MISS

该指令可以看到在squid运行过程中,有哪些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户

squid -k rotate 轮换squid的日志文件

/var/log/squid,Squid代理服务器日志文件

的增长速度是惊人的,很容易点球满磁盘空间导致系统不能正常工作,甚至是死机.为了解决日志文件增长太快的问题,squid采用了"轮换"的方法.在squid.conf中可以通过logfile_rotate来设置文件轮换的个数,如:

logfile_rotate 10 ,轮换的工作一般用crontab定时器完在周期性的日志轮换,例如每周六凌晨2:00进行日志轮换,则执行如下命令:crontab -e

0 2 * * 6 squid -k rotate

小贴士:Squid默认的错误提示信息为英文,对于英文不好的用户来说,实在不方便.在/etc/squid/squid.conf里添加如下:

error_directory /usr/share/squid/errors/zh-cn 即可显示中文的错误提示。

定义用户和网络流量出口

#定义用户组,并指定一个用户文件。

aclusergroup1 proxy_auth "/usr/local/squid/etc/ip1user"


# 后允许这个组的用户可以访问网络

http_access allow usergroup


#分配哪个组的用户走哪个出口ip

tcp_outgoing_address10.10.10.1usergroup

编辑完成后保存退出。

使用访问控制

上面详细讲述了ACL元素以及http_access访问控制列表的语法以及使用过程中需要注意的问题,下面给出使用这些访问控制方法的实例:

(1)允许网段192.168.0.0/24内的所有客户机访问代理服务器,并且允许在文件/etc/squid/guest列出的客户机访问代理服务器,除此之外的客户机将拒绝访问本地代理服务器:

acl clients src192.168.0.0/24

acl guests src “/etc/squid/guest”

acl all src 0.0.0.0/0.0.0.0

http_access allow clients

http_access allow guests

http_access deny all

其中,文件“/etc/squid/guest”中的内容为:

192.168.0.0/24

(2)允许域名为job.net、gdfq.edu.cn的两个域访问本地代理服务器,其他的域都将拒绝访问本地代理服务器:

acl permitted_domain src job.net gdfq.edu.cn

acl all src 0.0.0.0/0.0.0.0

http_access allow permitted_domain

http_access deny all

(3)使用正则表达式,拒绝客户机通过代理服务器访问包含有诸如“sexy”等关键字的网站:

acl deny_url url_regex -i sexy

http_access deny deny_url

(4)拒绝客户机通过代理服务器访问文件中指定IP或者域名的网站,其中文件/etc/squid/ deny_ip中存放有拒绝访问的IP地址,文件/etc/squid/deny_dns中存放有拒绝访问的域名:

acl deny_ip dst “etc/squid/deny_ip”

acl deny_dns dst “etc/squid/deny_dns”

http_access deny deny_ip

http_access deny deny_dns

(5)允许和拒绝指定的用户访问指定的网站,其中,允许客户1访问网站http://www.sina.com.cn,而拒绝客户2访问网站http://www.163.com:

acl client1 src 192.168.0.118

acl client1_url url_regex ^http://www.sina.com.cn

acl client2 src 192.168.0.119

acl client2_url url_regex ^http://www.163.com

http_access allow client1 client1_url

http_access deny client2 client2_url

(6)允许所有的用户在规定的时间内(周一至周四的8:30到20:30)访问代理服务器,只允许特定的用户(系统管理员,其网段为:192.168.0.0/24)在周五下午访问代理服务器,其他的在周五下午一点至六点一律拒绝访问代理服务器:

acl allclient src 0.0.0.0/0.0.0.0

acl administrator 192.168.10.0/24

acl common_time time MTWH 8:30-20:30

acl manage_time time F 13:00-18:00

http_access allow allclient common_time

http_access allow administrator manage_time

http_access deny manage_time


客户端在IE中配置代理测试

深入学习请访问:http://home.arcor.de/pangj/squid/index.html和百度文库

问题点:
登录不了QQ(提前禁用防火墙不会出现该情况)
打开防火墙tcp433、udp8000、tcp4000端口
登录QQ时使用代理的方式登录,如果只有一个浏览器(就是IE),网络设置选择“使用浏览器设置”,如果还有其他浏览器,选择“http代理”,地址是代理服务器的内网地址,端口3128


你可能感兴趣的:(代理服务器,网站,软件,internet,网卡)