Squid安装配置实战

来源:互联网 发布:监控器无网络视频 编辑:程序博客网 时间:2024/05/17 10:54

简介:

    代理服务器(ProxyServer)其功能就是代理网络用户去取得网络信息。

Squid是一个缓存Internet数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。Squid可以代理HTTPFTPGOPHERSSLWAIS等协议并且Squid可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

 

工作流程

当代理服务器中客户端需要的数据时:

a.客户端向代理服务器发送数据请求;

b.代理服务器检查自己的数据缓存;

c.代理服务器在缓存中找到了用户想要的数据,取出数据;

d.代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:

1.客户端向代理服务器发送数据请求;

2.代理服务器检查自己的数据缓存;

3.代理服务器在缓存中没有找到用户想要的数据;

4.代理服务器向Internet上的远端服务器发送数据请求;

5.远端服务器响应,返回相应的数据;

6.代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

 

Squid代理服务器工作在TCP/IP的应用层。

 

Squid 分类:

 

1、正向代理普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;

 

2、正向代理—透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

 

3、反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

 

 

实验环境:

       三台可分配主机:

       WindowsCH

       LinuxCentOS6.3   node1

       LinuxCentOS6.3   node2

       LinuxCentOS6.4  www.silentdusk.com

 

 

实验目的:

       1、普通代理:

       CH指定node1为代理服务器,访问node2。


 

       2、透明代理:

       Node1为用户内网防火墙且为squid server,node1代理CH的所有Web请求,node2为外网企业Web server。


 

 

       3、反向代理:

       Node1和node2在企业网站内网中,node2为web server,node1 为squid server。

       CH访问网站node1,node1给node2发请求,node1得到数据后,在返回给CH。


 

实验步骤:

 

普通代理实验:

 

1、  安装squid:

#yum installsquid

 

2、  设置开机自动启动

#chkconfig squidon

 

3、 主配置文件:/etc/squid/squid.conf详解:

http_port 3128     //设置监听的IP与端口号

 

cache_mem 64 MB  //额外提供给squid使用的内存

 

maximum_object_size 4 MB   //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘

minimum_object_size0 KB  //设置squid磁盘缓存最小文件

maximum_object_size_in_memory4096 KB  //设置squid内存缓存最大文件,超过4M的文件不保存到内存

cache_dir ufs /var/spool/squid 100 16 256   //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量

 

logformat combined %&gt;a %ui %un [%tl]"%rm %ruHTTP/%rv" %Hs%<st"%{Referer}>h""%{User-Agent}&gt;h" %Ss:%Sh       //log文件日志格式

 

access_log /var/log/squid/access.logcombined  //log文件存放路径和日志格式

cache_log/var/log/squid/cache.log  //设置缓存日志

logfile_rotate 60   //log轮循 60

 

cache_swap_high 95  //cache目录使用量大于95%时,开始清理旧的cache

 

cache_swap_low 90   //cache目录清理到90%时停止。

 

acl localnet src 192.168.1.0/24  //定义本地网段

 

http_access allow localnet  //允许本地网段使用

 

http_access deny all  //拒绝所有

 

visible_hostname localhost  //主机名

 

cache_mgr xxxx@xx.com  //管理员邮箱

 

       4、修改配置文件结束后,初始化:

              #squid-z

      

      

5、初始化成功后启动squid:

              #servicesquid start

启动成功!!

 

       6、测试squid:

       client在IE设置squid代理。

浏览web上的网页


      

测试成功!

       Squidserver正常工作!普通代理实验成功!

      

 

       透明代理实验:

      

1、  修改配置文件:

在端口设置项后添加transparent关键字。

 

2、 重启squid


#service squid restart

 

3、  防火墙设置:

#serviceiptables start

#iptables -F

#/etc/init.d/iptablessave


             

#iptables -t nat -L -n


 

#iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24-p tcp --dport 80 -j REDIRECT --to-port 3333

#/etc/init.d/iptablessave

 

4、  为node1增加一张网卡和模拟外网ip:

#ifconfig eth1 200.168.1.1 netmask 255.255.255.0

 

5、  为node2配置模拟外网ip:

#ifconfig eth0 200.168.1.2 netmask 255.255.255.0

 

6、  测试虚拟环境连通性(模拟):

Client能ping通node1,不能ping通node2。

Node1能ping通client和node2。

Node2能ping通node1,不能ping通client。

 

7、把client网关设置为squid server :

      

取消IE中的代理设置!

 

7、  测试squid server是否能完成代理:

 

实验成功!!

 

 

       反向代理:

 

1、  关闭防火墙

#serviceiptables stop

 

2、  配置squid:

http_port 80 accel vhost

cache_peer 200.168.1.2 parent 80 0 originserverround-robin weight=1

 

3、  重启squid:

先关闭本机web服务,不然80端口占用,squid起不来!

#service squidrestart

 

4、  测试

Client网页访问squid server ,出现node2的web信息。


 

实验完成!!!

 

 

       Squid常用命令:

 

1,  初始化你在 squid.conf 里配置的 cache 目录
squid -z

 

2,  对你的squid.conf 排错,即验证squid.conf 的 语法和配置。
squid -k parse

 

3,  在前台启动squid,并输出启动过程。
/usr/local/squid/sbin/squid -N -d1

 

4,  启动squid在后台运行。
squid -s

 

5,  停止 squid
squid -k shutdown

 

6,  重引导修改过的 squid.conf
squid -k reconfigure -f /XXX/squid.conf

 

7,  修改cache 缓存目录的权限。
chown -R squid:squid /cache目录

 

8,  修改squid 日志目录的权限
chown -R squid:squid 定义的日志文件所在目录

 

9,  定期清除swap.state内无效数据
squid -k rotate -f /path/to/squid/conf_file

原创粉丝点击