教你如何在5分钟轻松部署squid正向代理

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

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

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

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

作用

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

做缓存,加速访问资源

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

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

普通代理

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

[[email protected] ~]# yum -y install squid

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

[[email protected] ~]# vim  /etc/squid/squid.conf
http_port 3128       //squid默认监听的端口号
cache_mem  8MB      //默认缓存容量8MB
cache_dir  ufs  /var/spool/squid  100  16  256   //设置缓存目录的大小,缓存文件的格式,大小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    //默认拒绝所有主机
[[email protected] ~]# cat /etc/hosts
127.0.0.1        localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.1.254   proxy.eflycloud.com proxy  //物理接口绑定主机名

启动服务

[[email protected] ~]# service squid start
init_cache_dir /var/spool/squid... Starting squid: .[  OK  ]
[[email protected] ~]# netstat -anptu | grep :3128
Tcp  0  0 0.0.0.0:3128        0.0.0.0:*        LISTEN      10439/(squid)

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

透明代理

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

配置透明代理服务器

[[email protected] ~]# vim /etc/squid/squid.conf
http_port  3128  transparent   //透明传输
[[email protected] ~]#service squid restart

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

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

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

[[email protected] ~]# route add default gw 192.168.1.254

原文地址:https://www.cnblogs.com/eflypro/p/12030658.html

时间: 2024-09-29 22:25:55

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

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

原文:零元学Expression Design 4 - Chapter 6 教你如何在5分钟内做出文字立体感效果 又来一篇五分钟做设计啦~ 本篇将教大家如何运用Design内建工具Blend Paths在五分钟内作出超炫效果 ? 又来一篇五分钟做设计啦~ 本篇将教大家如何运用Design内建工具Blend Paths在五分钟内作出超炫效果 ? 范例最後成品 ? ? 01 开启一个新专案後,使用Paintbrush(快捷键B)在画面上拉出你想要的线段或是文字 我以点部落的英文DotBlogs为例,

教你如何在WINDOWS Server2003上部署一个Asp.Net的网站

对于许多新手来说,如何在服务器上部署网站并不了解,这个教程希望对新手有帮助. 1.IIS服务器 2..Net Framework3.5 (方便起见,我们这里Framework说的都是指的这个版本) 这两个软件都需要我们自己手动操作安装到服务器里面.那到底是先装哪一个呢,为了方便起见,一般我们都先安装IIS服务器,然后再安装Framework. 当然偶也遇到过几次部署人员先安装了Framework再安装IIS服务器的,这样的操作步骤就会导致Framework不会被注册进IIS服务器里面.就是说在网

部署和调优 2.1 squid正向代理

安装squid yum install -y squid Squid 官方网站为 http://www.squid-cache.org 打开注释掉的 cache_dir ufs /var/spool/squid 100 16 256 缓存目录的位置,大小100M 一级子目录16个 二级子目录256个. 在下面添加一行 cache_mem 128 MB 为了加快速度,把缓存的东西放内存里,128M 在最后添加一行 refresh_pattern \.(jpg|png|gif|js|css|mp3|

轻松理解:正向代理、反向代理、负载均衡

1. 什么是正向代理? 正向代理发生在 client 端,用户能感知到的,并且是用户主动发起的代理. 比如:×××. 我们不能访问外网,但是可以访问代理服务器,然后代理服务器帮我们从外网中获取数据.但是在使用之前,用户往往需要主动在client端配置代理. 黑客为了隐藏身份,用的就是正向代理. |客户端+代理服务器|-->|目标服务器| 2. 什么是反向代理? 反向代理发生在 server端,从用户角度看是不知道发生了代理的(这个只有服务器工程师才知道). 比如: 用户访问 服务器A,服务器A就

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

教你如何在let's encrypt申请免费证书---开启网站的https之路

最近谷歌和火狐封杀了国内大部分的CA机构,导致使用国内CA办法的证书在chrome浏览器显示为不安全的网站,国外的证书又比较贵,发现了一款开源免费的证书机构let's encrypt, 是由Mozilla.Cisco.Akamai.IdenTrust.EFF等组织人员发起,比较有权威性,下面的例子是nginx 实例上的部署安装过程. 1. 安装客户端脚本 curl https://get.acme.sh | sh 安装完成后会自动在计划任务中增加一条任务自动更新证书,自动申请 因为证书有效期应该

Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指EF中是不能调用sqlserver里的方法的. 因为之前搞过linq to sql 里面的SqlMethod ,所以觉得EF里面必须是可以的. 首先需要简短介绍一下EF6和EF5,当你NuGet一个EF5的包的时候,只有EntityFramework,而EF6确有EntityFramework和EntityFramework.SqlServer, 这2者是有很大区别的. 在EF5环境下,

十分钟轻松让你认识Entity Framework 7

十分钟轻松让你认识Entity Framework 7 EF7不是在EF6上更新,而是完全重写了.它完全支持.NET Core runtime,也就是说以后你可以在Mac或者是Linux机器上使用EF了. https://github.com/nicholaspei/OrchardNoCMS  我还在调研使用哪个ORM或者Micro ORM.Massive或者Dapper都不太适合,因为他们都依赖于System.Data,所以跨平台是个问题. 目前准备先使用EF作为一个实现,底层是一个很高的抽象

Gitolite轻松部署/管理git server

对于今天越来越受欢迎的Git,相信做开发的朋友都基本有所耳闻.它最大的便利就是分布式的开发库,让使用git作为源码管理库的开发者可以在本地提交代码的修改而不用提交到远程的库,同时需要和团队协作.同步代码时,也仅仅是多一条指令而已.如果你想了解git的全貌,可以看<Pro git>,他有中文版,貌似没有维护到最近的,需要的可以google it. Git 使用者的日常流程: 1.从git server远程库上clone一个副本到本地库(git clone), 2.本地开发,然后本地提交修改(gi