Linux squid代理

时间:2023-03-08 17:25:24
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包,证明配置无误!