正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用正向代理。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。和反向代理不同之处在于,典型的正向代理是一种最终用户知道并主动使用的代理方式。

借用知乎两张图来解释正向代理:反向代理为何叫反向代理?

作用

访问原来无法访问的资源,如google

做缓存,加速访问资源

对客户端访问授权,上网进行认证

代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

普通代理

普通代理:代替局域网内的所有主机访问公网的网站服务,局域网内的主机需要在自己的浏览器中指定代理服务器的ip地址和监听的端口号
安装软件包squid

[root@ECS58979490c134 ~]# yum -y install squid

编辑主配置文件/etc/squid/squid.conf

[root@ECS58979490c134 ~]# vim  /etc/squid/squid.conf
http_port //squid默认监听的端口号
cache_mem 8MB //默认缓存容量8MB
cache_dir ufs /var/spool/squid //设置缓存目录的大小,缓存文件的格式,大小100M,一级子目录16个,每个一级子目录下有256个二级子目录
access_log /var/log/squid/access.log squid //访问日志文件,默认开启
visible_hostname proxy.eflycloud.com //默认用环回口的主机名作为代理服务器的主机名。手动指定主机名时必须与物理接口绑定
maximum_object_size //允许缓存数据的最大值。不设置时,不限制
reply_body_max_size //允许通过代理服务器访问的最大目标对象
http_access allow all //默认拒绝所有主机
[root@ECS58979490c134 ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
:: localhost6.localdomain6 localhost6
192.168.1.254 proxy.eflycloud.com proxy //物理接口绑定主机名

启动服务

[root@ECS58979490c134 ~]# service squid start
init_cache_dir /var/spool/squid... Starting squid: .[ OK ]
[root@ECS58979490c134 ~]# netstat -anptu | grep :
Tcp 0.0.0.0: 0.0.0.0:* LISTEN /(squid)

客户端浏览器中设置代理服务器

透明代理

透明代理:客户端不需要在本机的浏览器里指定代理服务器的IP地址和监听的端口号,给客户端的感觉是直接与公网通讯的。不过客户端需要指定或者添加透明代理服务器为网关。

配置透明代理服务器

[root@ECS58979490c134 ~]# vim /etc/squid/squid.conf
http_port transparent //透明传输
[root@ECS58979490c134 ~]#service squid restart

写防火墙规则,把访问目标端口是80的请求转到3128端口。如果不指定端口则是全部请求都会转到3128端口

[root@ECS58979490c134 ~]# service iptables start     //开启防火墙服务
[root@ECS58979490c134 ~]#setup
[root@ECS58979490c134 ~]# iptables -t filter -F //清空表filter防火墙规则
[root@ECS58979490c134 ~]# iptables -t nat -F //清空表nat防火墙规则
[root@ECS58979490c134 ~]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/ -p tcp --dport -j REDIRECT --to-ports //PREROUTING 在路由之前,-i 数据包从哪个口进来,-s 源IP地址, –p 协议, –dport 目标端口, --to-ports 转到哪个端口
[root@ECS58979490c134 ~]# service iptables save //永久生效

客户端将网关指向代理服务器的内网接口的ip地址

[root@ECS58979490c164 ~]# route add default gw 192.168.1.254

教你如何在5分钟轻松部署squid正向代理的更多相关文章

  1. 零元学Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果

    原文:零元学Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果 又来一篇五分钟做设计啦~ 本篇将教大家如何运用Design内建工具Blend Path ...

  2. 部署和调优 2.1 squid正向代理

    安装squid yum install -y squid Squid 官方网站为 http://www.squid-cache.org 打开注释掉的 cache_dir ufs / 缓存目录的位置,大 ...

  3. 如何在CentOS 7上部署Google BBR【搬运、机翻】

    如何在CentOS 7上部署Google BBR 本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 [注:文 ...

  4. 教你如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)

    免责声明: 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖.故障.数据丢失等情况,概不负责: 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任 ...

  5. 10分钟轻松设置出 A+ 评分的 HTTP/2 网站

    前言 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP ...

  6. 十分钟轻松让你认识ASP.NET MVC6

    这篇文章说明下如何在普通编辑器下面开发mvc6应用程序. 上篇文章: 十分钟轻松让你认识ASP.NET 5(MVC6) 首先安装mvc6的nuget包: 可以看到在project.json文件中添加了 ...

  7. 如何在tomcat中如何部署java EE项目

    如何在tomcat中如何部署java EE项目 1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法.2.在tomcat安 ...

  8. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  9. PHP字符串中的变量解析(+教你如何在PHP字符串中加入变量)

    定义字符串的时候,用单引号或者双引号都是可以的.我个人习惯是用双引号.在输出字符串的时候,若字符串中含有字符串变量,使用单引号和双引号则是有区别的.如下面程序: 1 2 3 4 5 6 7 8 < ...

随机推荐

  1. [TimLinux] Python 模块

    1. 概念 模块是最高级别的程序组织单元,它将程序文件和数据封装起来以便重用.实际上,模块往往对应Python文件,每一个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量,模块和 ...

  2. zabbix监控系统系列

    来自网站:http://www.361way.com/zabbix-summarize/3335.html 一.zabbix的特点 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能 ...

  3. 【Web技术】400- 浅谈Shadow DOM

    编者按:本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS 工作组成员. 为什么会有Shadow DOM 你在实际的开发中很可能遇到过这样的需求:实现一个可以拖拽的滑块,以实现范 ...

  4. dockerfile-格式和使用

    一.dockerfile格式 Dockerfile是一个包含用于组合映像的命令文本文档,可以使用在命令行中调用任何命令,Docker通过读取dockerfile中的指令自动生成映像.docker bu ...

  5. dev gridcontrol设置过滤器下拉列表

    调用: //为类别名称列启用选中的过滤器下拉式样式. ].OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; //订阅ShowFi ...

  6. 清晰明了的javascript版动态规划

    算法是一种艺术,给人感觉很不好接近,但是一旦你和ta熟络了,你就能发现这门艺术的内在是多么美妙且多变. 对于前端来说,算法也许不是最重要的,在日常工作中,几乎很少用到.所以很多人也不是很感冒. 不过呢 ...

  7. C++ 构造函数【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:可乐司机构造函数是C++里面的基础内容,特别重要,如果你刚学C++不久, ...

  8. SpringCloud基础组件总结,与Dubbo框架、SpringBoot框架对比分析

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础组件总结 1.文章阅读目录 1).基础组件 Eureka组件,服务注册与发现 Ribbon和Feign组件,实现负载均衡 Hystri ...

  9. C# 中的栈和堆

    程序运行时,它的数据必须存储在内存中.一个数据项需要多大的内存.存储在内存中的什么位置.以及如何存储都依赖于该数据项的类型. 运行中的程序使用两个内存区域来存储数据:栈和堆. 栈 栈是一个内存数组,是 ...

  10. 动态代理模式_应用(Redis工具类)

    本次使用动态代理的初衷是学习Redis,使用Java操作Redis时用到Jedis的JedisPool,而后对Jedis的方法进一步封装完善成为一个工具类.因为直接使用Jedis对象时,为了保证性能, ...