Squid代理服务器应用

一、什么是squid

Squid(Squid cache,简称Squid)是Linux系统中最常用的一款开源代理服务软件
可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大
squid的官方网站为http://www.squid-cache.org

二、缓存代理概述

1、 Web代理的工作机制,缓存网页对象,减少重复请求

Squid是一个缓存Internet数据的一个软件,它接收用户的下载申请, 并自动处理所下载的数据。
也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份
当别的用户申请同样的页面时,Squid把保存的备份立即0传给用户,减少了向Internet提交重复的Web请求的过程,提高了用户下载网页的速度,隐藏了客户机的真实IP
如图:
在这里插入图片描述

2、代理的基本类型

传统代理:适用于Internet,需明确指定服务端
透明代理: 客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

3、使用代理的好处

提高Web访问速度
隐藏客户机的真实IP地址

三、squid代理服务分为传统代理和透明代理两种

squid代理服务分为传统代理和透明代理两种

一、部署传统代理squid服务
1、项目需求
【1】一台squid代理服务器192.168.169.88
【2】一台web服务器192.168.169.100
2、部署步骤
【1】安装squid服务
yum install -y gcc gcc-c++
tar zxvf /opt/squid-3.4.6.tar.gz 
cd /opt/squid-3.4.6
./configure \
--prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex
make && make install

ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/

vim /etc/squid.conf
#59行添加,指定程序用户
cache_effective_user squid
#61行添加,指定程序用户基本组
cache_effective_group squid
#备份路径67行,不需要添加,默认就有
coredump_dir /usr/local/var/cahce/squid

squid -k parse   //检查配置文件的语法
squid -z      //初始化缓存目录
squid        //启动squid服务
netstat -natp | grep 3128

【2】便于service管理设置脚本
cd /etc/init.d/
vim squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
  start)
    netstat -natp | grep squid &> /dev/null
    if [ $? -eq 0 ];then
    echo "squid is running"
    else
    echo "please wait a moment"
    $CMD
    fi
  ;;::
  stop)
    $CMD -k kill &> /dev/null
    rm -rf $PID &> /dev/null
  ;;
  status)
    [ -f $PID ] &> /dev/null
      if [ $? -eq 0 ];then
        netstat -natp | grep squid
      else
        echo "squid is not running"
      fi
  ;;
  restart)
    $0 stop &> /dev/null
    echo "please wait a moment"
    $0 start &> /dev/null
    echo "squid is running"
  ;;
  reload)
    $CMD -k reconfigure
  ;;
  check)
    $CMD -k parse
  ;;
  *)
    echo "Usage:$0{start|stop|restart|reload|check|}"
esac

chmod +x /etc/init.d/squid
chkconfig --add squid
chkconfig --level 35 squid on

【3】squid传统代理服务器配置
(1)配置squid传统代理服务
vim /etc/squid.conf
#56行允许代理所有,默认是deny的,要修改为allow
http_access allow all
http_port 3128
#指定缓存功能所使用的内存空间大小
cache_mem 64 MB
#允许用户下载的最大文件的大小
reply_body_max_size 10 MB
#允许保存到缓存空间的最大对象的大小
maximum_object_size 4096 KB
(2)设置防火墙策略
iptables -F
setenforce 0
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
(3)重启
service squid reload 
(4)访问和验证
在Windows浏览器
设置---高级---系统---计算机的代理设置---手动设置代理【开,地址:代理服务器squid的IP地址,端口:3128】---保存
在地址栏输入web服务器的IP地址192.168.60.20
查看web服务器的访问日志文件是否由代理服务器给web服务器的请求
cat /var/log/httpd/access.log

【4】squid透明代理配置
(1)配置双网卡,内网卡ens33,外网卡ens37
ens33:192.168.169.88
ens37:192.168.10.1
(2)设置路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
service network restart
(3)在web路由器上面配置静态路由
route add -net 192.168.10.0/24 gw 192.168.169.88
(4)配置squid透明代理
vim /etc/squid.conf
http_port 192.168.10.1:3128 transparent
(5)重启加载配置
service squid reload
(6)设置防火墙策略
iptables -t nat -F
//重定向端口号
iptables -t nat -I PREROUTING -i ens37 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens37 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
(7)访问并验证
在Windows浏览器中关闭手动代理设置
设置---高级---系统---计算机的代理设置---手动设置代理【关】
查看web服务器的访问日志文件是否由代理服务器给web服务器的请求
cat /var/log/httpd/access.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值