Squid 简介

  Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

squid 代理基本类型 :

  • 传统代理 :手动设置服务器的地址和端口,然后才能使用代理服务来访问网络。

  • 透明代理

本案环境

主机 IP地址 系统 主要软件
代理服务器 192.168.217.128 CentOS 7.3 squid
web 服务器 192.168.217.138 CentOS 7.3 httpd
客户端 192.168.217.133

部署传统代理

1.安装 squid 代理服务 :

yum install squid -y

2.编辑配置文件 :

vim /etc/squid/squid.conf
cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组

http_access allow all        #添加在 http_access deny all 上面

http_port 3128     
cache_mem 64 MB                   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB         #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB       #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

3.配置防火墙规则链 :

iptables -F     #清空规则链
setenforce 0
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT   #允许3128端口

4.客户端访问 web 服务器配置:

squid 缓存服务器之传统、透明代理squid 缓存服务器之传统、透明代理squid 缓存服务器之传统、透明代理

5.查看web服务器访问日志验证:

cat /etc/httpd/log/access.log

squid 缓存服务器之传统、透明代理

部署透明代理

透明代理 :客户机不需要指定代理服务器的地址和端口,而是通过路由、防火墙策略将web访问重定向,实际上还是交给代理服务器来处理。

本案环境

主机名 IP地址 系统 软件
代理服务器 内 192.168.217.1 外192.168.200.1 CentOS 7.3 squid
web 服务器 192.168.200.12 CentOS 7.3 httpd
客户机 192.168.217.133 win

1.添加双网卡 :

2.安装 squid 服务 :

yum install squid -y

3.编辑配置文件 :

vim /etc/squid/squid.conf

cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组

http_access allow all        #添加在 http_access deny all 上面

http_port 192.168.217.1:3128 transparent   #添加本地IP地址  模式 透明

4.设置防火墙策略 :

iptables -F
iptables -t nat -I PREROUTING -i ens32 -s 192.168.217.0/24 -p tcp --dport 80 -j REDIRECT --to 3128   

iptables -t nat -I PREROUTING -i ens32 -s 192.168.217.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
#把80、443端口重定向到3128端口
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

5.访问 web 服务器验证(客户机不需要配置代理服务器地址和端口) :

cat /etc/httpd/log/access.log  #查看访问日志

squid 缓存服务器之传统、透明代理