北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>

                鸟哥的 Linux 私房菜
                目次 | Linux 根底篇 | Linux 效劳器篇 | Linux 企业使用篇 | 平安办理
                     
                 
                浅易 Proxy Server 搭建
                近来更新日期:2004/11/12
                 
                署理效劳器的功用可多的呢!在中大型的企业当中,可以藉由单点对外的 Proxy 主机来到达‘节流频宽’的目标,同时,也可以透过如许的 Proxy 架构来告竣‘高阶防火墙’的设定,这里的‘高阶’指的是 OSI 七层协议外面比拟高阶段的层级,那便是使用与体现层方面的防火墙啦!那假如关于小型的企业呢?这个 Proxy 也可以到达分流的作用,让差别的目的网站可以透过差别的下层 Proxy 来获得材料!啊!真是很不错的一个效劳器啊!不外,这个 Proxy 效劳器也是几个罕见的效劳器外面,硬体要求绝对比拟高的一个咚咚!由于 Proxy 要求的是‘疾速’,以是呢,呵呵!固然硬体品级的要求是相称的‘蛮像一回事’的!^_^
                 
                原理
                  :什么是署理效劳器
                  :署理效劳器的运作方法
                  :署理效劳器的用处与优缺陷
                  :什么是下层署理效劳器?那边有下层署理效劳器
                  :我能否肯定要设定 Proxy
                  :所需求的硬体要求与最佳硬体设置装备摆设方法
                  :署理效劳器与 NAT 主机的差别
                套件装置
                  :运用 RPM 方法装置 squid
                  :运用 Tarball 方法装置 squid
                Server 端设定
                  :squid 的构造
                  :squid 的 process owner 与 cache directory owner
                  :最浅易的 squid 设定办法
                  :影象体与磁碟快取保存百分比设定
                  :acl 的用法与用处
                  :下层 Proxy 的选择与负载分流的设定办法
                  :与工夫相干的设定值 ( connect_timeout, request_timeout )
                  :总是零碎本人来捉材料(always_direct)
                  :限定运用 proxy 运用者与 proxy 目的的方法 (acl and http_access )
                  :额定的功用参数
                Client 端设定
                  :Netscape
                  :Internet Explorer
                Server 端进阶设定
                  :末了材料剖析 pwebstat
                  :末了材料剖析 sarg
                  :防火墙的计划
                  :NAT 与 Proxy 透过 transparent proxy 设定放慢网络传输
                  :squid 的留意事变
                重点回忆
                参考资源
                本章习题训练

                原理:
                  署理效劳器的原理实在很复杂啦!便是以相似署理人的角度去获得运用者所需求的材料便是了!但是由于他的服从,使得我们可以透过署理效劳器来额定的告竣防火墙的功用!别的,也可以藉由署理效劳器 ( Proxy ) 来告竣节流频宽的目标,以及放慢外部网络的 WWW 存取速率!总之, Proxy 关于大型的企业来说,真实是一个很不错的工具啊!
                   

                  什么是署理效劳器
                   
                  在真实天下中,我们大概会帮助家人去操持一些杂务吧!举个例子来说,比方缴费或许是申办提款卡等等的,那么由于你并不是‘请求者自己’而是‘署理人’的脚色,因而偶然候会需求秀出一些证件便是了。那么在网络下面的署理效劳器是怎样回事呢?他便是 Proxy Server 啰!他最次要的功用就好像我们下面提的真实天下一样, Proxy 会帮 Client 真个用户去处目标地获得用户端所需求的材料。以是,当 Client 端指定署理效劳器之后,您的一切相干要求( 比方 WWW 的要求 )就会经过署理效劳器去捉取啰!整个署理效劳器与用户真个相干性可以由下图大抵看出一个眉目:
                   

                  图一、署理效劳器的表示图
                   
                  在外部的电脑都是透过 Proxy 来向 Internet 求取材料的,这便是所谓的‘署理效劳器’啦!固然,下面的架构仅只是一个案例,另有相称多的非 Intranet 的 Proxy 架构,亦便是你的 PC 与 Proxy 均在 Internet 下面,但是您一样可以透过这个 Proxy 来帮您到达署理人身份的目标呢!
                   
                  在 Proxy 与 Client 的相干性当中,您必须要理解的是:您向内部要求的材料现实上都是 Proxy 帮你获得的!怎样说呢?举个例子来说,假设我在我的阅读器 ( 假定是 Netscape 好了 )设定了我们学校的署理效劳器主机 proxy.ncku.edu.tw 做为我的 Proxy 好了,再假定我的 IP 是 140.116.44.125 ,那么当我想要获得奇摩网站的旧事资讯时,现实上,都是 proxy.ncku.edu.tw 帮我去获得的,以是在奇摩的网站下面看到向他要求材料的人是谁呢?呵呵!固然便是 proxy.ncku.edu.tw 而不是我 140.116.44.125 啰!如许可以理解 Proxy 的功用了吗?
                   
                  除了这点功用之外, Proxy 另有一个很棒的额定功用喔,那便是防火墙的功用!怎样说呢?看一下下面的图示,您可以发明一件事变,那便是 Client 真个团体电脑要连上 Internet 肯定要颠末 Proxy 效劳器,而且,假如有人想要入侵你的零碎时,由于你的 proxy 在最内部啊,以是打击者就会打击错偏向,云云一来,不就比拟平安!别的,由于整个 Intranet 对外都是颠末 proxy ,也便是‘单点对外’的状况,这种形态底下要来办理防火墙也是比拟复杂的喔!^_^
                   

                  署理效劳器的运作方法
                   
                  理解的 Proxy 的功用之后,我们来谈一谈那么 Proxy 究竟是怎样运作的呢?为何他会有‘放慢网络存取服从’的状况?这就必须要以底下的图示来阐明了!
                   

                  图二、署理效劳器的运作方法流程图
                   
                  当 Client 端设定了署理效劳器之后,在 Client 端想要获得 Internet 下面的资讯时,他是如许获得材料的 (注:谁人 Cache 表现为 Proxy 主机的硬碟的意思 ):
                   
                  一、Proxy 有运用者估计要求的材料时( Step 1, 2, 3,4 ):
                  1. Client 端向 Server 端发送一个材料需求封包;
                  2. Server 端接纳之后,先比对这个封包的‘泉源’与估计要前去的‘目的’网站能否为可承受?假如泉源与目的都是正当的,或许说,泉源与目的网站我们的 Proxy 都能帮助获得材料时,那么 Server 端会估计开端替 Client 获得材料。这个步调中比拟紧张的便是‘比对政策’啦,有点像是认证的觉得啦;
                  3. Server 起首会到本人的硬碟外面,也便是所谓的 cache (快取) 检查一下有没有 Client 端所需求的材料,假如有的话,那就将材料间接送到 Client 端 (步调4) 而不颠末向 Internet 要求材料的顺序;
                   
                  二、Proxy 没有运用者估计要求的材料时 ( Step 1, 2, 3, 5, 6, 2, 3, 7 ):
                  1. 在颠末 1, 2, 3 查寻晓得 cache 没有材料,或许材料过时之后, Proxy 会向 Internet 下面的目的网站要求材料;
                  2. 在将材料取回之后, proxy 会先将获得的材料‘贮存一份到 cache 当中’;
                  3. 最初才将材料传回给 Client 端运用。
                   
                  整个 Proxy 的任务流程便是这个样子,以是,我们就可以晓得的是, Proxy 关于 cache 的速率是很要求的,而这个 cache 便是硬碟啦!固然,硬碟容量必须要充足大,并且还要‘充足快’才行!由于由下面的流程当中,我们不难发明, Cache 是不断被反复存取的一个中央喔!以是硬碟的优劣就差异很大啦!可以说他是影响一个 Proxy 效能优劣的要害点呢!
                   

                  署理效劳器的用处与优缺陷
                   
                  普通来说,署理效劳器的用处次要有两个:
                   
                  • WWW 网页署理人:最次要的用处固然便是做为网页材料获得署理人啰,也便是说, Proxy 可以帮我们获得 Internet 下面的 WWW 材料便是了!那么能不克不及获得其他非 WWW 的材料呢?那就纷歧定了,要看 Proxy 主机能否有设定该效劳。普通来说, Proxy 次要照旧针对 WWW 网页的署理获得;
                   
                  • 做为 Intranet 的单点对外防火墙零碎:就好像后面的图示, Proxy 假如搭建在 Intranet 对外的衔接点下面,那么他就可以被用来做为‘使用层’阶段的防火墙了!并且,这个时分不需求设定 NAT 就可以让 Intranet 外部的公有 IP 的电脑衔接上 Internet 了!这是由于您想要的材料是向 proxy 要求,以是真正去获得材料的人是‘Proxy’而不是你的电脑啊!以是,只需 Proxy 可以承受公有 IP 的电脑要求,那这些公有 IP 的电脑就可以连上 WWW 啦!不外,也由于 Proxy 为一个 使用层 阶段的防火墙零碎,以是,他并无法停止较低阶的封包过滤!因而,在外部电脑想要透过 Proxy 来获得邮件、或许是其他的效劳,呵呵!那就比拟费事,几乎便是费事的多啦!
                   
                  由于 Proxy 的这种特性,让他很常被运用于大型的企业外部,由于可以到达根绝外部职员下班时运用非 WWW 以外的网络效劳,并且还可以监测运用者的材料要求流向与流量呢!很不错吧! ^_^好了,接上去我们来谈一谈 Proxy 次要的优缺陷吧:
                   
                  • 疾速的存取举措:普通来说, Proxy 主机的频宽以及硬体装备会比拟高等!以是 Proxy 最大的长处便是可以提供用户端较为疾速的阅读!咦!但是我们向 Proxy 要求材料的时分, Proxy 不是会自行再贮存一份吗?如许不是会多花许多工夫?是如许没有错,但是,换一个角度来想,假如在第一位运用者要求过 A 材料后,由于 Proxy 就会主动放一放 A 材料在 Cache 当中,之后的一切运用者只需是反复要求这个 A 材料, Proxy 可以立即将材料传给运用者,您瞧!如许这个 Client 即是是间接向 Proxy 获得这份 A 材料了!能否愈加的疾速!这是由于 Proxy 就在您的 Intranet 之内,传输速率但是相称快的!这也便是说:假如您要设定署理效劳器的时分,肯定要找间隔我们的呆板近来的那一台,不然就没有到达署理效劳器的服从了!通常疾速的存取举措最分明的大约是连去外洋的网站了!这里要激烈的发起,假如你需求连上外洋的网页,请肯定运用署理效劳器,由于不光可以节流频宽,而且速率上会快上许多许多 ( 比方美国环保署, EPA 网站! )
                   
                  • 低落网络的负荷:由于我们是向署理效劳器要求材料,假如署理效劳器内恰好有你要的材料,将会间接传给你,则你的要求将不会到真实的那一个网页去 ( 除非你在 IE 内按下‘重新整理’这个按钮 ) ,而假如没有你要求的材料,那他也会去捉一份你要的材料给你,并存上去,当前假如有与你相反需求的用户,那他就可以间接传送给用户,云云当可低落网络的负荷!(也便是下面图二的 step 1, 2, 3, 4 )
                   
                  • 材料分流:由于各家 ISP 关于差别国度的频宽是有差别的,因而,假定假如您要去美国时运用 Proxy1 速率较快,而 Proxy2 则是去日本比拟快,至于台湾当地则 Proxy3 较快,云云一来,我们可以透过设定将差别目的的署理效劳器离开来,以到达分流的目标!则你的网络中将可以到达很好的分流结果,网络‘觉得上’会比拟疾速喔!
                   
                  • 提供防火墙外部的电脑连上 Internet:这个是普通企业比拟常用的状况!由于企业外部惧怕被骇客侵入,通常会设立一些比拟紧密的防火墙,但是云云一来公司外部的电脑能够面对无法连上 Internet 的困境,那运用 proxy 让你的外部电脑可以透过这一架主机的署理效劳而获得 Internet 上的资讯,便是一个很好的办法啦!
                   
                  • 多条理的管道 ( 下层署理效劳器 ):署理效劳器可以提供多重的管道设定,比方,当你需求国际的材料时,署理效劳器将间接去捉取,而需求外洋的材料时,才连到上一层的署理效劳器!云云将可到达你的需求 ( 而不必经常在你的 IE 等阅读器上变动所需的署理效劳器 ) ,这个局部我们在底下还会停止额定的阐明。
                   
                  有利就有弊,固然 Proxy 也不是全能的天神~他有什么能够隐藏的缺陷呢?
                   
                  • 容易为 Intranet 的外部职员滥用:由于 Proxy 是对外部的电脑捉取材料 ( 固然也可以对 Internet 下面的运用者捉取材料啦! ) ,并且在 Internet 下面看到的实践上是你的 Proxy 在捉材料喔!假如你的运用者少量的以阅读器下载 A 图啊,照旧透过你的 Proxy 干好事啦,如许一来可就累了~由于真实不容易随便的办理!以是,为了根绝这个情况,激烈的发起多加装置登录文件剖析的软件,在办理下面会轻松许多喔!
                   
                  • 需求较高明的设定本领与除错顺序:在鸟哥设定过的 Server 当中, Proxy 算是比拟不容易设定好‘效能’的一个效劳器了!由下面的传输进程中,您不难发明 Proxy 的 Cache 与他的‘下层署理效劳器’的干系是很严密的,万一设定错误的话,很有能够反而让您的 Proxy 拖垮 WWW 的阅读速率!最严峻的是形成无法连线 ( 在下层 Proxy 与您的 Proxy 之间组成 loop 而跑不出去! ),因而,这关于办理员来说是比拟困扰的一件事。
                   
                  • 能够会获得旧的错误材料:由后面的 Proxy 运作进程当中不难发明,Client 端向 Server 端求取材料时,Server 会先向本人的 cache 查寻,假如有该探索材料,就立刻将材料送给 Client 。如今假定个例子来阐明,万一我的网页三天中间改动一次,那么谁人 cache 现实上并没有每天更新啊!这个时分, Client 端所获得的材料就有能够是网页修正之前的旧材料咯!以是,运用者得经常按下‘更新’才干获得新的材料啊!
                   
                  总之, Proxy 的长处是许多的,但是缺陷却需求网管职员的费心啊!
                   

                  什么是下层署理效劳器?那边有下层署理效劳器
                   
                  什么是下层署理效劳器:
                  好了,下面提到过所谓的‘下层署理效劳器’这又是什么咚咚?现实上,下层署理效劳器便是一个 Proxy 啦,只是,我们本人设定的这个地区 Proxy 会将本人看成 Client 而去要求别的一个 Proxy 求取材料来给我们的运用者便是了!整个流程图可以如许看:
                   

                  图三、下层 Proxy 表示图
                   
                  便是我们的 Local proxy 并不会自动的去捉材料,而是透过‘下层署理效劳器’去处 Internet 要求材料!如许有什么益处呢?方才下面也已经提过了,由于这些下层署理效劳器才是真正对外频宽最大的几部呆板之一,以是透过他来要求材料肯定又比我们的 Local proxy 还要来的快啊!以是我固然会喜好设定下层 Proxy 噜!这个景象最常发作在对外洋的连线下面,有没有设定 Proxy 差别是相称大的呢!下层署理效劳器除了频宽更大之外,另有没有什么益处啊?固然有,最大的益处便是到达分流的效应!比方下图的阐明:
                   

                  图四、下层署理效劳器的分活动作表示图
                   
                  我统共设定了三个下层署理效劳器,由于这三个署理效劳器对外的速率都不相反,以是,当我要去美国时,就以 Proxy1 来要求材料,要连欧洲就以 Proxy3 ,至于要连日本,就以 Proxy 2 来要求我所需求的材料,云云一来,呵呵!可以让我的 Proxy 到达最佳的效能喔!很不错吧! ^_^!以是下层署理效劳器是很紧张的呢!
                   
                  那边有下层署理效劳器?
                  现在有哪些流量大、然后又开放出来的 Proxy 呢?我这里举几个网页给各人参考参考:
                     
                  由后面的引见中,我们不难发明 Proxy 有能够会被 Client 端过分的滥用,同时也有能够会被拿来为非作歹啊!以是,现在绝大局部的 Proxy 曾经‘中止对外开放’了,仅针对本人的网络内的 Client 提供 Proxy 的效劳罢了~因而,假如您要自行设定 Proxy 的时分,请记得去您现在请求网络的 ISP ( 假如是学术单元,就到下面引见的学术网络检查看即可!) 查寻一下,才干比拟无效的设定好您的主机喔!由于设定错误的话,呵呵!下层 Proxy 基本不提供效劳,或许是下层 Proxy 的效能并欠好,谁人时分您的 Proxy 也会连带的遭到很大的影响啊!慎选!慎选!
                   

                  我能否肯定要设定 Proxy ?
                   
                  话又说返来,究竟我应不该该设定 Proxy 呢?照旧得由实际与实践上的形态来停止阐明。现实上,我们的 Proxy 觉得上会放慢传输的速率,次要的要素是来自于 cache 曾经记载了一份材料了,以是 Client 端获得的实在是这一份材料,而不是真的来自于 Internet 下面的即时材料!如许的益处后面提过了,便是可以添加外部网络传输的效能啊!但是,这要在一个条件之下,便是我的运用者许多时,那么由于来自五湖四海的人会到处去求取材料,让我的 Cache 拥有较大的材料库,那么外部传输的速率天然就会有所助益!以是,要搭建 Proxy 的状况可以是:
                   
                  • 我的 Client 端用户不少,并且大局部仅需求 WWW 这个网络效劳罢了;
                  • 我的 Proxy 还兼做防火墙的义务;
                  • 我的 Client 端经常需求连线到传输速率很慢的网站,比方外洋的网站;
                  • 我的 Client 端经常阅读的网站是‘静态’网站,而不是静态网站(比方讨论区的 PHP )。
                   
                  相反的来说,要是 (1)我的 Client 端很少,那么每次上去 WWW 都是求取新的材料,有没有 Proxy 反而看不出效益~别的,(2)Proxy 由于属于使用层了,关于 Internet 的计划上弹性较缺乏!不像 NAT 主机可以停止许多的功用!(3)我经常上的网站是相似讨论区那种一日多变的网站,在如许的状况下,真实是没有须要搭建 Proxy 的!
                   
                  但是,假如关于学校单元那本来频宽就缺乏的情况中,搭建 Proxy 来让校内的网络速率提拔,呵呵!便是有谁人须要性的啦!以是要不要搭建 Proxy 呢?请好好的根据您的情况来考量喔!
                   

                  所需求的硬体要求与最佳硬体设置装备摆设方法
                   
                  假定您肯定需求搭建 Proxy ,那么究竟什么样的装备是必须的呢?我们方才提到 Proxy 关于硬体的要求相称的高!由于我们搭建 Proxy 的目标便是盼望可以放慢网络的传输效能嘛!因而,固然 Proxy Server 简直在任何的 Linux 零碎下面都能跑 ( 比方我的 P 133 MMX ) ,但是您的 Proxy Server 最好照旧能有以下的硬体品级:
                   
                  • CPU 最好可以 P III 550 以上品级;
                  • RAM 最好可以大于 512 MB ,这也是很紧张的一个硬体参数!
                  • Hard Disk 最好能用 SCSI 介面的,由于速率与波动度都比拟好!假如不克不及的话,那么 IDE 介面的硬碟由于现在速率也越来越快,以是运用 IDE 也没有题目,但是最好是‘多颗硬碟’的架构,比方我统共需求 30 GB 的硬碟空间,那么最好是 10 GB 的硬碟三颗如许的架构较佳!为什么呢?由于 cache 关于 Proxy 的紧张性相称的大,以是 cache 读取速率越快的话,代表 Proxy 的效能也会越好!那由于 Proxy 对每笔材料写入 cache 时,是‘均匀分摊在各个 cache 的目次中 ’,以是固然硬碟数越多越好啰!比方我本来有 10 MB 的材料要写入 cache ,那么这 10MB 写入统一颗硬碟快?照旧 10MB 被疏散写入三颗硬碟,因而每一颗硬碟仅记载 3.3MB ,那一个快?固然是三颗硬碟的架构会比拟快,由于我有三个磁头在帮我写入材料嘛!^_^!请留意喔!这里我们说的是‘多颗硬碟’而不是‘多个 Partition ’喔!由于假如我将 30GB 的硬碟切割成三块 partition 的形态下,由于照旧只要一个磁头啊,以是写入的速率差别不会很大!这里要特殊注意与理解呢!
                  • 网络卡与网络周边最好运用 GBytes 的网络卡,固然啦,普通的公司行号应该不需求用到如许的网络卡才是!我这里指的是较高等的装备啦!
                   
                  现实上,最紧张的照旧 RAM 与 HD 这两样,固然,网络介面也相对不克不及无视便是了!针对硬碟来说,最好运用 SCSI 这个波动的介面,固然,运用 IDE 也是不错啦!但是要留意颐养便是了。别的,就好像下面提到的,在硬碟的架构上是相称的紧张的!普通来说,运用磁碟阵列应该是不错的想法,假如没有方法的话,运用多颗硬碟代替单颗硬碟的架构,在效能上也会有不错的明显提拔呢!
                   
                  既然硬碟这么紧张,我们也大抵谈一谈硬碟的根底计划应该有哪些需求留意的呢?
                   
                  • 最幸亏搭建 Proxy 时,将全体主机的计划做好,而且让 Proxy 主机的效劳复杂一点,便是仅担任 Proxy 就好了!
                  • 每颗硬碟的容量不需求太大,约莫在 9 GB 以内即可,别的,最好将硬碟联系一下,一块 Partition 差未几在 2~4 GB 之间即可,由于切太大的话材料的搜索消耗工夫较长,但是 Partition 太小又能够形成空间的糜费~以是差未几的巨细就限定在 2~4 GB 吧!
                  • 我们方才下面有提过,cache 是安排在某个目次下的,而最好一个目次底下便是独立的一个 partition 。别的,由于 cache 地点的硬碟经常会有材料的存取,因而能够此一硬碟的消耗率会比拟大,以是这个 cache 地点的硬碟最好不要跟紧张材料文件,比方 /, /etc, /usr, /home 等等紧张的零碎文件放在一同,以免风险啊!
                  • 也由于 cache 地点的硬碟材料存取太麋集了,以是,硬碟的选择下面需求 (1)转速不克不及太低; (2)磁头的机器臂需求可以忍耐频仍的举措; (3)发热量不行太大,或许可以思索加装硬碟用电扇。
                   

                  署理效劳器与 NAT 主机的差别
                   
                  大概您曾经发明了一件事,那便是:在外部地区网络运用公有 IP 的 Client 端不管透过 Proxy 或许 NAT 均可以间接获得 WWW 这个 Internet 的效劳,那么 NAT 与 Proxy 有没有什么差别的中央啊?他们不都是可以让外部的 Client 衔接出去吗?实在这两个玩意儿差别性是‘相称大’的:
                   
                  • NAT 是一个应用 TCP/IP 的 packet filter ( 封包过滤机制 )来停止封包处置的一个机制,以是他是‘间接剖析 TCP/IP ’,以是在设定防火墙的时分,他的弹性比拟高,只需能过 NAT 这一关,那么大局部的网络效劳都可以运用,由于 TCP/IP 是比拟底层的协议啊!要晓得的是,TCP/IP 上头另有 port 、另有 IP 等等的资讯,单是 port 就可以让我们运用许多的差别的协议了!比方 port 20, 21 是 FTP 啊, 80 是 WWW 啊等等的!以是 NAT 能做的事变事许多的!
                   
                  • 至于 Proxy 就纷歧样了, Proxy 次要透过相似 Squid 这一类的软件来告竣的一个效劳,根本上,普通来说他是透过 port 3128 来停止材料的监听与传输,单是看到这个 port 3128 就应该要知道他仅是一个 daemon 罢了。Proxy 曾经是使用层这个阶段的网络项目了,以是他并没有去剖析 TCP 的封包,只需 Client 泉源符合他的需求 (比方 IP 是被援助的 ) ,那么他将透过 daemon 的功用帮运用者告竣运用者所想要的义务!以是说,能不克不及做某些事变,与 Proxy 效劳器下面担任的谁人 daemon 是有关的!万一 daemon 无法停止 FTP 材料的获得,那么您再怎样高兴的实验上彀也是徒然的啊!
                   
                  如许说有没有比拟有点观点了呢?NAT 是由较底层的网络去停止剖析的任务,至于经过 NAT 的封包是干嘛用的, NAT 不去管他!至于 proxy 则次要是由一个 daemon 的功用告竣的,以是必须要契合该 daemon 的需求,才干到达某些功用!
                   
                  谈完了这些根本的原理之后,我们可得来玩一玩 Proxy 了吧?!现实上,现在有许多的 Proxy 软件,比方 apache 也有提供 proxy 模组的功用喔!但是,最好不要用 Apache 看成您的 Proxy server ,由于.....效能真的太差了~会让您的网络进展的更凶猛~现在 Proxy 的效劳器软件当中,以 squid 这个咚咚最知名,会知名的缘由是由于他的效能高!真的很不错的一套软件,以是底下我们就针对 squid 来做阐明吧!

                套件装置
                  我们的 Proxy 效劳器软件选择 squid 这个效能很高的套件来装置,现在 ( 2003/03 ) Squid 曾经出到了 2.5 版了,您可以到官方网站下面下载,或许是到中山大学的 FTP 网站下面下载,底下提供一下联络的网址:
                     
                  异样的, squid 也有两种次要的装置形式,辨别是 RPM 版本与 Tarball 版本,不外,由于我们会参加一些差别的参数设定值,以是预设的 RPM 文件并无法满意我们的需求,除非运用 SRPM 来停止重新 configuration 的举措,不然比拟不克不及让我们称心啦!因而,习气上我们都因此 Tarball 的方法来停止编译、设定与装置,以是底下鸟哥会比拟侧重以 Tarball 的装置来停止引见,假如有兴味的话,可以实验以 SRPM 停止修订的任务喔!
                   

                  运用 RPM 方法装置 squid
                   
                  普通来说,运用您的 Linux distribution 提供的 Squid 也就够了,但是,就好像下面提到的,能够会有一些设定值您无法无拘无束的设定,不外。不外,无论怎样,以 RPM 来装置是最轻便的啦!那么就请拿出您的原版光碟,将他 Mount 下去,盘问一下能否有 squid 字样的文件称号?没错,就将他装置上去吧!现在次要的几个 distribution 都有提供这个套件,以是应该可以很快的找到这个套件才是!怎样运用 RPM 呢?没这么难吧!
                   
                  [root@test root]# rpm -ivh squidxxxxxxx
                   
                  频频地夸大, RPM 是粉紧张的,请好好的运用他吧! ^_^!这个指令就装置终了啰!只是要留意的是,由于 squid  2.2 版曩昔的设定与 2.4 版当前的设定差别性很大,以是请特殊注意您的 squid 版本,假如是运用旧的 Linux distribution 的运用者,比方 Red Hat 6.xx 版本,或许是 Mandrake 7.xx 版本,那么就不要再以 RPM 来晋级了!间接运用底下的 Tarball 吧!横竖才装置一个文件,还不会太难啦!
                   

                  运用 Tarball 方法装置 squid
                   
                  普通来说,我还真是蛮喜好中山大学的 FTP 站 ( 怪了,仿佛不断在帮人家打告白! ^_^ ) 没方法,我们南部人嘛!固然是南部的 FTP 站比拟密切啰!这个时分,您可以间接在 Linux 底下运用 wget 来获得我们所需求的 squid 喔!现在我获得的版本是 2.5.STABLE2 版本,获得的办法如下:(注:您也可以到鸟哥的私房菜下载 http://linux.vbird.org/download)
                   
                  [root@test root]#  wget  \
                  http://ftp.nsysu.edu.tw/Unix/Proxy/squid/source/STABLE/squid-2.5.STABLE2.tar.gz
                   
                  好了,这个文件应该便是 /root/squid-2.5.STABLE2.tar.gz 啰!那么就开端来给他装置吧!进程很复杂啦,紧张的中央只要在下达 ./configure 的中央需求许多的额定参数援助便是了!
                   
                  0. 解紧缩:
                  [root@test root]# cd /usr/local/src
                  [root@test src]# tar -zxvf /root/squid-2.5.STABLE2.tar.gz
                  # ....(略)....会发生一个 squid-2.5.STABLE2 的目次
                  [root@test src]# cd squid-2.5.STABLE2
                   
                  1. 开端设定参数:
                  [root@test squid-2.5.STABLE2]# export CFLAGES='-O2 -mcpu=i586'
                  # 这是一个额定的参数啦!由于我们运用的是 Linux ,而我们的 GNU gcc 
                  # 有针对每种差别的 CPU 来停止套件的最佳化编译!以是啦,就参加我们的
                  # CPU 型号吧!由于我的 CPU 是 P-166 ,横竖是个小案例啦!以是才会是 i586,
                  # 您的 CPU 只需超越赛扬品级以上,就会是 i686 啰!别的,除了
                  # i386, i486, i586, i686 另有 pentium, pentium3, pentium4, athlon, 
                  # athlon-tbird, athlon-4, athlon-x, athlon-mp, k6, k6-2, k6-3 等等!
                  # 假如不确定您的 CPU 那么就用 ix86 之类的方法来定名吧!不外,即便没有
                  # 写入这个参数也无所谓啦!至于谁人 O2 是最佳化参数啦!
                   
                  [root@test squid-2.5.STABLE2]# ./configure --prefix=/usr/local/squid  \
                  > --enable-gnuregex --enable-async-io=80 --enable-icmp \
                  > --enable-kill-parent-hack --enable-snmp  \
                  > --disable-ident-lookups --enable-cahce-digests \
                  > --enable-err-language="Traditional_Chinese"  \
                  > --enable-poll --enable-linux-netfilter
                  # 这个咚咚就风趣啦!由于真实有相称多的参数可以运用,你可以运用 
                  # ./configure --help 来观察可以运用的很多参数啊!略微表明一下各个设定值:
                  --prefix=/usr/local/squid将来顺序编译完成后安排的装置目次;
                  --enable-gnuregex:运用 GNU 提供的正轨表现法的准绳来停止编译,请留意,
                    由于在 Proxy 将来的计划当中,很能够会动用到正轨表现法的方法来
                    抵御一些歹意的网站,以是这里应该要参加这个参数的!
                  --enable-async-io=80这个项目次要在控制一些输入入的元件,运用这个项目
                    可以让您的 Proxy 效能提拔许多喔,由于黑白同步输入 (async) 的形式啊!
                    前面接的数值是可以变化的,假如您的网站装备很高等,可以实验将这个数字
                    提拔到 160 以上,假如是小网站的话,那么可以思索将他低落至 40 左右。
                  --enable-icmp要不要援助 ICMP 啊!固然是要的!
                  --enbale-kill-parent-hack在我关失 squid 的时分,要不要连同
                    parent process 一同关失,固然也是要的啦!
                  --enable-snmp这个与制图的 MRTG 比拟有关啦!假如没有效到的话,
                    可以思索将这个项目拿失也没有干系!
                  --enable-cache-digests这个项目很紧张的啦,我们在底下再停止阐明。
                  --enable-err-language="Traditional_Chinese"不需求写了吧?
                    只需有任何的错误讯息,网页下面表现的语系会是中文喔!
                  --enable-poll可以提拔效能;
                  --enable-linux-netfilter可以添加通透式 Proxy 的设定!前面再提啦!
                   
                  2. 开端编译以及 Install 啰!
                  [root@test root]# make && make install
                   
                  3. 开端设定其他的相干参数
                  [root@test root]# vi /etc/man.config
                  # 在这个文件当中新参加一行:
                  MANPATH /usr/local/squid/man   # 与 Squid 有关的 man page
                  # 可以让 squid 提供的阐明文件让 man 指令可以查到!
                   
                  就如许几个复杂的步调就将 squid 给他装置终了啦!很疾速吧!以是我说,运用 Tarball 来装置 squid 实在是很快的,不必太担忧啰!

                Server 端设定:
                  终于离开了主机真个设定项目啦!以下我们会分门别类的引见各个次要的参数值,这些参数不见得合适您的 Proxy 情况,以是运用的时分敬请特殊警惕喔!每个项目都要好好的理解一下呐!别的,底下我次要因此 Tarball 装置的目次为次要的引见形态,假如您因此 RPM 来装置的话,那么一切的文件原理与设定照旧一样的,只不外文件寄存的途径就不太一样便是了!请以 RPM 的指令或许是 locate 与 find 的方法找出来您的设定档吧!
                   

                  squid 的构造
                   
                  方才装置的目次实在是在 /usr/local/squid 这个目次下,而这个目次又分为几个次要的子目次,辨别为:
                   
                  • bin/ :安排次要的 squid 实行 scripts 的目次,紧张的是 RunCache 谁人文件;
                  • etc/ :简直一切的 squid 设定档都在这里;
                  • libexec/ :一些函式库;
                  • man/ :便是一些线上文件查寻档啦!
                  • sbin/ :紧张的便是谁人 squid 的实行档!
                  • share/ :一些错误讯息代码表现文件,以及一些小图示安排的目次;
                  • var/ :预设是安排 log file 的,不外我不喜好放在这里,这点等一下我们会修正的!
                   
                  那么次要的设定档有哪些呢?实在可以说只要两个啦:
                   
                  • /usr/local/squid/etc/squid.conf :这个是次要的设定档,一切的 squid 所需求的设建都是安排在这个文件当中的!鸟哥底下提到的种种设定办法简直都是这个文件外面的阐明喔!以是,假如您英文不错,那么就间接看一下这个文件就晓得怎样设定 squid 啦!
                  • /usr/local/squid/etc/mime.conf :这个文件则是在设定 squid 所援助的 Internet 下面的文件款式,便是所谓的 mime 款式啰!普通来说,这个文件的预设内容曾经可以契合我们的需求了,以是不需求变动他,除非您很清晰的晓得您所需求额定援助的 mime 文件款式。
                   
                  而实行档实在只要一个,那便是 squid 啦!不外, Squid 这个套件额定的提供了两个可实行的 scripts 来协助各人实行 squid ,那便是在 bin/ 外面的 RunAccel 与 RunCache :
                   
                  • /usr/local/squid/sbin/squid :便是我们说的 squid 的实行档啰!要晓得这个指令的参数吗?就运用‘ ./squid --help ’就能晓得有什么参数啦!
                  • /usr/local/squid/bin/RunCache :这个是次要的实行 squid 的一支复杂的 script ,次要是应用 squid.conf 设定文件的内容来启用 squid 喔!
                  • /usr/local/squid/bin/RunAccel :假如您的 WWW 效劳也想要透过 Squid 来停止‘减速’的话,那就可以运用 RunAccel 来代替 RunCache 了,不外,我通常照旧运用 RunCache 罢了!
                   

                  squid 的 process owner 与 cache directory owner
                    
                  我们后面的原理局部略微提过, squid 次要因此 daemon 提供的 Proxy 功用,而这个 daemon 最大的功用便是将 Internet 下面捉取的材料给他放入 Cache 目次当中啦!而由于 daemon 会发生一些 processes ( 顺序 ),这些顺序都市有 Owner 以及 Group 。如许知道我要讲什么了吧?呵呵!没错,谁人安排 cache 的目次 ( 底下简称 cache dir ) 的拥有者以及拥有群组就必须要与 squid 发生的 process 的拥有者与群组相反才行!而为了保险起见,通常 squid 不会以 root 来启动,最好因此 nobody 或许是一些权限比拟低的零碎帐号来启动他!假定我们的 squid 这个 daemon 是由 nobody 所启动的好了,而假定我的 cache dir 是安排在 /var/spool/squid 上面,则这个 /var/spool/squid 的 Owner 与 group 就必须要是 nobody, nobody 才行!这个很紧张喔!由于大局部无法启用 squid 的冤家都是这个举措没有搞准确的缘由啊!
                   
                  squid 的 Owner 与 Group 是在 squid.conf 外面设定的,而至于 cache dir 则是需求我们手动来设定好他的权限呢!
                   

                  最浅易的 squid 设定办法
                   
                  设定 squid 仅要修正一个文件罢了,那便是 /usr/local/squid/etc/squid.conf 啰( RPM 版本就不相反啰!请自行找出来吧! )!请留意,在这个例子当中,我们并没有引见高等装备的设定,仅只是列出紧张的设定项目另有一些看法,您所想要的设定必须要视您的主机计划而定,比方 cache dir 每团体所安排的目次都不相反啊,以是间接拿我的设定来启动时,能够会完蛋啊!请留意需求修正成您所想要的款式才行!好了,在这个大节当中,我们仅列出来几个肯定要设定的参数,至于更进阶的参数将留待前面辨别引见。
                   
                  别的要额定提示的是,在 squid.conf 这个文件当中,预设的状况下是‘除了本机可以运用 squid 的少局部功用外,其他一切的项目都没有被启动’,以是您必须以 vi 的搜索功用找到下列的设定项目后,将表明标记 (#) 拿失,或许是自行输出底下的设定才行喔!不啰唆,立刻停止吧!
                   
                  [root@test root]# cd /usr/local/squid/etc
                  [root@test root]# vi squid.conf
                  # 1. 关于网络的参数设定局部
                  #   在这个局部当中,最紧张的便是启用 squid 这个 daemon 的 port 了!
                  #  在预设的状况下,公认的规范 proxy port 为 3128 ,至于被盘问封包
                  #  察看的则是 3130 这个 port,这里我们辨别启用这两个 port !假如您的
                  #  Proxy 另有帮人家署理 https 这个由 SSL 协议启用的 port ,那么还需求
                  #  启动 https_port ,但是我们这里不议论 SSL 啦!太风险了~
                  http_port 3128
                  icp_port  3130
                   
                  # 2. 设定快取目次 ( Cache dir ) 的巨细与记载文件地点的目次
                  #  这个设定是紧张到爆的中央,肯定得设定准确才行啊!下面我们不是
                  #  提过关于硬碟与目次吗?好了,如今如许假定:我有两块 partition ,
                  #  这两块 partition 辨别挂载在 /usr/local/squid/var/cache1
                  #  以及 /usr/local/squid/var/cache2 这两个地区,别的,两块 
                  #  partition 一块为 1GB (cache1) 另一块为 2 GB (cache2) ,则设定为:
                  #  <cache_dir> <aufs|ufs> <目次地点> <MBytes巨细> <dir1> <dir2>
                  #  谁人 aufs 只要在编译的时分参加 --enable-async-io 谁人项目才有援助,
                  #  至于目次地点地与所占用的磁碟巨细则请视您的主机状况而定,
                  #  然后面 dir1, dir2 则是两个次目次的巨细,通常 16 256 或 64 64 皆可,
                  #  普通来说,数字最好是 16 的倍数,听说效能会比拟好啦!
                  #  留意1: 上面两行需求‘视您的主机情况而定!’不要照抄!
                  #  留意2: 在底下的例子中,我的两块 partition 曾经 mount 上该目次了!
                  #      这也便是说,底下的两个目次是‘曾经存在的!’
                  cache_dir aufs /usr/local/squid/var/cache1 1000 16 256
                  cache_dir aufs /usr/local/squid/var/cache2 2000 16 256
                  #  底下则是关于记载档的安排目次与档名!
                  cache_access_log /usr/local/squid/var/logs/access.log
                  cache_log /usr/local/squid/var/logs/cache.log
                  cache_store_log /usr/local/squid/var/logs/store.log
                  pid_filename /usr/local/squid/var/logs/squid.pid
                   
                  # 3. 封闭认证机制
                  #  不知道为什么,这一版的 squid 会主动的参加认证机制,请找究竟下
                  #  几行,将他 mark 起来!
                  #auth_param basic children 5
                  #auth_param basic realm Squid proxy-caching web server
                  #auth_param basic credentialsttl 2 hours
                   
                  # 4. 提供 squid 效劳
                  #  预设的状况下,仅有本机可以运用 squid ,我们先将一切的权限开放
                  #  然后在一个一个的封闭啰!先找究竟下这一行:
                  http_access deny all
                  #  将他改成
                  http_access allow all
                   
                  # 5. 设定 squid 的拥有者与零碎办理员信箱:
                  #  便是方才我们上一大节提到的 squid 的拥有者,请留意,这个
                  #  user 与 group 必须要在 /etc/passwd 及 /etc/group 外面存在方可乐成!
                  #  我这里以权限最小的 nobody, nogroup 来做为典范,您也可以自行设定!
                  #  别的,cache_mgr 则是 squid 办理员的信箱,当 squid 发作题目时,
                  #  荧幕上就会呈现这个信箱给运用者联络办理员之用!
                  cache_effective_user   nobody
                  cache_effective_group  nogroup  # 您也可以改成 nobody !
                  cache_mgr youraccount@your.e.mail
                   
                  # 6. 变卦目次权限:
                  #  在预设的状况下,我们次要的记录资讯都写入 /usr/local/squid/var 外面,
                  #  以是这个时分需求将这个目次的权限改动成为 nobody 与 nogroup 一切!
                  #  固然啰,假如您的 cache_dir 不在这个目次当中,那么还需求额定自行树立,
                  #  比方我的 cache_dir 万一是在 /proxy1 与 /proxy2 时,那么我就必须要:
                  #  chown -R nobody:nogroup /proxy1
                  #  chown -R nobody:nogroup /proxy2
                  #  关于权限的题目是很紧张的!请不要遗忘了!
                  [root@test root]# chown -R nobody:nogroup /usr/local/squid/var
                   
                  # 7. 开端启动 squid:
                  #  启动 squid 来试看看吧!不外,起首我们必须要树立快取目次的款式
                  #  才行,别的,由于我们想要以 nobody 来启动 squid ,以是你需求如许:
                  [root@test root]# /usr/local/squid/sbin/squid -z # 树立 cache_dir
                  [root@test root]# su nobody -c "/usr/local/squid/bin/RunCache &"
                   
                  # 8. 检查能否真的启动了 squid 了?
                  [root@test root]# netstat -tln | grep 3128
                  tcp        0      0 0.0.0.0:3128       0.0.0.0:*          LISTEN
                   
                  # 9. 重新读取设定档 squid.conf 的办法:
                  [root@test root]# /usr/local/squid/sbin/squid -k reconfigure
                   
                  在下面的设定中,紧张的中央在于:
                   
                  • 你的硬碟计划与 cache_dir 的设定能否符合:请留意,除非您是‘搭建着玩的,地道锤炼功力’的角度来设定 Proxy ,那么可以间接以预设的设定来搞定您的 cache_dir ,否则的话,后面我们提过,这个 Cache dir 但是影响 Proxy 效能的相称紧张的要素之一,因而,万万不行粗心啊!
                   
                  • 关于权限的大题目:由于我们经常倡导‘不要以 root 来启动 daemon ’,以是这个 squid 我们因此 nobody 与 nogroup 来启动的!而 Process 与权限的干系是相称相称的紧张的,因而,您必须要将下面方才树立的 cache_dir 变动整个目次的拥有者才行!假如是锤炼功力罢了,那么随意树立一个目次变动一下他的拥有者与群组,就行了,否则的话,请按照您的硬碟计划好好的设计一番!
                   
                  • 关于 cache_dir 重新建置的步调:在下面的第 7 个步调当中,我们必须以 squid -z 来重修一下 cache_dir 的款式,这个步调在第一次启动 squid 时才做,其他时分就不需求停止了!而停止这个步调之前,请务必将下面提到的两点留意事变先搞定,不然您的 squid 很难启动喔!

                  •  
                  • 实践阅读器的检验:固然下面第 8 个步调曾经确认了 squid 启动了,但是还不克不及一定任务正常,这个时分假如您有 client 真个电脑,假定是 Windows 的 IE 好了,那么就赶忙来测试看看能不克不及运用 squid 啰!启动 IE 后,按下:
                    • ‘东西’->
                      ‘Internet 选项’->
                      ‘连线’->
                      ‘地区网络设定’中,点选
                      ‘运用 Proxy 效劳器’
                    并在网址列输出你的主机称号 ( 或许是 IP 均可 ),然后按确定分开!然后在 IE 中按按看网页的设定有没有乐成,假如可以读到网页的话,表现 squid 可以正常的被运用了!
                     
                  • cache_dir 这个参数的意义与存取款式的范例

                  • 这个设定项目便是限定暂存区巨细的中央啦,款式为:
                     
                      cache_dir ufs /usr/local/squid/var/cache 100 16 256
                     
                    下面的阐明是:暂存区目次为 /usr/local/squid/var/cache ,而暂存空间巨细为 100M , 在这个暂存目次下有 16 个目次,而每个目次中又有 256 个目次 ( 你可以实践进入 /usr/local/squid/cache 当中去看看 ) 。假如你要改动暂存档目次及这个目次的巨细时,可以在这里修正!不发起修正 16, 256 这两个数值。别的,通常,假如是我们普通小型的区网 ( 不超越10团体 ) ,那设定个  500 MB作为 cache 应该够了,假如你的硬碟够大,设定成 1000 MB 以上更好,固然,与第一个留意事变符合的,需求与您的实践硬碟巨细以及 Partition 安排的目次相互共同才行。修正过这个指令后,要再重新启动 squid 之前,请先运用上面的指令来使你的目次可以停止存取的举措,不然你的 squid 是不会任务的!比方你将下面的参数修正成:
                     
                      cache_dir ufs /usr/local/squid/var/cache 1000 16 256
                     
                    然后再停止上面的指令:
                     
                      rm -rf /usr/local/squid/var/cache
                      mkdir /usr/local/squid/var/cache
                      chown nobody:nogroup /usr/local/squid/var/cache
                      /usr/local/squid/sbin/squid -z
                     
                    如许你的squid暂存目次就可以运用啰!别的,假如你在编译 (configure 进程中) 的时分有将 --enable-async-io 这一个参数加出去的话,将可以添加 aufs 这一个材料存取的款式!这个存取的款式可以将你的硬碟发扬到最极限的速率喔!固然在 squid.conf 文件中有提及,这个 type 能够会有 bug 存在,不外,据鸟哥的运用后果,发明,没啥大题目!好用的很!以是,你可以将下面的咚咚改成上面的样子:
                      cache_dir aufs /usr/local/squid/var/cache 1000 16 256
                   
                  如许就算曾经完成了一个‘很阳春’的小型 proxy 了!为什么说很阳春呢?这是由于这个 Proxy 并没有下层 Proxy 喂材料,以是 Client 真个任何要求这个 Proxy 都需求‘本人去捉’啊!哇!那么这个 Proxy 还真累啊!没错啊,以是底下我们要再来谈一谈其他几个添加 proxy 效能的办法,好让各人的 Proxy Server 可以真的放慢您阅读的速率啊!
                   

                  影象体与磁碟快取保存百分比设定
                   
                  影象体与磁碟快取在 squid.conf 当中的相干浅易设定如下所示,至于更细致的阐明则在下表之落伍行讲解:
                   
                  # 与影象体有关的设定:由于我的零碎很小,以是只给 8 MB!假如您的实体影象体
                  # 很大的状况下,比方 512 MB,可以思索加大到 64 或 128 MB。
                  cache_mem                       8 MB
                  # 与磁碟容量有关的设定(注:下列的 90 与 95 是百分比 )
                  # 假如您的 cache_dir 地点磁碟很大时,可以思索将 4096 改成 32768 KB
                  cache_swap_low                  90
                  cache_swap_high                 95
                  maximum_object_size             4096 KB
                  # 与影象体保管材料有关的设定
                  maximum_object_size_in_memory   8 KB
                  # 我们经过 dns 正反解以及 IP 的后果,记载在暂存区啊!
                  ipcache_size                    1024
                  ipcache_low                     90
                  ipcache_high                    95
                  fqdncache_size                  1024
                   
                  影象体的需求数目:
                  现实上,除了硬碟之外,影象体能够是另一个相称紧张的影响 Proxy 效能的因子!怎样说呢?由于 Proxy 会将材料存一份在 Cache 硬碟中,但是同时也会将材料暂存在影象体当中啊,以放慢将来运用者存取统一份材料的速率!以是啰,影象体原本就会被 squid 的顺序所耗费失一些!普通来说,被 squid 耗费失的影象体大抵每 1GBytes 的 cache_dir 空间就耗费 10MB 的影象体容量,以是,假如以下面我们的设定为例 (cache1, cache2 共有 3GB), 那么就有 30MB 以上的影象体被耗费失了!除此之外, squid 顺序实行当中亦会额定的耗费失一些实体影象体,这部份占用失的影象体约为 10-20 MB 。
                   
                  除了这些影象体是必需要的之外,您还可以额定的指定一些影象体来停止比拟‘抢手’的材料存取!也便是说,可以额定的再加一些影象体来协助 squid 任务,而不只只是下面提到的影象体运用量!谁人便是 cache_mem 这个设定参数的用处啦!以是,请特殊注意啊,‘ cache_mem 并不是指我要运用几多影象体给 squid 运用,而是指 "我还要额定提供几多影象体给 squid 运用" 的意思’!因而,假定我有 X GB 的磁碟快取空间,并且 squid 顺序运用失 15 MB 的影象体,那么我 squid 运用失的影象体就有:
                   
                    X * 10 + 15 + "cache_mem 设定值"
                   
                  您可以自行盘算一下您的 squid 耗费失几多影象体喔!别的, squid 官方网站发起您的实体影象体 (不含 swap 的影象体容量) 最好是下面数值的两倍,也便是说,假设我的快取容量为 3 GB , cache_mem 设定为 16MB ,那么我的 squid 至多会耗费失 3*10+15+16 = 61MB,则我的实体影象体最好至多要有 122 MB 以上,才会有比拟好的效能!固然,这个单指 Proxy 局部罢了,假如您的该部主机另有担任其他的任务,呵呵!那么影象体就得在累加上去啦!普通来说,假如您的 Proxy 许多人运用时,这个值越大越好,但是最好也要契合下面的需求喔!
                   
                  关于磁碟容量的设定
                  请留意,假如您的磁碟快取空间额满了,那么您的 squid 也就‘挂点’了!因而,请随时留意你的磁碟快取空间!但是,要我每天去留意 squid 的 cache_dir 外面的容量,也太费神了吧?!这个时分就必需要‘cache_swap_low, cache_swap_high ’这些设定的帮助了!假如以下面表格的设定为例时,他的阐明是‘当我的快取目次所占容量为总快取量的 95% 时,那么我的 squid 将会主动的将快取目次内的容量减低至剩下 90% 的容量!’留意,谁人 90 与 95 为百分比例喔!以我们的设定为例,我的 cache_dir 统共有 3GB ,那么当快取空间被运用了 3*0.95=2.85GB 时,我的 squid 会主动的将 2.85GB 外面较旧的材料删除,使快取目次内剩下 3*0.9=2.7GB 的空间!如许能理解了吧?请特殊留意,假如您的 proxy 容易许多人同时上线时,请将这两个数值变动一下,比方变卦为 70 85 ,为什么呢?万一您的运用者忽然间都上线了,然后下载少量的文件,那么‘霎时’能够会使您的 cache 目次超越额度,招致 cache 去世失!以是低落 cache_swap_high 关于大型 proxy 是有需求的!
                   
                  能否需求记载捉到的材料
                  另有一个小题目要阐明的,能否运用者要求过的材料我都要记载呢?呵呵!那固然不是啦!假如都记载的话,万一像近来很多多少 Linux distribution 都释出了他们新版的 Linux ISO 文件,那些文件一个都有 600 MB 以上的容量,万一运用者下载个几个如许的文件,我们的 Proxy 想不爆失都很难~以是这个时分就要限定一下需求记载的‘最大文件’啦!在预设的状况下,我们的 squid 关于超越 4MB 的文件是不记载的(便是不放入 cache 的意思),但是假如您的硬碟够大的话,我都喜好将这个数值调大一点,为什么呢?万一我的运用者经常下载一些 10~20 MB 的套件文件,岂非我每次都要到官方网站去下载一次吗?固然我不想如许啊!以是我通常将这个数值调大到 32MB ,或许是 32768 KB 啰!除了磁碟快取之外,影象体的快取可以记载的最大文件容量也可以修正一下喔!但是我们的影象体可就贵重的多了!不要开太大,约莫预设值就很不错了!
                   
                  关于 IP 与完好主机称号的记录
                  假如能将 IP 与主机称号记载上去的话,搜索的脚步也会放慢一些的!以是以下面的表格为例,我们辨别开启了 ipcache_size 与 fqdncache_size( 前面接的数值是 bytes )的影象容量,由于这些材料都是 ASCII 的材料,用不了什么空间,因而 1024 bytes 曾经充足了!至于前面的 low 与 high 则与后面阐明的相反!
                   

                  acl 的用法与用处
                   
                  在 squid.conf 这个文件外面最常看到的大约便是 acl 这个设定项目了!他但是整个 squid.conf 的重头戏啊!许多的泉源与目标控制都是靠他来设定完成的呢!我们底下就略微谈一谈这个紧张的咚咚吧!起首,他的语法为:
                   
                  <acl> <acl称号> <acl范例> <设定的内容>
                   
                  下面谁人 <acl称号> 可以想成是一个昵称便是了!别想太多~就只是一个代名词,至于 acl 范例可就风趣的多了,他次要有上面这几大类:
                   
                  以泉源端来控制:
                  • src  ip-address/netmask:次要控制‘泉源的 IP 位址’,比方‘acl nckuip src 140.116.0.0/16’,这表现将来在 squid.conf 外面,任何运用到 nckuip 这个代名词时,就表现他是‘泉源为 140.116.0.0/16 的位址’!
                  • src addr1-addr2/netmask:次要控制‘一段范畴泉源的 IP 位址’,比方‘acl nckuevoffice src 140.116.44.120-140.116.44.130/24’就表现 nckuevoffice 这个代名词为来自 140.116.44.120 到 140.116.44.130 之间这 11 个 IP 的要求!’请留意,是‘泉源’喔!
                  • srcdomain .foo.com:次要控制‘泉源为一某个网络的电脑’的意思,比方:‘acl vbirdhome srcdomain .vbird.org’,与 src 很相似,都是控制泉源的用户端,只不外 src 控制的是 IP 而 srcdomain 则是控制 domain name 便是了!
                   
                  以目标端来控制:
                  • dst ip-address/netmask:次要控制‘目标真个 IP 位址’,与 src 相似,只不外是用来控制‘目标端’的位址!
                  • dstdomain .foo.com:这个就没题目了吧?便是用来控制‘目标真个网络’啰!与 srcdomain 相似喔!
                   
                  以正轨表现法的方法来控制
                  • url_regex [-i] ^http:// :除了下面两种根本的办法之外,我们也可以运用正轨表现法的方法来控制‘网络’的设定值呢!比方‘ acl urlname url_regex ^http://linux\.vbird\.org.* ’这表现 urlname 代表的便是来自 http://linux.vbird.org 这个网站的‘任何材料’,由于‘ .* ’代表恣意字元的意思啊!假如仅只是一些档名,比方 gif 这一类的档名时,要怎样作呢?就如底下的阐明啦!
                  • urlpath_regex [-i] \.gif$:下面提到的是关于整个网址的称号,这里则是只需‘URL 局部相反’就可以啦!比方‘acl gifname urlpath_regex \.gif$ ’则是代表 gifname 代表的是 url 前面是 .gif 的网址,呵呵!那便是 gif 的图档附档名嘛!!如许应该不难了解了吧!
                   
                  由于在 squid 当中许多时分都市用到一些 IP 网络啦,以及 domain name 等等的材料,这个时分这个 acl 就可以看做与 bash 外面的‘变数’很相似啰!您可以参考看看的啦!只是他的用处相称的普遍,这个在底下我们会进一步的运用 acl 搭配种种设定值来停止阐明的!
                   

                  下层 Proxy 的选择与负载分流的设定办法
                   
                  下层 Proxy 的设定方法: cache_peer
                  我们在下面的原理局部阐明过,一台无效能的 Proxy server 必需要能应用下层 Proxy 所提供的效能,才干到达我们所想要的‘减速’功用!那么固然大条件之下便是需求先找到‘最佳效能的下层 Proxy 主机’啰!没错!便是如许的啦!在这里,我们以乐成大学的学术网络为架构停止阐明,假如您的网络架构并非为学术单元的话,请按照您能找到的下层 Proxy 来停止设定喔!需求特殊注意的是,由于成大有很多的下层署理效劳器,这些效劳器都可以做为我团体 proxy 的 parent proxy 主机,不外,由于各个次要的 parent proxy 所提供的网络效劳都不尽相反,以是我们得先将次要的几个效劳器对应的网络给他找出来,底下是一个例子:
                   
                  gate.ncku.edu.tw  次要效劳 .com 的网络
                  gate3.ncku.edu.tw 次要效劳 .net .edu 的网络
                  gate2.ncku.edu.tw 次要效劳非 .com .net 与 .edu 的网络
                  proxy.ncku.edu.tw 次要效劳任何网址
                   
                  至于在 squid.conf 当中设定的参数则是‘cache_peer ’这个项目,设定的款式为:
                   
                  <cache_peer> <主机称号> <种别> <http_port> <icp_port> <其他参数>
                  种别:次要有下层(parent) 与统一层 (sibling) 两种,我们这里次要引见的是
                     下层 Proxy 也便是 parent 这一大类,假如您想要搭建一个小型的 Proxy
                     Cluster 的话,可以思索构成 sibling 的功用,由于我们仅想要搭建单部
                     Proxy Server ,以是这里我们就不讨论 sibling 了!
                  http_port icp_port:便是我们最后面设定的啦! Internet 下面预设是
                     3128 3130 这两个!
                  其他参数:其他参数的局部就很紧张了,次要有底下几个紧张参数:
                    proxy-only :只取出下层 Proxy 的 cache 给 client ,并不会将下层 Proxy
                      的材料存在本人的 cache 硬碟中;
                    weight=n  :权重的意思,由于我们可以指定多部下层 Proxy 主机,哪一台
                      最紧张?就可以应用这个 weight 来设定, n 越大表现这部 Proxy
                      越紧张!
                    no-query  :普通来说,假如要向 sibling 要求材料时,会向 sibling 送出
                      icp 的要求封包,运用 no-query 就可以取消。普通来说,假如向下层
                      Proxy 要求材料时,可以不需求发送 icp 封包,以低落主机的担负
                    default  :表现该部主机为预设的 Proxy 主机的意思;
                    no-netdb-exchange:表现不向左近的 Proxy 主机送出 imcp 的封包要求
                    no-digest :表现不向左近主秘密求树立 digest 记录表格。
                  典范:
                  cache_peer gate.ncku.edu.tw parent 3128 3130 no-digest no-netdb-exchange
                  cache_peer gate2.ncku.edu.tw parent 3128 3130 no-digest no-netdb-exchange
                  cache_peer gate3.ncku.edu.tw parent 3128 3130 no-digest no-netdb-exchange
                  cache_peer proxy.ncku.edu.tw parent 3128 3130 no-digest no-netdb-exchange
                   
                  根本上,由于我们向下层 Proxy 要求材料的时分,也是需求工夫的,因而,这里我们发起您不要设定太多的下层 proxy 主机,普通来说, 2~4 部也就充足了,太多部 下层Proxy 的状况反而能够会拖垮您的 Proxy 速率呢!OK!既然有了下层 Proxy ,并且每一台所担任的网络并不相反,以是我们固然就需求将网络分门别类啰!怎样将这些网络分门别类呢?那就需求 acl 的帮助啦!先提示一下,由于我们的 Proxy 旨在协助 client 端获得材料,以是运用 acl 的时分,是针对‘目的’来停止设定的,因而,运用的是 dst 与 dstdomain 喔!在这里,我们将次要的网络分红底下这几大类:
                   
                  0. 本人想要间接运用本人的 Proxy 捉取的材料
                  acl directip dst 140.116.44.0/24
                  acl directdn dstdomain .vbird.org tw.yaoo.com tw.news.yahoo.com

                  1. 成大左近的网络
                  acl nckudn dstdomain .ncku.edu.tw
                  acl nckuip dst 140.116.0.0/16 163.28.112.0/24 163.28.113.0/24 163.28.114.0/24 163.28.115.0/24 163.28.116.0/24 163.28.117.0/24
                   
                  2. 台湾的网络 (请留意:底下为统一行)
                  acl twdn dstdomain .tw .twnic.net .hinet.net .acer.net .wownet.net .seeder.net .silkera.net .neto.net timenet.net tw.aunet.net .adsldns.org 
                   
                  3. 台湾的 IP (留意:底下为统一行)
                  acl twip dst 163.28.0.0/16 140.96.0.0/11 140.128.0.0/12 140.92.0.0/16 139.175.0.0/16 139.223.0.0/16 163.12.0.0/14 163.16.0.0/14 168.95.0.0/16 192.72.0.0/16 192.83.160.0/19 192.83.192.0/22 192.192.0.0/16 202.39.0.0/16 202.132.128.0/17 202.145.224.0/19 203.64.0.0/12 210.64.0.0/13 210.60.0.0/14
                   
                  4. 一些贸易、网络、教诲、以及其他的网络
                  acl comdn dstdomain .com
                  acl netdn dstdomain .net
                  acl edudn dstdomain .edu

                   
                  如许子就作好了根底的任务了!接着上去,我们要开端来设定‘各个次要的网络要透过哪一个下层 Proxy 来停止材料的获得?’这里就有点难度啦!得警惕在意一下!我们的根本假定为如许:
                  gate.ncku.edu.tw  仅担任 .com 的网络;
                  gate3.ncku.edu.tw 仅担任 .net 与 .edu 的网络
                  gate2.ncku.edu.tw 不担任下面的三个网络
                  proxy.ncku.edu.tw 不担任下面三个网络
                  这么一来,运用 cache_peer_access 这个设定项目时,我们的设定会酿成如许喔!
                   
                  # 次要的款式典范:
                  # <cache_peer_access> <下层 Proxy > <allow|deny> <acl称号>
                  cache_peer_access gate.ncku.edu.tw  allow comdn
                  cache_peer_access gate.ncku.edu.tw  deny  !comdn
                  cache_peer_access gate3.ncku.edu.tw allow netdn
                  cache_peer_access gate3.ncku.edu.tw allow edudn
                  cache_peer_access gate3.ncku.edu.tw deny  !netdn
                  cache_peer_access gate3.ncku.edu.tw deny  !edudn
                  cache_peer_access gate2.ncku.edu.tw deny  comdn
                  cache_peer_access gate2.ncku.edu.tw deny  netdn
                  cache_peer_access gate2.ncku.edu.tw deny  edudn
                  cache_peer_access gate2.ncku.edu.tw deny  directdn
                  cache_peer_access gate2.ncku.edu.tw deny  directip
                  cache_peer_access gate2.ncku.edu.tw deny  twdn
                  cache_peer_access gate2.ncku.edu.tw deny  twip
                  cache_peer_access gate2.ncku.edu.tw deny  nckudn
                  cache_peer_access gate2.ncku.edu.tw deny  nckuip
                  cache_peer_access proxy.ncku.edu.tw deny  comdn
                  cache_peer_access proxy.ncku.edu.tw deny  netdn
                  cache_peer_access proxy.ncku.edu.tw deny  edudn
                  cache_peer_access proxy.ncku.edu.tw deny  directdn
                  cache_peer_access proxy.ncku.edu.tw deny  directip
                  cache_peer_access proxy.ncku.edu.tw deny  twdn
                  cache_peer_access proxy.ncku.edu.tw deny  twip
                  cache_peer_access proxy.ncku.edu.tw deny  nckudn
                  cache_peer_access proxy.ncku.edu.tw deny  nckuip
                   
                  颠末下面这个举措,我们就可以将 .com 的要求颠末 gate.ncku.edu.tw 这一台,而且将 .net 与 .edu 给 gate3.ncku.edu.tw 来效劳!别的,将没有被本人界说出来的 IP 或许是网络就丢给 gate2 以及 proxy 这两部来效劳,至于我们既然是在台湾,以是本人界说出来的四个 acl 名字 (directdn, directip, twdn, twip) 固然是间接交给我们本人的 Proxy 来捉取了,置信速率下面应该不会有任何的影响的!因而,那四个次要的 acl 称号将在前面持续引见怎样不要透过下层 Proxy 来捉取材料喔! ( 请参考 always_direct 与 never_direct 的设定值 )
                   
                  不要停止 cache 的设定值:
                  就好像我们在原理的局部提到的,有些网站的材料现实上并没有做为 cache 的需求,比方 CGI 文件便是一个很光显的案例!以是,普通而言, squid 在一开端就会主动帮我们设定好底下这三行:
                   
                  hierarchy_stoplist      cgi-bin ?
                  acl QUERY urlpath_regex cgi-bin \?
                  no_cache deny QUERY
                   
                  下面这三行的意思是:‘只需在网址列呈现了 cgi-bin 的字样时,该网页材料就不停止 cache 的举措!’如许一来,可以防止我们的主机寄存太多的渣滓啊! ^_^!固然啦,在某些时分,比方您地点的网络真的是很慢,同时又没有合适的下层 Proxy 的情况下,那么将 cgi 之类的网页 cache 上去,也未尝不是一个可以节流阅读工夫的一个办法!假如确定要将 cgi-bin 底下的网页也存上去的话,那么就将下面三行表明失啰!
                   

                  与工夫相干的设定值 ( connect_timeout, request_timeout )
                   
                  由于 Proxy 的设定除了防火墙的额定功用外,最次要的目标照旧在于将网页材料 cache 上去!既然云云的话,那么与 Server 的连线工夫确实认就显的很紧张啦!怎样说呢?万一明天您有设定三部下层 Proxy ,每一台的要求工夫都控制在 5 分钟,云云一来,呵呵!万一明天恰好三部下层 Proxy 都挂点,岂非我们就宿命似的要等候 15 分钟吗?固然不是啦!以是这个时分,我们可以将连线的等候工夫延长,好让 Proxy 可以发扬更为弱小的功用啊!
                   
                  # 1. 关于 cache 的更新工夫趋向
                  # 我们在快取当中的材料总是需求更新的对吧!那么怎样设定更新的工夫呢?
                  # <refresh_pattern> <regex> <最小工夫> <百分比> <最大工夫>
                  # 留意,谁人 regex 指的是‘目的’,这个‘目的’大局部为网址,而这个网址
                  # 运用正轨表现法来表现便是了!下面的意义是说:最小的工夫内 (分钟),假如
                  # 文件有变动,就间接更新,或许是目的文件前次更新的工夫到如今曾经颠末最大
                  # 工夫的‘百分比’时,就予以更新!典范如下:
                  refresh_pattern ^ftp:           1440    20%     10080
                  refresh_pattern ^gopher:        1440    0%      1440
                  refresh_pattern .               0       20%     4320
                  # 第一行的意思是,假如网址裂扫尾是 ftp 的话,那么在一天(1440分钟)后,假如
                  # proxy 再次取用这个文件时,则 cache 内的材料会被更新!

                  # 2. 关于连线工夫限定
                  # connect_timeout 指的是衔接到其他主机的工夫多久之后算失败,预设是两分钟
                  #         不外我以为我的呆板连线速率还算疾速,以是减低了工夫
                  # peer_connect_timeout 指的是衔接到下层 Proxy 多久不可功就算失败,
                  #         由于下层 Proxy 与我的情况毫不相关,不行能连不上,
                  #         以是我这里将工夫调解的很短!
                  # request_timeout 指的是,连线上了,但是要求的工夫会多长?
                  # persistent_request_timeout 指的是延续要求工夫会有多长?
                  connect_timeout 30 seconds
                  peer_connect_timeout 10 seconds
                  request_timeout 1 minutes
                  persistent_request_timeout 20 seconds
                  # 请特殊留意喔!下面的设定当中,是由于我的情况‘还算不错’,以是我将
                  # 工夫调解的很短,由于我知道我的情况当中不会有花很永劫间的情况,
                  # 这里请按照您的网络情况来调解喔!或许爽性不要设定也没有干系!

                   

                  总是零碎本人来捉材料(always_direct)
                   
                  方才我们在主机分流的中央有提过,有些材料我们要让我们本人的 Proxy 去捉取材料即可,而不透过下层 Proxy ,那么怎样到达如许的目标呢?也不是很难啦!就通知 Proxy 不要去捉就好啦!怎样通知他呢?运用 always_direct 或 never_direct 即可!
                   
                  # 1. 运用 acl 先界说出要间接或许不要间接去的网址或 IP ,
                  #   这个局部我们方才在下面曾经设定好了,便是 directip 与 directdn,
                  #  另有 twdn 与 twip 这几个咚咚!
                  # 2. 假如是间接要 Proxy 出去捉材料,可以运用 always_direct
                  always_direct allow directip directdn

                  # 3. 假如肯定‘回绝经过下层 Proxy 出去’的话,可以运用 never_direct 
                  never_direct deny twdn twip

                  # never_direct allow 表现肯定会经过下层 Proxy 来捉材料,
                  # never_direct deny  固然就表现肯定是本人向里头捉材料啰!

                   
                  现实上,这个工具可以让我们的 Proxy 变的很灵敏!假定如许的一个案例,我们本人有一个外部的 WWW 网站,这个网站的网址为 192.168.0.100 ,假如我要经过下层 Proxy 去捉材料的话,那不就完蛋了~由于这个是‘公有 IP ’的网络啊!以是,我将他写入 directip 谁人 acl 的设定当中,云云一来,呵呵!我们的 Proxy 会主动的经过本人的 route table 去到外部网络读取材料给你,您基本不需求变卦您的其他设定就可以无拘无束的读取外部与内部的主机材料!别的,假如您发明统一网络另有其他的 WWW 主机,把这些主机的 IP 或主机称号写入 directdn 或 directip 的 acl 设定当中吧!由于在统一网络时,您本人去捉肯定会比下层 proxy 捉完之后再传给你来的快吧!
                   
                  固然还不但云云啦,有的 WWW主机由于设定的干系,他们并不容许我们的下层 Proxy 来捉取材料,最罕见的例子便是相似总图对校内的 client 端开放的图书查寻的软件了!由于假如开放了这些下层 proxy 的话,那么全台湾一切的人只需将他们的阅读器 proxy 设定为成大的下层 proxy 主机,就可以运用成大的资源了!那岂不费事?由于这些资源是需求破费经费的啊!这个时分,您也就必需要让这些网址经过我们的 Proxy 本人去捉取啰!如许可以理解乎!
                   

                  限定运用 proxy 运用者与 proxy 目的的方法 (acl and http_access )
                   
                  既然 proxy 有肯定的危害存在,天然就不克不及让任何人都能运用你的 proxy 主机啰!没错!以是我们必需要控制连线的运用者!控制的办法真是复杂的很!便是运用 acl 共同 http_access 即可!在预设的状况中, squid 曾经帮我们设定好一些平安的可以连线的 port 了,别的,也只要本机可以运用 proxy 功用呢!
                   
                  那么万一假如我样让外部 192.168.0.0/24 这个网络的运用者可以运用我的 proxy 呢?该怎样设定?呵呵!您可以如许做:
                   
                  # 1. 先设定这个外部网络的 acl 称号
                  acl inside src 192.168.0.0/24
                   
                  # 2. 设定 http_access 让他可以运用
                  http_access allow inside
                  http_access deny  all
                   
                  谁人 http_access deny all 是零碎预设的项目!方才我们在 最复杂的 squid.conf 设定 时曾经将他改成 http_access allow all 了!以是请记得将他给改返来啊!否则的话,您的 Proxy 很有能够会被人家应用喔!
                   
                  这里再提供一个值得考虑的咚咚,假如您跟我一样,都是运用拨接的 ADSL ,如许一来,由于我们的 IP 都不是牢固的,假如要让我们的 ADSL 拨接的 client 可以运用我们方才设定的 Proxy 时,该怎样办?啊!如许就不克不及运用‘ acl 共同 src ’的设定方法了吗?呵呵!固然不是,您可以如许想像:
                   
                  1. 我先请求一个静态 DNS 的网络称号,比方我的 tsai.adsldns.org ;
                  2. 固然我可以间接在 squid.conf 当中设定 acl 并运用 srcdomain 来设定我的 tsai.adsldns.org ,但是很负疚的是,假如我的 tsai.adsldns.org 来衔接到 Proxy 主机时,现实上,我的拨接制 IP 反查失掉的主机称号肯定不是 tsai.adsldns.org ,云云一来则 srcdomain 一点用途也没有了;
                  3. 再换个方法,假如我写一支 script 来探测 tsai.adsldns.org 所对应的 IP 呢?而且将他写入一个自订的设定档当中,如许一来,这个文件会随时记载最新的 tsai.adsldns.org 的 IP ,云云一来,我就可以运用 acl 共同 src 的设定方法了!
                   
                  很费事吗?一点也不会,整个 script 可以像底下如许:
                   
                  [root@test root]# cd /usr/local/squid/etc
                  [root@test etc]# vi squid.allow.sh
                  #!/bin/bash
                  # 这支顺序可以用来查寻您的 IP 喔!

                  # 1. 请输出您的主机称号,请留意,假如有两个以上的主机称号,
                  #    请辨别以空格离开各个主机称号
                  hostnames='tsai.adsldns.org test.adsldns.org'
                  basedir=/usr/local/squid/etc/
                  email=root@localhost
                  squid=/usr/local/squid/sbin/squid

                  # 2. 以下为顺序段,看看就好了!
                  [ -f $basedir/squid.allow.hosts.raw ] || \
                          touch $basedir/squid.allow.hosts.raw

                  cat /dev/null > $basedir/squid.allow.hosts.now
                  runornot=no

                  for host in $hostnames
                  do
                          hostip=`host $host | awk '{print $4}'`
                          if [ "$hostip" == "out;" ]; then
                                  echo 'Proxy 回应:没有 DNS 的讯息!' |\
                                  mail -s 'Proxy 主机回应' $email
                                  exit
                          fi
                          fileraw="$basedir"/squid.allow.`echo $host|cut -d '.' -f1`
                          [ -f $fileraw ] || touch $fileraw
                          hostraw=`cat $fileraw`
                          if [ "$hostraw" != "$hostip" ]; then
                                  runornot="yes"
                                  echo $hostip > $fileraw
                          fi
                          echo $hostip >> $basedir/squid.allow.hosts.now
                  done

                  if [ "$runornot" == "yes" ]; then
                          cat $basedir/squid.allow.hosts.raw >  $basedir/squid.allow.hosts
                          cat $basedir/squid.allow.hosts.now >> $basedir/squid.allow.hosts
                          $squid -k reconfigure
                          mail -s 'Proxy 主机回应!Client IP 曾经改动' $email < $basedir/squid.allow.hosts
                  fi

                   
                  云云一来,我将可以把我的随时最新的 IP 记录在 /usr/local/squid/etc/squid.allow.hosts 这个文件当中!那么要怎样更新这个文件的内容在 squid 的设定档中呢!就如许设定即可:
                   
                  # 1. 先设定这个文件的称号吧!
                  acl allowhost src "/usr/local/squid/etc/squid.allow.hosts"
                   
                  # 2. 设定 http_access 让他可以运用
                  http_access allow allowhost
                  http_access deny  all
                   
                  然后将下面这个 squid.allow.sh 给他丢出来 crontab 当中,我预设都是在 30 分钟跑一次!
                   
                  [root @test root]# vi /etc/crontab
                  10,30 * * * * root /usr/local/squid/etc/squid.allow.sh
                   
                  如许就完好的啦! ^_^
                   

                  额定的功用参数
                   
                  除了下面提到的这些关于网页快取的功用之外, Proxy 还可以帮我们停止 FTP 的效劳获得材料喔!我们可以透过阅读器,经过 proxy 提供的 FTP 功用来登入对方主机,固然,对方主机必需要可以提供匿名登入啊!好了,我们来看看要怎样设定呢?
                   
                  # 与 FTP 有关的设定项目,次要是针对主动式连线方法来设定喔!
                  ftp_user Squid@
                  ftp_passive on

                  # 次要与 DNS 的设定值有关,假如在高负载的 Proxy 情况下,可以思索将
                  # dns_children 进步到 20 左右,这个值最大为 32
                  dns_timeout 1 minutes
                  hosts_file /etc/hosts

                   
                  另有一些额定的典范可以参考看看喔:
                鸟哥的典范:http://linux.vbird.org/linux_server/0420squid/0420squid_vbird_ex
                成大 gate.ncku.edu.tw 的 squid.conf 设定:http://turtle.ee.ncku.edu.tw/~tung/proxy/squid.conf.ncku
                电机系 turtle.ee.ncku.edu.tw 的 squid.conf 设定:http://turtle.ee.ncku.edu.tw/~tung/proxy/squid.conf.turtle
                台南学校典范 proxy.school.tn.edu.tw 的 squid.conf 设定:http://turtle.ee.ncku.edu.tw/~tung/proxy/squid.conf.school.tn

                Client 端设定
                  既然 proxy 是给阅读器用的,那么天然在阅读器下面就需求设定一些参数啰!呵呵,没错!那么怎样设定呢?由于差别的阅读器在设定 Proxy 的中央也都差别,以是底下我们引见现在比拟罕见的两款阅读器,辨别是 Netscape 以及 IE 的设定,至于其他的阅读器,请参考各阅读器的相干阐明啊!
                   

                  Netscape
                   
                  Netscape 的设定并不难,只需修正一个小中央即可!
                   
                  1. 开启 Netscape 之后,启用‘编辑’并选择‘偏好设定’项目,如下所示:

                  2.  

                     
                  3. 在呈现的画面当中,先按下‘进阶’右边的睁开形式,然后选择底下的‘署理效劳器’,则画面会呈现如下的容貌。之后,在左边的视窗当中选择‘自行设定署理效劳器的组态’项目,而且再按下‘检视’,则到下一步去设定:

                  4.  

                     
                  5. 在呈现的方框中,由于我们通常仅针对 WWW 停止快取,以是可以仅针对 HTTP 的项目停止设定!在上面的画面当中,请输出‘Proxy 主机的 IP 或许是 domain name ’,以及‘衔接的 port number’,如许就可以了。不外,假如有某些网络您想要间接让你的 PC 去捉取材料时,可以将该网络称号填写在最下方的方框中!以上面的画面为例,我的 PC 要衔接到 linux.vbird.org 以及 www.study-area.org 时,就可以不透过 Proxy 啦!这个功用也挺合适可以自行分配流量、流速的冤家!

                  6.  

                     
                  7. 再按下‘确定’之后,立即就失效了!
                   

                  Internet Explorer
                   
                  在 IE 的设定下面也一点都不难啊!
                   
                  1. 开启 IE ,然后在‘东西’内选择‘Internet 选项’:

                  2.  

                     
                  3. 在开启的视窗内选择‘连线’并点选下方的‘地区网络设定’:

                  4.  

                     
                  5. 在呈现的方框中,先在下方打勾起‘运用 Proxy 效劳器’,然后依序在网址列填入‘ Proxy 的网址或许是 IP ’以及衔接埠填入‘ Proxy 所开放的 port number’,如下方的设定即可。

                  6.  

                     
                  7. 别的,假如有某些网络不想透过这个下层 Proxy 的话,点选上图的 ‘进阶’ 那一项,在呈现的框框的最底下,可以填入你不想透过 Proxy 捉取的网站网址,如下所示:

                  8.  

                     
                  云云一来则设定好了 Proxy Server 啰!

                Server 端进阶设定
                  既然一些主机的设定曾经搞定了,接着上去又是到了 Server 的平安与进阶设定工夫啦!那么在平安的设定方面,最紧张的天然又是我们频频夸大的登录档的剖析啰!怎样剖析登录档呢?岂非又要本人入手写剖析的 scripts ??呵呵!不必费事了,我们可以运用长辈伶俐的结晶,间接有软件可以来停止剖析喔!另有,既然夸大 Proxy 能够会被滥用,以是固然要得当的办理了!这个时分的防火墙设定又要呈现啦!呵呵!赶忙来看一下怎样处置吧!
                   

                  末了材料剖析 pwebstat
                   
                  现实上, squid 曾经有浩繁的登录档剖析软件了,并且大多是收费的 (http://www.squid-cache.org/Scripts/) ,您可以按照本人的爱好来加以装置与剖析你的 squid 喔!我这里仅引见现在很常被运用的一套软件,也便是 pwebstats 这一套!你可以在 pwebstats 的官方网站下面查得更新的材料 ( http://martin.gleeson.com/pwebstats/installation.html )。不外,由于 pwebstats 在装置的时分需求运用到其他的函式库,因而,你必需要先装置 fly 这套软件才行啊!而在装置 fly 之前,又需求先装置一些必备的图示用的函式库才行,那便是相似 gd, libpng, zlib 等等的套件喔!听起来好像许多工具要做,但是现实上却十分复杂的啦!好吧!那么我们就一步一步的来装置这个 pwebstats 吧!
                   
                  装置所需求的套件材料:
                  除了零碎本人能够曾经装置好的 gd, libpng, zlib 之外,您可以由文末提供的官方网站的保持来获得最新的 fly 与 pwebstats 套件,而假如您不需求运用最新的材料,那么也可以经过 鸟哥的私房菜 提供的比拟旧的套件版原本装置 ( http://linux.vbird.org/download/ )。我这里假定您曾经将所需求的 fly-2.0.0.tar.gz 与 pwebstats-1.3.8.tar.gz 套件都下载到 /root 底下了,那么您可以如许做:
                     
                    1. 确认一下究竟有没有我们需求的一些相干套件?
                    [root@test root]# rpm -qa | egrep '(^gd-|^zlib-|^libpng-)'
                    libpng-devel-1.0.14-0.7x.4
                    gd-1.8.4-4
                    zlib-1.1.3-25.7
                    zlib-devel-1.1.3-25.7
                    libpng-1.0.14-0.7x.4
                    gd-devel-1.8.4-4
                    # 请留意,我因此 Red Hat 7.2 为例,假如您的零碎并非 RH 7.2 ,那么能够
                    # 套件前面接的版本会不太一样,不外,至多都需求有下面的几样套件便是了!
                    # 便是 gd, zlib, libpng 这三个套件啦!有的 distribution 还会有 xxx-devel
                    # 之类的称号,谁人也需求装置喔!假如发明没有装置的话,请拿出您的原版光碟片,
                    # 将他 mount 上之后,好好的将他搜索一下,而且装置上去吧!很紧张,肯定要
                    # 装置这些套件之后,底下的举措才会乐成呢!
                     
                    2. 开端装置 fly 这支顺序
                    [root@test root]# cd /usr/local/src
                    [root@test src]# tar -zxvf /root/fly-2.0.0.tar.gz
                    # ....会发生一个 fly-2.0.0 的目次
                    [root@test src]# cd fly-2.0.0
                    [root@test fly-2.0.0]# make
                    注:
                    # ....假如没有呈现底下的字样那么便是乐成了!
                    /usr/bin/ld: cannot find -lttf (或许是 ljpeng ...)
                    collect2: ld returned 1 exit status
                    make: 淫乱 [fly] Error 1
                    # 假如是呈现 warning 的话,还不打紧,由于仅只是正告罢了,以是题目不大,
                    # 但是假如呈现下面的字样时,就会连带呈现第三行的 Error ,那便是编译失败了
                    # 果然云云的话,请先寻觅一下,以下面为例,找不到 lttf ,而 lttf 实在
                    # 便是 libttf 档名啦!(以是 ljpeg 便是 libjpeg )以是给他下达:
                    loate libttf
                    /usr/lib/libttf.so.2
                    # 嗯!找到了!实在是 libttf.so.2 啦!假如你的零碎跟我的差别,有能够档名
                    # 会纷歧样,以是请按照你的荧幕表现的讯息来下达指令喔!但是这个编译顺序
                    # 有点笨,不看法这个文件,以是我们要诈骗他一下,便是下达:
                    ln -s /usr/lib/libttf.so.2 /usr/lib/libttf.so
                    # 如许就可以啦!假如另有找不到的文件,异样的方法给他保持一下即可!然后
                    # 再次的给他实行一次 make 即可!最初会发生一个档名为 fly 的实行档,
                    # 假如没有发生实行档,那便是有题目啦!请赶忙再转头去查一查能否有某些
                    # 套件没有装置,或许没有按照下面的方法树立保持文件!
                     
                    [root@test fly-2.0.0]# cp fly /usr/local/bin
                    我们先将 fly 这支顺序给他复制到 /usr/local/bin 这个目次去,可以间接运用
                    如许就 OK 了!
                     
                    3. 开端装置 pwebstats 套件
                    [root@test root]# cd /usr/local/src
                    [root@test src]# tar -zxvf /root/pwebstats-1.3.8.tar.gz
                    # 此时会发生 /usr/local/src/pwebstats-1.3.8 这个目次,这目次外面
                    # 曾经是可以实行的材料了,不需求停止任何的编译,以是我们将他间接挪动到
                    # /usr/local/ 外面去!
                    [root@test src]# mv pwebstats-1.3.8 /usr/local/pwebstats
                    [root@test src]# cd /usr/local/pwebstats
                    [root@test pwebstats]# vi pwebstats <==这个是次要的实行档!
                    # 由于我们的 perl 这个顺序言语的实行档是安排在 /usr/bin/perl ,但是
                    # 这支顺序预设是誊写为:
                    #!/usr/local/bin/perl
                    # 将下面改写为
                    #!/usr/bin/perl
                    # 如许就可以了!持续下一步!
                     
                    4. 开端设定 squid 的输入输出参数:
                    条件要件:
                    a. 我的 WWW 主页目次在 /var/www/html
                    b. 我的 pwebstats 整个材料库安排在 /usr/local/pwebstats
                    c. 我的 squid 登录档安排在 /usr/local/squid/var/logs/access.log.0
                    d. 我的 squid 的实行档为 /usr/local/squid/sbin/squid
                    e. 我的 pwebstats 输入的材料安排在 /var/www/html/pwebstats 
                    f. 我的 fly 是放在 /usr/local/bin/fly
                    [root@test pwebstats]# mkdir /var/www/html/pwebstats<=请依您的主机而定
                    [root@test pwebstats]# cd /usr/local/pwebstats/conf
                    [root@test conf]# vi squid-proxy.conf  <==这个便是次要的设定档!
                    # 底下请填写你的主机的‘昵称’!
                    server:My_Proxy_Server
                    # 这个是表现在网页下面的标题内容!
                    Server_header:我的署理效劳器
                    # squid 登录档安排的完好档名
                    logfile:/usr/local/squid/var/logs/access.log.0
                    # 我们运用的便是 squid 的登录档啊!以是这里不需改动
                    logtype:squid
                    # 方才提到的,网页材料要输入究竟下的目次
                    outdir:/var/www/html/pwebstats
                    # 一些图像文件的预设目次,这里我们运用 pwebstats 提供的目次!
                    templates:/usr/local/pwebstats/templates
                    # 嗯!我们就每天来停止一次吧!可以用 weekly 或 daily
                    interval:daily
                    # 能否在实行的进程中给他输入讯息呢?好吧!
                    verbose:true
                    # fly 安排的目次,方才我们挪动的目次啊!
                    fly_prog:/usr/local/bin/fly
                    # 本机真个要求,这里可以不必设定喔!
                    local_patt:
                    # 列出几部 client 电脑?我给他来个 50 部好了!
                    host_threshold:50
                    # 列出几部 Server (被要求材料者),照旧给个 100 部吧!
                    remote_host_threshold:100
                    # 统计的次数,给他 100 次好了!
                    item_threshold:100
                    # 做几多个 domain 的剖析?给他 15 个就够多了!
                    domain_threshold:15
                    # 底下保存预设值即可! (最初面的 dns 反查可以启动!)
                    exclude_reqs:true
                    #complete_exclude_host:
                    #complete_exclude_url_patt:
                    #complete_exclude_user:
                    dns_lookup:true
                    # 现实上,只需下面粗体字的中央写对就好了!其他的保存预设值即可!
                     
                    5. 测试实行一次看看:
                    [root@test conf]# /usr/local/squid/sbin/squid -k rotate
                    下面这个举措会将 squid 的登录档停止 logrotate 的举措喔!就会更新了
                    /usr/local/squid/var/logs/access.log.0 这个文件啦!
                    [root@test conf]# /usr/local/pwebstats/pwebstats -c  \
                    > /usr/local/pwebstats/conf/squid-proxy.conf
                    .....(略)......
                    -- Reading in log file /usr/local/squid/var/logs/access.log.0:
                       The logfile has 27 entries.
                       Processing...
                       0%                     50%                      100%
                       |-----------------------|------------------------|
                       ##################################################
                       Finished.
                    .....(略)......
                    呵呵!如许便是乐成啦!!!!
                     
                    6. 将每天实行的指令写成 scripts 吧!
                    # 我将他写在/usr/local/pwebstats/pwebstats.sh 这个文件当中喔!
                    [root@test conf]# vi /usr/local/pwebstats/pwebstats.sh
                    #!/bin/bash
                    /usr/local/squid/sbin/squid -k rotate
                    sync; sleep 5s
                    /usr/local/pwebstats/pwebstats -c /usr/local/pwebstats/conf/squid-proxy.conf
                    [root@test conf]# chmod 755 /usr/local/pwebstats/pwebstats.sh
                    [root@test conf]# vi /etc/crontab 
                    # 参加底下这一行吧!
                    59 2 * * * root /usr/local/pwebstats/pwebstats.sh >/dev/null 2>&1
                     
                  很复杂吧!如许就装置终了了!不外,由于我们装置的 fly 能够有点题目啦!就我的零碎来说,这个 fly 总是编的怪怪的~假如您的 fly 无法编译乐成的话,那么间接由鸟哥的私房菜提供的文件来直些下载运用算了! http://linux.vbird.org/download 找一下 fly 的 binary ,下载终了之后,请记得:
                   
                    gzip -d fly.gz
                    chmod 755 fly
                    mv fly /usr/local/bin
                   
                  如许就可以了!而方才我们不是有实行过一次吗?你的登录材料会被安排在 /var/www/html/pwebstats 这个目次当中!假设我的首页便是 /var/www/html/ 的话,那么我的网址列输出 http://myIP/pwebstats 就可以看到相似下图:
                   

                   
                  在按下了‘Day 1’之后,会呈现如下的画面:
                   

                   
                  呵呵!更细致的内容您就可以自行看看啰!加油的啦!!
                   

                  末了材料剖析 sarg
                   
                  除了下面引见的 pwebstats 之外,实在另有一套相称棒并且功用相称刁悍的剖析软件,那便是 Squid Analysis Report Generator ( Squid 剖析陈诉制造者),他的官方网站在:http://web.onda.com.br/orso/sarg.html,他的原理相称的复杂,便是将 logfile 拿出来,然落伍行一下剖析,根据差别的工夫、网站、与抢手网站等等来停止材料的输入,由于输入的后果真实是太细致了!以是.....呵呵!假如你是老板的话,用这个软件会让你‘爱不释手’啊!由于每团体的每个小举措都市被记载上去,我的天呐!当我第一次看到这个剖析的画面时,真的给他吓了老大一跳得说~由于连每个 IP 在‘每个小时所连上的每个网站材料’都有记录~~惧怕了吧~
                   
                  不外,有长处就有缺陷啦!怎样说呢?由于 SARG 功用太弱小了,以是记载的‘材料量’就真实是多了点,假如您的 Proxy 网站属于那种很大流量的网站时,那么就不要运用‘日报表’,也便是每天发生一份报表的那种方法!那么由于材料一天能够会有几 MB 的材料,一两个月还没有干系,假如记载了几年,那么光是这些记载就会花失好几 GB 的硬碟空间了~别的,也可以运用‘掩盖旧有材料’的方法不要保存旧材料,如许也可以节流硬碟的空间啦!
                   
                  这个 SARG 软件曾经出到 1.4 版,更好的是,他援助‘多国语系’呢!现在鸟哥曾经翻译了一台分的材料,盼望能对各人有点协助啊!关于这个套件,你可以到官方网站上下载最新的版本 ( http://web.onda.com.br/orso/sarg.html ) ,而鸟哥这里也有提供啦!我提供的版本是 1.4 的( 在 2003/03/16 释出的版本 ),曾经颠末了 patch (套件修补) 的举措,而且参加中文明的言语文件,以是间接下载就有中文表现啰!请到文件下载中央下载:
                     
                  整个装置与实行的进程很复杂的!我们来试看看吧!(注:假定您曾经将 sarg-1.4.taiwan_big5.tar.gz 安排在 /root 底下了!):
                   
                  # 1. 解紧缩:
                  [root@test root]# cd /usr/local/src
                  [root@test src]# tar -zxvf /root/sarg-1.4.taiwan_big5.tar.gz
                  ....(略).....
                  这个时分会发生一个名为 sarg-1.4 的目次出来!
                   
                  # 2. 设定、编译与装置
                  [root@test src]# cd sarg-1.4
                  [root@test sarg-1.4]# mkdir /usr/local/sarg
                  [root@test sarg-1.4]# ./configure --prefix=/usr/local/sarg  \
                  > --enable-mandir=/usr/local/sarg/man1  \
                  > --enable-bindir=/usr/local/sarg/bin  \
                  > && make && make install
                  如许可以疾速的设定、编译与装置,一次完成!
                  装置的材料当中:
                  a. 设定档 /usr/local/sarg/sarg.conf
                  b. 实行档 /usr/local/sarg/bin/sarg
                  c. 阐明档 /usr/local/sarg/man1/sarg.1
                   
                  # 3. 额定设定 ( 阐明文件的途径 )
                  [root@test root]# vi /etc/man.config (偶然为 man.conf 档名差别!)
                  新添加这一行
                  MANPATH /usr/local/sarg
                   
                  置信吗?如许就装置终了了!很疾速吧!接上去你要做的便是设定啰!设定之前请先留意您的相干材料,以我为例,我的相干材料为:
                   
                  • 登录档运用 /usr/local/squid/var/logs/access.log.0 这一个颠末 rotation 的文件;
                  • 盘算的暂存档安排在 /tmp 底下;
                  • 我的 SARG 输入的首页安排在 /var/www/html/sarg 这个‘目次’之中;
                  • 我想要让我的网页以 big5 的字元编码款式输入!
                   
                  这个时分我只需修正一个文件,也便是 /usr/local/sarg/sarg.conf 即可,内容有点像如许:
                   
                  [root@test root]# mkdir /var/www/html/sarg
                  [root@test root]# vi /usr/local/sarg/sarg.conf
                  # 这个文件是 sarg 的设定档,外面曾经将整个设定参数讲的很清晰了,
                  # 你可以按照你的状况来调解这个文件的参数,无论怎样,这个文件外面
                  # 应该至多要有底下这几个材料,其他的请自利用用喔!
                  language Taiwan_big5
                  access_log /usr/local/squid/var/logs/access.log.0
                  title "Squid 运用形态陈诉"
                  temporary_dir /tmp
                  output_dir /var/www/html/sarg
                  overwrite_report no
                  mail_utility /bin/mail
                  topsites_num 100
                  exclude_codes /usr/local/sarg/exclude_codes
                  max_elapsed 28800000
                  charset big5
                   
                  [root@test root]# /usr/local/sarg/bin/sarg
                  SARG: 制造陈诉完成于 /var/www/html/sarg/2003Apr10-2003Apr11
                   
                  试跑一下,嘿嘿!曾经乐成的输入材料啰!这个时分,请在您的阅读器下面输出 http://your.domain.or.IP/sarg 即可看到方才跑出来的材料了!很棒吧!好了,我总不克不及经常如许手动的跑剖析材料吧?OK!那么怎样将这个举措放到 crontab 当中呢?!呵呵!我们底下写了一支 script 来同时跑 pwebstats 及 SARG 这两个玩意儿~这支 script 是长如许的:
                   
                  1. 树立这支顺序: 我将他取名为 /usr/local/squid/etc/squid.logrotate
                  [root@test root]# vi /usr/local/squid/etc/squid.logrotate
                  #!/bin/bash
                  # 这支顺序是要写来做为 squid 的 log files analysis 之用的!
                  # 实行的办法为 crontab 啰!
                  # vi /etc/crontab 参加底下这一行:
                  # 59 23 * * * root /usr/local/squid/etc/squid.logrotate
                   
                  # 1. parameters settings
                  PATH=/sbin:/bin:/usr/sbin:/usr/bin
                   
                  # 2. stoping and rotating squid
                  sleep 50s
                  /usr/local/squid/sbin/squid -k rotate
                  /usr/local/squid/sbin/squid -k shutdown
                   
                  # 3. pwebstats processing
                  /var/www/html/pwebstats/pwebstats -c  \
                          /var/www/html/pwebstats/conf/squid-proxy.conf \
                          > /dev/null 2>&1
                   
                  # 4. sarg processing
                  /usr/local/sarg/bin/sarg > /dev/null 2>&1
                   
                  # 5. starting squid
                  sleep 11s
                  su nobody -c "/usr/local/squid/bin/RunCache &" > /dev/null 2>&1
                   
                  # 2. 改动文件权限与参加 crontab 排程当中!
                  [root@test root]# chmod 744 /usr/local/squid/etc/squid.logrotate
                  [root@test root]# vi /etc/crontab
                  参加这一行:
                  59 23 * * * root /usr/local/squid/etc/squid.logrotate
                   
                  这一支顺序有什么特点呢?由于我是在 23:59 开端实行,并且实行时期先等候 (sleep) 50 秒钟,且任务终了后再等 10 秒钟,也便是说,我的 squid 的 log 文件肯定会因此天为单元来分开,以是我们所看到的材料就会‘一”天一天’的表现,而不会跨了差别的两天了!我是比拟喜好如许啦!但是每团体的观念差别,您可以自在分配喔!
                   

                  防火墙的计划
                   
                  现实上, Proxy 自身就曾经可以做为一个防火墙啦!为何还需求针对 Proxy 来停止防火墙的计划?话是如许没错啦!但是我们的 Proxy 是开放 3128 与 3130 这两个 port 啊!您总不克不及这两个 port 没有开放吧!以是啰,要让您的 Proxy 可以对里面开端效劳,就需求启用 3128 这个规范的 Proxy port 啰!以是需求在您的防火墙 scripts 当中参加这一行:
                   
                    /sbin/iptables -A INPUT -p TCP -i eth0  --dport 3128:3130 -j ACCEPT
                   
                  普通来说,如许就可以正常的启动 Proxy 的效劳了!那么至于 Proxy 自身提供的防火墙内容呢?呵呵!就应用 acl 共同 http_access 就可以控制运用者的运用空间了!真是相称的具有弹性啊! ^_^
                   

                  NAT 与 Proxy 透过 transparent proxy 设定放慢网络传输
                   
                  让我们如今来想像一个连线形态,便是你有一整组外部网络,而这个外部网络都是透过 NAT 主机连线出去的。那么我们谈过,便是在一个外部网络很大的状况下,运用 Proxy 是一个很不错的选择,由于至多他可以加重频宽的负荷啊!OK!那么我们就搭建 Proxy 好了,不外,遗憾的是,搭建 Proxy 的时分,也要运用者在阅读器下面设定了你搭建好的阅读器才有效啊!不然那部 Proxy 没有人运用的话,架了也是白费!好了,那么有没有方法在‘运用者不需求在阅读器下面停止任何设定,就可以完成以 Proxy 协助运用者捉取 WWW 材料 ’呢?固然有啦!那便是 Transparent Proxy 啦!也有人翻译成‘通透式署理效劳器’,为什么这么翻译我也不知道??不外,他的原理是如许的:
                   
                  • 当运用者颠末 NAT 效劳器来连线进入 Internet 时,假设运用的 Internet 协议为 80 (也便是 WWW) ,那么就将这个要求交给 Proxy 来任务,以到达署理效劳器的功用。
                   
                  呵呵!也便是说,当运用者是颠末 NAT 主机连线出去时,只需让 NAT 主机发明‘咦!你是要去捉 WWW 的材料对吧!好!那么这个举措由 Proxy 主机帮你搞定!’云云一来,运用者基本就不需求在阅读器下面设定 Proxy 的相干材料,由于这个举措是‘由 NAT 主机本人决议的’,以是只需在 NAT 主机下面设定妥立即可,运用者不用设定任何材料呢!呵呵!真是不错!那么要怎样停止呢?只需两个步调即可:
                   
                  1. 设定 Proxy 主机:

                  2. 设定 proxy 主机固然便是要又修正 squid.conf 啰!而这个设定相称的复杂喔!只需几行就可以搞定:
                     
                    [root@test root]# vi /usr/local/squid/etc/squid.conf
                    # 这里请填入你的 Proxy 主机称号 与 port !
                    httpd_accel_host vbird.adsldns.org
                    # 由于我们是要停止 WWW 的材料快取,以是 port 固然便是 80 啰!
                    httpd_accel_port 80
                    # 这个很紧张!由于设定 httpd_accel_host 之后, cache 的设定会主动被停止,
                    # 必需要加上这个设定为 on 之后,才干提供 cache 的功用!
                    httpd_accel_with_proxy on
                    httpd_accel_uses_host_header on

                    [root@test root]# /usr/local/squid/sbin/squid -k reconfigure

                     
                    统共便是这四行啦!如许就设定好一个 squid 的 transparent proxy 的功用啰!
                     
                  3. 设定 NAT 主机的 port map :

                  4. 再来让我们到 NAT 主机下面看看先,由于需求将 80 这个 port 交给 Proxy 的 3128 来帮助帮忙,以是你的防火墙 script 必需要参加这一段才行:
                     
                    iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.0.0/24 \
                    --dport 80 -j REDIRECT --to-ports 3128
                     
                    留意一下,谁人 eth0 是‘你的 NAT 对内的网络卡安装代号’,至于 192.168.0.0/24 则是你的外部网络,请按照你的主机实践形态来设定喔!
                     
                  完全不需求疑心!如许一来,您的 client 端完全不需求停止任何的设定,立即就可以运用 Proxy 的益处啰!很不错吧!呵呵!
                   

                  squid 的留意事变
                   
                  运用署理效劳器后,阅读外洋的网页应该是可以变快的!但是,你要警惕几件事:
                   
                  1. 若 squid 内设定的运用空间满了,则 squid 将不会运作!
                  2. 若 squid 的记录档太大了,则任务服从会变慢!
                   
                  由于我们曾经装置的 pwebstats 了,而且曾经设定好了 squid -k rotate 的任务,以是第二个题目并不严峻,严峻的能够会是第一个题目!以是有能够我们会自行手动的删除 Proxy 的快取目次,怎样删除呢?固然下面曾经提过了一些留意事变,这里我们再次的阐明吧!
                   
                  1. 中止 squid 
                  [root@test root]# kill -9 `cat /usr/local/squid/var/logs/squid.pid`
                  (能够会反复做 5 次左右才会完全砍失!)

                  2. 删除暂存目次 (这个目次请依您的零碎而定!)
                  [root@test root]# rm -rf /usr/local/squid/var/cache1
                  [root@test root]# mkdir /usr/local/squid/var/cache1

                  3. 重修快取目次偏重新启动
                  [root@test root]# /usr/local/squid/sbin/squid -z
                  [root@test root]# su nobody -c "/usr/local/squid/bin/RunCache &"

                   
                  其他的发起:
                     
                  1. 关于下层署理效劳器:用 cache_peer 设定下层署理效劳器的数量不要太多,只需 2-5 个之间就好了,并且下层署理效劳器肯定要找间隔你近来,而且具有较大频宽的主机,假如是在台南,那 proxy.ncku.edu.tw 便是不错的主机,或许向您的 ISP 讯问喔;

                  2.  
                  3. 关于暂存目次的设定:以 cache_dir ufs 设定的目次,最好是独自割出来的约 1-2 GB 的硬碟槽,以我为例,我将别的一台主机的 30GB 的硬碟割两槽给 proxy 用,而每一槽只要 2GB ,辨别定名为 proxy1 与 proxy2 ,则可以写成
                    1.  
                      cache_dir ufs /proxy1 2000 16 256
                      cache_dir ufs /proxy2 2000 16 256
                       
                    由于分红两槽来存取,以是全体服从上会比拟好,但这是针对普通比拟大型的署理效劳器的设定了,我们这个小主机就不必云云设定(但是服从真的有差哩!)。
                     
                  4. 善用 acl, always_direct, never_direct:就好像下面提到的,由于你的目标差别,以是会运用到差别的 proxy 作为你的下层署理效劳器,假如你发明你的下层署理效劳器无法针对你常上的网站来求取材料时,就将谁人网站参加你的 always_direct 吧!别的,也可以运用 cache_peer_access 来处置喔!

                  5.  
                  6. 在 ./configure 的时分添加 --enable-async-io=80 这一个指令:根本上,添加这个指令之后,将可以使您的磁碟多一个 type ,亦便是 aufs ,这个 type 的速率较快!

                重点回忆
                • 署理效劳器 ( Proxy ) 最大的功用是在署理运用者向 Internet 要求 Web page 的材料,同时告竣 Web pages 的快取记载 (Cache) ,以到达假性的频宽节流目标;别的,还可以额定的告竣防火墙的功用;
                • 现在 Unix Like 的呆板中,做为 proxy 功用的效劳器软件简直都是运用 squid ,而 squid 仅需求设定 squid.conf 这个设定档即可运用;
                • 设定 Proxy 时,假如能以频宽更大的下层 Proxy 来协助,将有助于 Client 端阅读速率的提拔;
                • 以防火墙的功用来说, Proxy 运用使用层的方法来告竣防火墙功用,至于 iptables 则是更为底层的 TCP/IP 剖析的方法;
                • Proxy 关于硬体的要求较高,尤其是硬碟的 partition 与影象体,普通来说,一个 cache 目次最好便是一个 partition ,而一个 cache partition 最好容量在 2-4 GB 之间即可;
                • transparent proxy 的功用便是可以让 client 端不需求设定阅读器的 proxy 功用,即可停止 proxy 的任务;

                参考资源
                本章习题训练 ( 要看答案请将滑鼠挪动到‘答:’底下的空缺处,按下左键圈选空缺处即可观察 )
                • 请阐明为何 Proxy 可以提拔网络的 WWW 阅读速率?
                • 万一 squid 发作了题目,叨教我该怎样找出题目点?
                • 请阐明 Proxy 效劳器的功用为何?
                • 试阐明为何 Proxy 效劳器可以提拔网络之内的网络平安性?

                • 前去参考用解答
                浅易 Proxy Server 搭建

                2001/??/??:第一次完成日期,实在曾经遗忘了~
                2001/11/09:参加添加 Proxy 效能的办法,便是运用多颗硬碟做成的材料贮存方法!
                2003/04/04:完成大幅度的改写举措!参加了完好的 Proxy 阐明,与 pwebstats 的搭建!
                2003/04/11:完成了另一个末了剖析的弱小软件 SARG 剖析套件
                2003/09/16:微幅调校一下版面!
                2004/11/12:修订 transparent proxy 的设定题目, httpd_accel_with_proxy on
                 
                     
                中国存储网 ChinaStor.com排版整理
                原文作者鸟哥,主页,更多Linux学习材料在线看:Linux零碎办理员手册 - Linux下令大全 - Linux挪用大全- Linux专栏 - 国产Linux