Linux运维知识之Squid传统代理与透明代理构建
小标 2019-03-15 来源 : 阅读 1063 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Squid传统代理与透明代理构建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Squid传统代理与透明代理构建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

Linux运维知识之Squid传统代理与透明代理构建

一、缓存代理概述


1.缓存代理概述


作为应用层的代理服务软件,Squid主要提供缓存加速和应用层过滤控制的功能。


2.代理的工作机制


当客户机通过代理来请求Web页面时,指定的代理服务器会检查自己的缓存,如果缓存中已经存在客户机需要访问的页面,则之间将缓存中的页面内容反馈给客户机;若代理服务器中的缓存中没有客户机需要访问的页面,则由代理服务器向Internet发送访问请求,再将获得的页面数据保存到缓存中,并发送给客户机.


二、手工编译安装squid


1.解压缩squid安装文件到/opt


tar zxvf squid-3.5.28.tar.gz -C /opt


2.配置squid的编译选项


cd /opt/squid-3.5.28/
[root@promote squid-3.5.28]# ./configure --prefix=/usr/local/squid \     //指定安装目录
> --sysconfdir=/etc \     //单独将配置文件修改到其他目录
> --enable-arp-acl \   
> --enable-linux-netfilter \    //使用内核过滤
> --enable-linux-tproxy \       //支持透明模式
> --enable-async-io=100 \       //异步I/O
> --enable-err-language="Simplify_Chinese" \  //错误提示信息的语言
> --enable-underscore \    //允许url中有下划线
> --enable-poll \         //使用poll()模式,提升性能
> --enable-gnuregex    //使用gun正则表达式


make && make install


3.将squid程序命令创建软链接到系统命令下


ln -s /usr/local/squid/sbin/* /usr/local/sbin/


4.添加用户


useradd -M -s /sbin/nologin squid


5.更改所属主与所属组


chown -R squid.squid /usr/local/squid/var/


6.编辑squid配置文件,


vim /etc/squid.conf


cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid


squid -k parse   //检查配置文件语法

squid -z   //初始化缓存目录

squid    //启动服务


查看服务是否开启


netstat -natp | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      84346/(squid-1)


7.创建squid脚本文件,更好的管理squid服务


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 "正在启动 squid..."
       $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 "正在关闭 squid..."
         $0 start &> /dev/null
      echo "正在启动 squid..."
   ;;
   reload)
      $CMD -k reconfigure
   ;;
   check)
      $CMD -k parse
   ;;
   *)
      echo "用法:$0{start|stop|status|reload|check|restart}"
   ;;
esac

chmod +x squid //给脚本添加可执行权限


8.添加为系统服务并设置开机自启动


chkconfig --add squid
chkconfig --level 35 squid on


此时我们可以使用squid脚本来启动、停止、重启和重载suqid服务器了。


三、传统代理构建


传统代理案例环境


1.squid代理服务器的配置


(1)编辑suqid.conf 配置文件


cache_mem 64 MB   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB    #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB    #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户


重启squid服务


service squid restart
正在关闭 squid...
正在启动 squid...


(2)添加防火墙策略


[root@promote init.d]# iptables -F
[root@promote init.d]# setenforce 0
[root@promote init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT


重载suqid服务


[root@promote init.d]# service squid reload


2.在http的服务器上安装httpd服务


(1)关闭防火墙


[root@promote ~]# systemctl stop firewalld.service 
[root@promote ~]# setenforce 0


(2)安装httpd


[root@promote ~]# yum install httpd -y


(3)开启httpd服务


[root@promote ~]# systemctl start httpd.service
[root@promote ~]# netstat -natp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      7975/httpd


3.win7客户机上进行代理配置


(1)在Ie浏览器中,选择“工具”一>“Internet 选项”,弹出“Internet选项”对话框,


在“连接”选项卡中的“局域网(LAN)设置”选项组中单击“局域网设置”按钮,弹出“局域网(LAN)设置”对话框,

勾选”为LAN使用代理服务器”,在地址栏框中输入squid代理服务器的地址,端口为3128


(2)访问httpd服务器的网站


4.查看httpd服务器访问日志的新增记录


cd /etc/httpd/logs
vim access_log


四、构建透明代理


1.squid服务器配置


(1)编辑squid.conf配置文件


http_port 192.168.100.1:3128 transparent


重载服务


service squid reload


(2)添加防火墙策略


[root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@localhost ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT


2.win7测试机浏览器配置


3.查看htpt服务器的日志访问


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程