当前位置:首页 > CN2资讯 > 正文内容

Squid传统代理与透明代理——实操

2天前CN2资讯

目录

一、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 代理的工作机制:缓存网页对象,减少重复请求。 缓存工作流程: 1、当我们客户机通过squid代理去访问web页面时,指定的代理服务器会先检查自己的缓存,若是缓存中有我们客户机需要的页面,那么squid服务器将直接把缓存中的页面内容返回给客户机, 2、如果缓存中没有客户端请求的页面,那么squid代理服务器就会向internet发送访问请求,获得返回的web页面后,将网页的数据保存到缓存中并发送给客户机。 3、由于客户机的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 1 (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 //添加 指定账户基本组

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

检查端口查看服务是否正常开启: squid netstat -ntap | grep 3128 (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

四、搭建传统代理

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

查看 /etc/httpd/logs 中的日志文件,access_log ,以下是部分截图: 可以看出都是由 代理服务器过来访问网页的,而非客户机,这也起到了隐藏客户机真实 IP地址的目的。

五、设置透明代理

代理服务器(虚拟机)配置双网卡:ens33(内网卡);ens36(外网卡)

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 服务器网站 2、在 web 服务器的日志文件,查看是哪个IP地址来访的: /etc/httpd/logs/access_log , 下面是部分截图: 可以看出是 squid代理服务器的外网卡的ip地址。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24679.html

    分享给朋友:

    “Squid传统代理与透明代理——实操” 的相关文章

    SSH Key Dmit 教程:轻松配置与使用GitHub的安全密钥

    SSH密钥是一种用于远程安全访问服务器的强大工具。创建和配置SSH密钥的过程并不复杂。阅读这篇教程后,相信你会觉得非常容易。 制作密钥对 首先,登录到需要通过SSH密钥进行远程登录的服务器。我们可能会使用的命令是 ssh-keygen,它能帮助我们生成密钥对。执行命令后,系统会提示你输入密钥保存的文...

    国外离线下载服务比较:如何选择最适合你的工具

    在信息时代,国外离线下载服务成为了许多用户的得力助手。这种服务的主要功能,是让用户在没有网络连接的情况下,也能提前将所需的数据或文件下载到本地或云端存储中。这种方法特别适合那些经常出行或在网络不佳的环境中工作的用户。通过离线下载,用户可以在网络恢复后更快、更方便地访问所需内容。 离线下载的应用非常广...

    搬瓦工the plan限量版套餐详解:高性能与性价比的完美结合

    搬瓦工the plan限量版套餐概述 当我第一次听说搬瓦工的“the plan”限量版套餐时,心里忍不住很好奇。这种套餐究竟有什么特别之处?在我深入了解后,发现它不仅仅是一个普通的套餐,而是经过精心设计,专为追求高性能和稳定性的用户打造的。它的背景源于搬瓦工希望为用户提供更优质的服务,满足日益增长的...

    CTM VPS:灵活部署与高效管理的理想选择

    1.1 定义与特点 说到CTM VPS,首先要了解这个名词的含义。CTM代表的是“Cloud Terminal Management”,这种虚拟私有服务器为用户提供了一个灵活、可扩展的环境,让他们能够根据需要快速部署和管理应用程序。CTM VPS的一个明显特点就是高效性。它能够在一个物理服务器上虚拟...

    低价VPS:选择适合你的经济实惠虚拟专用服务器

    在开始聊低价VPS之前,让我们先了解一下什么是VPS。VPS,全名为虚拟专用服务器,是一种将物理服务器分割为多个虚拟服务器的技术。每个虚拟服务器都拥有独立的操作系统、资源和配置。这种技术为用户提供了一个相对便宜但又灵活的服务器环境,方便用户进行各种操作,比如搭建网站、应用程序和数据库等。 说到低价V...

    哪个模拟器可以在VPS上运行?探索最佳选择与配置指南

    当我们提到VPS(虚拟专用服务器)时,很多人可能并不熟悉这个术语。简单来说,VPS旨在为用户提供一台虚拟的独立服务器,让他们能够在其中运行各种应用程序和服务。通过这种方式,你可以远程使用服务器的资源,而无需为实体硬件的维护和管理而烦恼。VPS的灵活性和成本效益使其成为在线业务和开发环境的热门选择。...