Squid代理服务器配置/二级代理

Squid全名Squid Cache(官网:http://www.squid-cache.org/),一个高性能的代理缓存服务器。主要支持FTP、HTTPS和HTTP协议。Squid用途广泛,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。

下面我们来搭建一个代理服务器,同时完成一个多层代理的配置:

一、安装Squid3 ,在centos中,安装squid是非常简单的:

  1. 执行下在的命令:

    yum install -y squid

  2. 配置文件目录:/etc/squid/squid.conf
  3. 启动服务
    systemctl start squid.service(systemctl restart squid.service)

     

  4. 配置系统防火墙规则,增加squid端口(squid默认的端口为:3128)

    firewall-cmd --zone=public --add-port=3128/tcp --permanent
    firewall-cmd --reload
     

二、验证服务器

  1. 打开Squid实时日志(日志目录:/var/log/squid/access.log)

    tail -f /var/log/squid/access.log


     
  2. window系统使用:配置IE浏览器代理好后,访问外网网站,可看到日志文件有内容输出且页面正常打开,说明配置成功。
     

四、高级应用(多层代理)

在上面,我们完成了一个单代理服务器的简单配置和使用,接下来有个需求,阿里云上某台无外网服务器访问【*.baidu.com】这类请求时,需要通过公司的代理服务器访问目标服务器上的相关服务(如下图),对于其它请求则不用通过公司的代理服务器,那我们需要怎么配置?

1、首先在2台服务器上安装Squid;

2、在【代理服务-1】上完进行下配置

  • 修改配置文件

    vim /etc/squid/squid.conf #在http_access deny !Safe_ports 前新增下面的内容

     

    #定义基于【目标域名】的策略
    acl cnlist dstdomain .baidu.com

    #配置一个父代理服务器的信息
    cache_peer 父代理服务器IP parent 3128 0 no-query no-digest

    #指定只有符合策略的请求才走父代理服务器
    cache_peer_access 父代理服务器IP allow cnlist #对*.baidu.com的请求走上面配置的父代理

    never_direct allow cnlist #对*.baidu.com的请求不发送给源服务器,转向父代理

    #指定总是要发给源服务器请求ACL策略
    always_direct allow !cnlist # 对非*.baidu.com的请求不走父代理

  • 重启Squid服务
    systemctl restart squid.service
     
  •  在无外网服务器上访问www.baidu.com,查看是否正常访问,是则说明配置生效
     

四、其它配置说明

1、 配置可访问代理服务器的IP

      acl localnet src  请求电脑的IP

 

2、acl规则配置说明

   格式:acl name type parm...    #多个参数之间为OR的关系

     squid有25种type,常用的类型及功能作用列举如下:

 

名称

作用

示例

备注

src/dst

指定控制源或目标的IP地址列表

acl localnet src 192.168.1.0/24

acl localnet src 172.16.10.0-172.16.19.0/24     

地址控制勿用主机名,解析比较慢,主机对应IP变化后会失效,要使用srcdom等;

srcdomain
dstdomain
指定源或目的的域名列表

acl servers dstdomain  .baidu.com

.作为通配符,它匹配此域的任何主机域,包括域名自身。无.则为精确匹配。

srcdom_regex 
dstdom_regex
url_regex
urlpath_regex
ident_regex     
proxy_auth_regex
req_mime_type         
指定按照指定的字段
进行正则表达式的匹配

acl servers dstdom_regex -i baidu 

支持一些参数,如-i 大小写不敏感;

ident/proxy_auth

支持身份过滤

acl auser ident proxy

 
port支持端口的过滤

acl SafePort port  80 8080 8000

端口比较适合用范围来表示,通常

myip/myport

指定squid服务器的地址与端口acl aport myport 80
acl pport myport 3128

myip用于在系统有多个接口时指定自己的IP

myport用于squid在多个端口上监听时指示不同PORT

method

支持HTTP请求方法的过滤

acl Uploads method PUT POST

 

proto

支持不同协议的过滤

HTTP/HTTS/FTP等

acl ftpcl proto ftp 
maxconn

指定每个IP的最大连接数

acl MaxCon maxconn 10

 

arp

检测客户端的MAC地址

acl mybox arp 00:10:20:30:40:50

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值