Linux squid代理
代理的作用:
共享网络 ;
加快访问速度,节约通信带宽 ;
防止内部主机受到攻击 ;
限制用户访问,完善网络管理;
标准代理:
首先要在内部主机指定代理服务器的IP和port,然后通过代理服务器访问外部资源,代理服务器收到访问请求后,会查询本地是否已缓存这个资源,如果存在直接响应给内部机器;如果本地缓存没有,则代理服务器去目标网站请求资源,然后响应给内部主机,并且缓存到本地一份。
透明代理:
透明代理与标准代理功能完全相同,只是代理方式不同,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口),需要内部主机将网关指向代理服务器。
反向代理:
互联网用户向WEB服务器发送请求,如果请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。
安装:
可直接yum安装
yum install -y squid
参数配置:
acl:acl ACLNAME ACLTYPE PARAM1 PARAM2...
eg:acl Safe_ports port 443 80 21
-
- src:客户端的p
- dst:目标server的ip
- srcdomain:源URL
- dstdomain:目标server的URL
- port:端口号
- proto:通信协议
- http_status:http状态
- method:方法
- url_regex:URL规则表达式匹配
- urlpath_regex:URL-path规则表达式匹配,略去协议和主机名
- maxconn:单一IP的最大连接数
http_access:http_access allow|deny [!]ACLNAME
对设定的aclname加上权限,禁止或允许aclname
eg:http_access deny !Safe_ports #禁止除了Safe_ports以外的端口
http_port:http_port 3128
squid的工作端口
cache_mem:cache_mem 512 MB
指定用于缓存的内存大小
cache_dir:cache_dir ufs Dirname Mbytes L1 L2 [options] 设置缓存目录
eg:cache_dir ufs /app/squid 5000 16 256
ufs:squid的储存格式
Dirname :指定缓存目录
Mbytes:可以使用磁盘的大小
L1:一级子目录的数量
L2:二级子目录的数量
refresh_pattern:refresh_pattern regex min percent max 设置缓存过期时间(分钟为单位)
如果时间小于min,缓存没有过期
如果时间小于(max-min)*percent,也没有过期
否则缓存是stale
eg:refresh_pattern .cvd$ 720 0% 1080
查询squid情况
squidclient -p 3128 mgr:info
下面以代理yum源为例,别的机器可以通过它安装yum包,yum源为中国科技大学镜像站。
squid server端
acl localnet src 172.0.0.0/8 acl Safe_ports port 443 80 21 acl http proto HTTP FTP acl CONNECT method CONNECT acl web dstdomain .ustc.edu.cn #设置中国科技大学镜像网站 http_access deny !Safe_ports #http_access deny CONNECT http_access deny !web http_access allow web http_access allow localnet http_access deny all http_port 3128 cache_mem 512 MB #缓存目录 后面的是缓存的大小 二级目录和三级目录数量 cache_dir ufs /app/squid 5000 16 256 #设置squid的数据堆目录 coredump_dir /app/squid #expire time minute min percent max #if < min Cache is refresh #elif < (max-min)*percent Cache is refresh #else Cache is stale refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320
客户端
#vim /etc/yum.conf proxy=http://172.30.100.111:3128
或者定义全局http_proxy
#vim /etc/profile export http_proxy=http://172.30.100.111:3128 #添加代理ip和port export https_proxy=https://172.30.100.111:3128 #https #source /etc/profile
如果客户端可以安装yum包,证明配置无误!