• 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包,证明配置无误!

  • 相关阅读:
    topshelf和quartz
    Dapper的使用
    多快好省的做个app开发
    端口扫描之王——nmap入门精讲(转)
    你对自己的定位是什么,就能成为什么样的人(转)
    2015工作总结及2016展望
    使用php+swoole对client数据实时更新(二) (转)
    解决一bug的流程复盘
    JSONObject与JSONArray的使用
    GDB十分钟教程
  • 原文地址:https://www.cnblogs.com/houyongchong/p/10071841.html
Copyright © 2020-2023  润新知