精华内容
下载资源
问答
  • SQUId

    2019-10-28 10:11:44
    SQUId
  • Squid

    2021-01-12 20:23:58
    Squid 什么是squidSquid是一个高性能的代理缓存服务器。它是这样实现其功能的,接受来自人们需要访问的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想访问一web页面,请求Squid为它取得这个...

    Squid

    什么是squid?

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

    Squid的工作类型

    传统代理–正向代理

    默认使用的方案
    在这里插入图片描述

    举例说明:如果一个公司不能上外网,大家都是使用内网工作。但是为了工作需要,公司为研发部门配置了一台能够上外网的电脑,这样大家为了上外网,就会争抢这台电脑。但是有的人就想方设法把自己的电脑也得鼓捣的能连接外网,就是通过能那台连接外网的的电脑,连接外网(伪装成通外网的电脑上网),这种场景就是传统代理 /正向代理。

    实验演示

    环境准备

    客户端:192.168.4.116 网段1

    正向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    vim /etc/profile
    export HTTP_PROXY=HTTP://192.168.4.113:3128  #增加代理
    . /etc/profile  #刷新环境变量
    yum -y install elinks  #安装浏览器
    
    正向代理服务器
    yum install -y squid  #安装squid
    vim /etc/squid/squid.conf  #修改配置文件
    http_port 3128
    visible_hostname www.atguigu.com
    
    service squid start  #开启squid
    
    vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  #开启内核转发
    
    服务端
    yum install -y httpd  #咱Apache
    service httpd start  #开启
    echo "HelloWorld" > /var/www/html/index.html
    
    测试
    elinks 192.168.100.115  #客户端访问服务端
    HelloWorld   #访问结果
    

    透明代理

    在这里插入图片描述

    客户端根本不需要知道有代理服务器的存在,其实也属于传统代理的一种,不同的是传统代理需要在客户端设置代理的IP和PORT,透明代理则是当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口3128,代理服务器使用某一端口,向web服务器请求数据,收到数据后,返回给客户端,自己缓存一份。

    实验演示

    环境准备

    客户端:192.168.4.116 网段1

    正向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    yum -y install elinks  #安装浏览器
    
    代理服务器端
    yum install -y squid  #安装squid
    vim /etc/squid/squid.conf  #修改配置文件
    http_port 192.168.4.113:3128 transparent
    visible_hostname www.atguigu.com
    
    service squid start  #开启squid
    
    vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  #开启内核转发
    
    service iptables start 
    iptables -F #清除规则
    iptables -t nat -A PREROUTING -i eth0 -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128  #设置防火墙规则,使经过代理服务器访问服务器的地址重定向到代理服务器的3128端口
    iptables -t nat -L #查看设置的规则
    
    客户端
    yum install -y httpd  #咱Apache
    service httpd start  #开启
    echo "HelloWorld" > /var/www/html/index.html
    
    测试
    elinks 192.168.100.115  #客户端访问服务端
    HelloWorld   #访问结果
    

    反向代理

    在这里插入图片描述

    反向代理是相对正向代理而言,是代理web服务器接受客户端的请求。客户端向web服务器发送请求,客户端本地的DNS服务器会将客户请求的域名,解析成Squid服务器IP,然后客户端发送,IP请求,请求到达反向代理服务器,反向代理服务器查询自己是否有客户请求的资源,如果有,直接发送给客户端,如果没有则通过内部DNS轮询的方式向真实服务器发送请求,得到客户端所需要的数据,然后发送给客户端,自己则保留一份。

    支持同类型的服务器相互同步,只支持rr算法

    实验展示

    环境准备

    客户端:192.168.4.116 网段1

    反向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    ​ 192.168.100.112 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    yum -y install elinks  #安装浏览器
    
    反向代理服务器端
    yum install -y squid
    vim /etc/samba/smb.conf
    acl localnet src 192.168.100.0/24	#acl访问控制列表,localnet:控制列表的名称,src:允许访问的源地址:192.168.100.0/24  
    http_port 192.168.4.113:80 vhost  #指定本机的公网IP和PORT vhost:虚拟主机
    cache_dir ufs /var/spool/squid 100 16 256  #将注释打开
    visible_hostname www.atguigu.com  #本机的hostname
    cache_peer 192.168.100.115 parent 80 0 originserver round-robin  #真实服务器
    cache_peer 192.168.100.112 parent 80 0 originserver round-robin  #真实服务器
    #需要注意的是:真实服务器只支持rr轮询,
    
    服务端
    节点1:192.168.100.115
    yum install -y httpd
    service heepd start 
    echo "192.168.100.115-1" > /var/www/html/1.html
    echo "192.168.100.115-2" > /var/www/html/2.html
    
    节点2:192.168.100.112
    yum install -y httpd
    service heepd start 
    echo "192.168.100.112-1" > /var/www/html/1.html
    echo "192.168.100.112-2" > /var/www/html/2.html
    
    客户端测试
    curl 192.168.4.113/1.html
    192.168.100.115-1
    curl 192.168.4.113/1.html
    192.168.100.112-2
    

    Squid软件信息

    软件包:squid-3.xxxx

    系统服务:squid

    主程序:/usr/sbin/squid

    主配置文件:/etc/squid/squid.conf

    默认端口:TCP 3128

    默认访问日志:/var/log/squid/access.log

    配置文件

    vim /etc/squid/squid.conf
    #端口使用方式
    http_port 3128  # 监听端口
    http_port 本机公网ip:真实服务器端口 vhost  #CDN缓存服务器的时候使用
    
    access_log /var/log/squid/access.log squid  # 访问日志及日志属主
    cache_mem 64 MB  # squid进程能够使用的最大内存大小
    cache_dir ufs /var/spool/squid 100 16 256  # cache_dir:缓存目录,ufs:Unix File Systemc使用的文件系统,/var/spool/squid:缓存路径,100:squid使用的最大值,16:一级目录的数量(最多),256:二级目录的数量(最多),加快索引速度--hash tables  digest tables
    visible_hostname proxy.benet.com  # 指定当前可用的主机名
    dns_testnames www.google.com www.163.com  # 自我检测(能否上网)
    cache_peer 192.168.100.115 parent 80 0 originserver round-robin  #做CDN缓存服务器时指定的真实服务器,192.168.100.115(真实服务器IP),parent(上游服务器),80(真实服务器端口),0(代表周围有没有squid服务器,有写端口自己去寻找,没有写0),originserver(代表一个子节点),round-robin(rr轮询,没有其他算法)
    maximum_object_size 4096 KB  # 允许缓存资源的最大值
    reply_body_max_size  10 MB  # 允许请求的资源的最大值
    

    ACL(Access Control List)访问控制列表

    顾名思义,就是控制访问对象的,控制访问的类别也是非常多的,具体如下表所示:

    src源地址、网段,IP地址范围192.168.4.0/24 192.168.5.115
    dst目标地址、网段,主机名server
    port目标端口21 443 80
    dstdomain目标域
    time访问时间,星期一到星期天分别为:M T W H F A S
    maxconn最大并发连接
    url_regex目标URL地址www.baidu.com
    Urlpath_regex整个目标URL路径http://www.baidu.com/1.jpeg

    格式:acl 列表名称 列表类型 列表内容

    acl localnet src 10.0.0.0/8  #localnet:这条权限的名称,src:源地址控制,10.0.0.0/8:控制的网段,也就是说访问地址是10.网段的才能够进行访问
    acl Safe_ports port 80  #Safe_port:这条权限的名称,port:对目标端口访问的限制,80:只允许80被访问,也就是说,只能访问本机的80端口
    

    针对已定义的acl列表进行放行/拒绝

    格式:http_access allow/deny 列表名称(定义的ACL规则的名称)

    acl ll src 192.168.100.0/24  #定义一条acl权限
    http_access allow ll  #放行定义的名称为ll的这条规则
    http_access deny all  #这条规则一定要在所有的http_access规则的最后,否则定义的http_access规则不生效
    

    注意:1.如果只定义了acl访问的权限,不加http_access是否放行,默认拒绝

    ​ 2. 在加http_access放行规则,一定要写在“http_access deny all”这条规则的上方,否则不生效。

    ​ 3.当“http_access deny all”这条规则被注释掉时并且定义了acl范围却不做http_access的规则,或者定义的规则找不到范围,那么当前acl范围,会以最后一行的http_access做反向操作,即如果设置的是allow,则访问拒绝;如果设置的是deny,则允许访问。

    展开全文
  • squid

    2019-12-12 12:27:24
    squid官网 http://www.squid-cache.org/ 下载链接 http://www.squid-cache.org/Versions/ squid权威指南 http://zyan.cc/book/squid/chap01.html 网上一个哥们的心得 ...
    展开全文
  • SQUID

    2018-02-03 13:45:59
    squid正向代理 1.让虚拟机可以上网 vim /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=172.25.254.250 ###通过250的电脑让虚拟机上网 DNS1=114.114.114.114 systemctl restart network 测试 route

    squid正向代理

    1.让虚拟机可以上网

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    GATEWAY=172.25.254.250                             ###通过250的电脑让虚拟机上网
    DNS1=114.114.114.114
    systemctl restart network

    测试

    route -n                                      ###查看网关
    ping www.qq.com

    2.squid安装和配置更改172.25.254.117

    yum install -y squid            ##安装正向代理
    vim /etc/squid/squid.conf       ##修改配置文件
     55 # And finally deny all other access to this proxy
     56 http_access allow all       ##允许访问
     57 
     58 # Squid normally listens to port 3128
     59 http_port 3128
     60 
     61 # Uncomment and adjust the following to add a disk cache directory.
     62 cache_dir ufs /var/spool/squid 100 16 256   ##创建缓存地点 100M 16个目录 256个子级目录
    systemctl start squid       ##开启服务
    netstat -lntup|grep squid   ##查看端口
    如果防火墙未关
    firewall-cmd --permanent --add-port=3128/tcp        ##
    firewall-cmd --reload                   ##

    在真机中打开浏览器设置代理服务器的ip地址(172.25.254.117)
    用真机打开一个网页就可以正常上网

    squid反向代理

    1.准备两台虚拟机ip地址分别为真机ip+100 真机ip+200
    2.在172.25.254.217中:

    yum install -y squid
    vim /etc/squid/squid.conf
        55 # And finally deny all other access to this proxy
        56 http_access allow all        ##允许访问
        57 
        58 # Squid normally listens to port 3128
        59 http_port 80 vhost vport
        60 cache_peer 172.25.254.117 parent 80 0 no-query
        61 # Uncomment and adjust the following to add a disk cache directory.
        62 cache_dir ufs /var/spool/squid 100 16 256    ##创建缓存地点 
    systemctl start squid
    systemctl stop firewalld

    测试:
    打开游览器输入172.25.254.217这时会访问到117

    轮询

    需要至少两台已经配置好apache的虚拟机和一台代理缓存(217)

    vim /etc/squid/squid.conf
        cache_peer 172.25.254.117 parent 80 0 no-query originserver round-robin name=webserver1
        cache_peer 172.25.254.125 parent 80 0 no-query originserver round-robin name=webserver2
        cache_peer_domain webserver1 webserver2 www.westos.com
    
        # Uncomment and adjust the following to add a disk cache directory.
        cache_dir ufs /var/spool/squid 100 16 256
    
        # Leave coredumps in the first cache dir
        coredump_dir /var/spool/squid
    
    在浏览器所在的主机添加解析
        vim /etc/hosts
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,916
精华内容 21,566
关键字:

Squid