189 8069 5689

Squid缓存代理部署——传统+透明(超详细)-创新互联

内容要点:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的定襄网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

一、Squid介绍

二、缓存代理

三、手工编译安装、优化 Squid

四、搭建传统代理

五、设置透明代理

一、Squid介绍

(1)Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

(2)Squid运行在什么系统上?

Squid可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:Windows,AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris

(3)Squid的下载和获取:

squid在诸多unix like系统上都有软件库的提供,比如在ubuntu可以使用apt install squid进行安装,也可以到squid的官网直接下载二进制的编译好的软件包。

二、缓存代理

web 代理的工作机制:缓存网页对象,减少重复请求。

Squid缓存代理部署——传统+透明(超详细)

1、当我们客户机通过squid代理去访问web页面时,指定的代理服务器会先检查自己的缓存,若是缓存中有我们客户机需要的页面,那么squid服务器将直接把缓存中的页面内容返回给客户机,如果缓存中没有客户端请求的页面,那么squid代理服务器就会向internet发送访问请求,获得返回的web页面后,将网页的数据保存到缓存中并发送给客户机。

2、由于客户机的web访问请求实际上是squid代理服务器来代替完成的,所以隐藏了用户的真实IP地址,从而起到一定的保护作用。

另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。

(1)代理的基本类型:

1、传统代理:也就是普通的代理服务,需要我们客户端在浏览器、聊天工具等一些程序中设置代理服务器的地址和端口,然后才能使用代理来访问网络,这种方式相比较而言比较麻烦,因为客户机还需手动指定代理服务器,所以一般用于Internet环境。

2、透明代理:与传统代理实现的功能是一样的,区别在于客户机不需要手动指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向,实际上仍然交给代理服务器来处理,重定向的过程完全是由squid服务器进行的,所以对于客户机来说,甚至不知道自己使用了squid代理服务,因此呢,我们称之为透明模式。

透明代理多用于局域网环境,如在Linux网关中启用透明代理后,局域网主机无须进行额外设置就能享受更好的上网速度。

(2)使用代理的好处:

1、提高web访问速度;

2、隐藏客户机的真实 IP地址

三、手工编译安装、优化 Squid

(1)解压缩包:

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

(2)安装编译工具:

yum install gcc gcc-c++ make -y

(3)编译:

./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

(4)安装

install && make install

(5)方便管理,可以创建软连接

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

(6)创建用户 squid,配置权限

useradd -M -s /sbin/nologin squid

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

(7)修改配置文件

vim /etc/squid.conf 添加以下代码: http_access allow all cache_effective_user squid       //添加 指定程序用户 cache_effective_group squid      //添加 指定账户基本组

Squid缓存代理部署——传统+透明(超详细)

(8)检查

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

检查端口查看服务是否正常开启:

Squid缓存代理部署——传统+透明(超详细)

(9)编写启动脚本:

1、编写脚本 目录:/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

2、添加执行权限

chmod +x squid    //添加执行权限 chkconfig --add squid     //便于service识别 chkconfig --level 35 squid on   //设置开机自启动

3、关闭、开启服务

service squid stop  service squid start

四、搭建传统代理

角色IP地址
Web服务器192.168.220.136
代理服务器192.168.220.131
客户机192.168.220.129

第一步:编辑配置文件 /etc/squid.conf

cache_mem 64 MB       //指定缓存功能所使用的内存空间大小 reply_body_max_size 10 MB    //允许用户下载的大文件大小 maximum_object_size 4096 KB    //允许保存到缓存空间的大对象大小

第二步:制定防火墙规则

iptables -F    //清除所有规则来暂时停止防火墙 setenforce 0 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    //允许目标端口3128做转发

第三步:客户机浏览器设置代理服务

(1)打开浏览器 → 工具 → Internet 选项 → 连接 → 局域网设置

Squid缓存代理部署——传统+透明(超详细)

(2)浏览器访问 web服务器的IP地址,多刷新几次,由于我们设置了代理服务,其实访问网站这个请求,是代理服务器帮我们完成的,为了验证,可以查看 web服务器的日志文件,就能知道访问的 ip地址是客户机还是代理服务器的。

查看 /etc/httpd/logs 中的日志文件,access_log ,以下是部分截图:

Squid缓存代理部署——传统+透明(超详细)

可以看出都是由 代理服务器过来访问网页的,而非客户机,这也起到了隐藏客户机真实 IP地址的目的。

五、设置透明代理

角色 IP地址
squid 代理服务器内网:192.168.100.1;外网:12.0.0.1
web服务器12.0.0.12
客户机192.168.100.50

第一步:用户机浏览器取消局域网设置

第二步:配置代理服务器 squid

(1)开启路由转发功能:

 echo "1" > /proc/sys/net/ipv4/ip_forward

(2)编辑配置文件 /etc/squid.conf

修改监听地址:

http_port 192.168.100.1:3128 transparent

(3)添加防火墙策略:

iptables -F iptables -t nat -F    //重新设置防火墙 iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 //端口重定向到3128 iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT   //开发3128端口

(4)重启服务:

service squid restart

第三步:验证

1、在客户机浏览器上访问 web 服务器网站

Squid缓存代理部署——传统+透明(超详细)

2、在 web 服务器的日志文件,查看是哪个IP地址来访的:

vim /etc/httpd/logs/access_log

Squid缓存代理部署——传统+透明(超详细)

可以看出是 squid代理服务器的外网卡的ip地址。

透明代理设置成功。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:Squid缓存代理部署——传统+透明(超详细)-创新互联
网站网址:http://jkwzsj.com/article/ddhcej.html

其他资讯