Squid做为应用层的代理服务软件,squid主要用于提供缓存加速,应用层过滤控制的功能。


工作机制:

当客户机通过代理来请求web页面时,指定的大力服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机要访问的页面,则有代理服务器向Internet发送请求,当获得返回的web页面以后,将网页数据保存到缓存中并发送给客户机。

代理服务器squid的好处:1,、提高了客户机的web访问响应速度。2、由于客户机的web请求是由代理服务器代替完成的,从而可以隐藏用户的真实IP地址,一定程度上起到安全作用。


代理类型:

作用在公网上的传统代理:手动设置代理服务器的端口和地址,然后才能代理来访问网络。对于网页浏览器,访问网站时的域名解析请求也会发给指定的代理服务器。

作用在局域网的透明代理:不需要手动设置代理服务器的端口和地址,而通过默认路由、防火墙策略将web重定向,实际任然交给代理服务器来处理。重定向的过程对于客户机来说是“透明”的,用户甚至并不知道自己在使用代理服务器来处理。

 

实验环境:两台Linux6系统、一台windows7系统。

1win7做客户机IP地址192.168.100.100,网关192.168.100.1

2Linux的公网web服务器,eth010.0.0.10,子网255.255.255.0、网关10.0.0.1

3Linuxsquid代理服务器,eth0192.168.100.1eth110.0.0.1

 

步骤一:配置好地址后,将Squid代理服务器上启动默认路由功能。

[root@root ~]# vim /etc/sysctl.conf 

net.ipv4.ip_forward = 1

[root@root ~]# sysctl -p  //刷新生效

net.ipv4.ip_forward = 1

 

步骤二:用win7客户机访问Linuxweb服务器

squid代理服务简单配置_squid 

 

步骤三:在Linuxweb服务上查看日志文件。访问的地址全都是客户机的IP地址。

[root@root ~]# vim /etc/httpd/logs/access_log  //查看web日志记录

squid代理服务简单配置_squid_02 

 

步骤四:在squid代理服务器中安装squid软件包,然后解压缩并用yum进行编译安装。

[root@root ~]#tar zxvf squid-3.4.6.tar.gz -C /opt  //解压到/opt目录下  

[root@root ~]#yum -y install gcc gcc-c++ //手工编译

[root@root ~]#cd /opt/squid-3.4.6.tar.gz  //进入这个目录下

[root@root squid-3.4.6 ]#./configure \

--prefix=/usr/local/squid \  //安装目录

--sysconfdir=/etc \  //单独将配置文件修改到其他目录

--enable-arp-acl \  //可以在规则中设置直接通过客户端MAC进行管理,

                       防止客户端使用IP欺骗

--enable-linux-netfilter \  //使用内核过滤

--enable-linux-tproxy \   //支持透明模式

--enable-async-io=值 \    //异步I/O,提升存储性能,

                               相当于--enable-pthreads   

                               或--enable-storeio=ufs,aufs --with

                               或-pthreads --with-aufs-thread=值

--enable-err-language="Simplify_Chinese" \   //错误信息的显示语言

--enable-underscore \   //允许URL中有下划线

--enable-poll \   // 使用poll()模式,提升性能

--enable-gnuregex \  //使用GNU正则表达式


编译安装的截图

squid代理服务简单配置_代理服务器_03


[root@root squid-3.4.6 ]#make && make install

[root@root squid-3.4.6 ]#ln -s /usr/local/squid/sbin/* /usr/local/sbin/  //创建软连接

[root@root squid-3.4.6 ]#useradd -M -s /sbin/nologin squid   //创建squid服务的专属用户

[root@root squid-3.4.6 ]#chown -R squid:squid /usr/local/squid/var/  //修改文件的属主和属组信息

[root@root squid-3.4.6 ]#vi /etc/squid.conf  //编辑配置文件

http_port 3128    //squid代理服务端口

cache_mem 64 MB   //最大缓存大小

maximum_object_size 4096 KB    //缓存对象大小

visible_hostname root.benet.com   //指定本地主机名和域名

cache_effective_user squid  //指定squid程序用户

cache_effective_group squid  //指定squid的程序组

cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 //缓存路径,去掉“#”号就行启用

 

启动服务查看端口

squid代理服务简单配置_squid_04 

 

启动代理服务后:

手动设置windows 7浏览器的代理服务,点击浏览器右边的工具→internet选项→连接→局域网设置,输入linux-2的本地代理服务IP地址,并且指定代理端口。

 squid代理服务简单配置_代理服务器_05

 

最后在Linuxweb服务器上查看日志文件

squid代理服务简单配置_squid_06