利用Squid构建传统代理及透明代理

关于Squid的简介及安装部署过程可以参考博文:Squid代理服务器安装及部署

传统代理的实现最为简单,透明代理还需要结合默认默认路由、防火墙策略等一起来完成。

构建传统代理

使用传统代理的特点在于:客户机的相关程序(如IE浏览器、QQ聊天软件)必须指定代理服务器的地址、端口等基本信息。

案例环境

案例实施步骤大致分为:
1.Squid服务器的配置;
2.客户机的代理设置;
3.验证代理服务器。

案例实施

关于搭建Web服务器可以参考博文:CentOS 7 利用Apache搭建Web网站服务
如果需要使用域名访问网站,可以参考博文:CentOS 7搭建DNS服务
这里主要介绍Squid服务。

1.Squid服务器的配置

配置Squid实现传统代理服务时,需要注意添加http_access allow all访问策略,以便允许任意客户机使用代理服务。

(1)修改Squid服务的配置文件

[[email protected] ~]# vim /etc/squid.conf
                …………                          //省略部分内容
http_access allow all                        //必须放在http_access deny all之前

(2)重载squid服务

[[email protected] ~]# squid -k reconfigure
//如果没有添加为系统服务,使用这种方式重启Squid服务

2.客户机的代理配置

(实验环境,客户机不需要填写网关、dns服务器地址)
客户机如果是Windows系统(针对IE浏览器),需要:



客户机(192.168.1.10)测试访问(为了简单起见,所以就先关闭防火墙)!


测试访问成功!

如果是Linux客户端,则需要:

[[email protected] ~]# vim /etc/profile
                      ……………………                                //省略部分内容
HTTP_PROXY=http://192.168.1.1:3128                    //为使用HTTP协议指定代理
HTTPS_PROXY=http://192.168.1.1:3128                  //为使用HTTPS协议指定代理
FTP_PROXY=http://192.168.1.1:3128                       //为使用FTP协议指定代理
NO_PROXY=192.168.2.,192.168.3.                          //对于两个局域网网段不使用代理
export HTTP_PORXY HTTPS_PORXY FTP_PROXY NO_PROXY
[[email protected] ~]# source /etc/profile

客户机(192.168.1.20)测试访问:

测试访问成功!

3.代理服务的验证

(1)查看Squid访问日志

[[email protected] ~]# tail -f /usr/local/squid/var/logs/access.log 


(2)查看Web访问日志的新增记录

[[email protected] ~]# tail -f /var/log/httpd/access_log 

传统代理测试完成!

构建透明代理

透明代理提供的服务功能与传统代理是一致的,但是其“透明”的实现依懒于默认路由和防火墙的重定向策略,因此更实用于局域网主机服务,而不适合为Internet中的客户机提供服务。

案例环境

案例实施步骤大致分为:
1.配置Squid支持透明代理及开启路由转发功能;
2.设置firewalld的重定向策略;
3.验证透明代理使用。

案例实施

1.配置Squid支持透明代理
[[email protected] ~]#  vim /etc/squid.conf
                   ………………                               //省略部分内容
http_port 192.168.1.1:3128 transparent        //只在服务器其中一个IP地址上提供服务
[[email protected] ~]# squid -k reconfigure
//重启Squid服务
[[email protected] ~]# vim /etc/sysctl.conf
                ………………              //省略部分内容填写以下内容
net.ipv4.ip_forward = 1               //开启路由转发
[[email protected] ~]# sysctl -p            //立即生效
net.ipv4.ip_forward = 1
2.设置firewalld的重定向策略

由于firewalld的external区域的特性,所以本次实验把局域网内部作为external(外部区域)。
防火墙做端口转发操作,将访问本机80、443端口的请求转发到3128端口。

