Squid做为应用层的代理服务软件,squid主要用于提供缓存加速,应用层过滤控制的功能。
工作机制:
当客户机通过代理来请求web页面时,指定的大力服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机要访问的页面,则有代理服务器向Internet发送请求,当获得返回的web页面以后,将网页数据保存到缓存中并发送给客户机。
代理服务器squid的好处:1,、提高了客户机的web访问响应速度。2、由于客户机的web请求是由代理服务器代替完成的,从而可以隐藏用户的真实IP地址,一定程度上起到安全作用。
代理类型:
作用在公网上的传统代理:手动设置代理服务器的端口和地址,然后才能代理来访问网络。对于网页浏览器,访问网站时的域名解析请求也会发给指定的代理服务器。
作用在局域网的透明代理:不需要手动设置代理服务器的端口和地址,而通过默认路由、防火墙策略将web重定向,实际任然交给代理服务器来处理。重定向的过程对于客户机来说是“透明”的,用户甚至并不知道自己在使用代理服务器来处理。
实验环境:两台Linux6系统、一台windows7系统。
1、win7做客户机IP地址192.168.100.100,网关192.168.100.1。
2、Linux的公网web服务器,eth0:10.0.0.10,子网255.255.255.0、网关10.0.0.1。
3、Linux的squid代理服务器,eth0:192.168.100.1、eth1:10.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客户机访问Linux的web服务器
步骤三:在Linux的web服务上查看日志文件。访问的地址全都是客户机的IP地址。
[root@root ~]# vim /etc/httpd/logs/access_log //查看web日志记录
步骤四:在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正则表达式
编译安装的截图
[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 //缓存路径,去掉“#”号就行启用
启动服务查看端口
启动代理服务后:
手动设置windows 7浏览器的代理服务,点击浏览器右边的工具→internet选项→连接→局域网设置,输入linux-2的本地代理服务IP地址,并且指定代理端口。
最后在Linux的web服务器上查看日志文件