[[email protected] ~]# systemctl start firewalld
[[email protected] ~]# firewall-cmd --zone=external --add-interface=ens33
//定义ens33网卡所在区域
[[email protected] ~]# firewall-cmd --zone=internal --add-interface=ens37
//定义ens37网卡所在区域
[[email protected] ~]# firewall-cmd --zone=external --add-service=http
[[email protected] ~]# firewall-cmd --zone=external --add-service=https
[[email protected] ~]# firewall-cmd --zone=external --add-service=dns
[[email protected] ~]# firewall-cmd --zone=external --add-port=3128/tcp
//添加服务及端口
[[email protected] ~]# firewall-cmd  --direct  --add-rule   ipv4  nat  PREROUTING  0  -i ens33  -p  tcp  --dport  80  -j  REDIRECT  --to-ports  3128
//将80端口的请求转发到3128端口
[[email protected] ~]# firewall-cmd  --direct  --add-rule   ipv4  nat  PREROUTING  0  -i ens33  -p  tcp  --dport  443  -j  REDIRECT  --to-ports  3128
//将443端口的请求转发到3128端口
[[email protected] ~]# firewall-cmd --runtime-to-permanent
//防火墙配置永久生效

客户机访问测试(客户机需要填写网关、dns服务器地址,浏览器默认设置)
需要域名访问,则需修改DNS区域配置对应的IP地址


Linux客户端应使用命令清除变量信息。

[[email protected] ~]# unset HTTP_PROXY HTTPS_PROXY
3.验证透明代理使用

透明代理跟传统代理验证方法一样。

[[email protected] ~]# tail -f /var/log/httpd/access_log 

[[email protected] ~]# tail -f /usr/local/squid/var/logs/access.log 

透明代理测试完成!

原文地址:https://blog.51cto.com/14157628/2430325

时间: 2024-10-07 16:13:51

利用Squid构建传统代理及透明代理的相关文章

构建Squid代理服务器-传统代理、透明代理、反向代理

Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理. 正向代理:根据实现的方式不同,代理服务可分为传统代理和透明代理. 传统代理:普通的代理服务,多见于Internet环境,必须在客户机的浏览器.QQ聊天工具.下载软件等程序中手动设置代理服务器对的地址和端口,才能使用代理服务器来访问网络.对于网页浏览器,访问网站时的域名解析请求会发送给指定的代理服务器. 透明代理:提供与传统代理相

Squid学习之旅之透明代理回顾

系统环境:CentOS 6.5 Squid 3.0 内网网段:10.211.55.0/24 Squid服务器地址:10.211.55.4 (端口是3128) 客户端地址: 10.211.55.9 网 关:10.211.55.1 使用源码包编译安装 安装源码包必备参数集 ./configure --prefix=/usr/local/squid --sysconfdir=/usr/local/squid/etc --bindir=/usr/local/squid/bin --sbindir=/us

图解正向代理、反向代理、透明代理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理

图解正向代理、反向代理、透明代理(转)

转自:http://www.cnblogs.com/Anker/p/6056540.html 正向代理:代理服务器代替客户端想服务器发送请求 反向代理:客户直接访问反向代理服务器,反向代理服务器通过反向代理获取服务器内容,然后返回给客户端 透明代理:修改包,中转,透明 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代

正向代理,反向代理和透明代理的区别

一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(origin server)[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理.如下图1.1 (图1.1) 从上面的概念

图解正向代理、反向代理、透明代理(反向代理可以实现负载均衡)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理

分解正向代理、反向代理、透明代理

套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术. 一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端

[转]图解正向代理、反向代理、透明代理

上面的答案都说的很好,我画了张图能更直观地解释为何反向代理叫“反向“代理<img src="https://pic1.zhimg.com/480c1c45d2565e2f92fd930d25b73a18_b.jpg" data-rawwidth="522" data-rawheight="660" class="origin_image zh-lightbox-thu

nginx正向代理,反向代理,透明代理(总结)

1正向代理 正向代理,也就是传说中的代理,他的工作原理就像一个跳板, 简单的说, 我是一个用户,我访问不了某网站,但是我能访问一个代理服务器 这个代理服务器呢,他能访问那个我不能访问的网站 于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容 代理服务器去取回来,然后返回给我 从网站的角度,只在代理服务器来取内容的时候有一次记录 有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站 结论就是 正向代理 是一个位于客户端和原始服务器(origin server)之间的服务