📄 0420squid.htm
字号:
<br>但是,如果对于学校单位那原本频宽就不足的环境中,架设 Proxy 来让校内的网路速度提升,呵呵!就是有那个必要性的啦!所以要不要架设
Proxy 呢?请好好的依据您的环境来考量喔!
<br>
<br>
<hr WIDTH="100%"><a NAME="theory_hardware"></a><font color="#000099"><font size=+1>所需要的硬体要求与最佳硬体配置方式</font></font>
<br>
<br>假设您一定需要架设 Proxy ,那么到底什么样的配备是必需的呢?我们刚刚提到
Proxy 对于硬体的要求相当的高!因为我们架设 Proxy 的目的就是希望能够加快网路的传输效能嘛!因此,虽然
Proxy Server 几乎在任何的 Linux 系统上面都能跑 ( 例如我的 P 133 MMX ) ,但是您的
Proxy Server 最好还是能有以下的硬体等级∶
<br>
<ul>
<li>
CPU 最好能够 P III 550 以上等级;</li>
<li>
RAM 最好能够大于 512 MB ,这也是很重要的一个硬体参数!</li>
<li>
Hard Disk 最好能用 SCSI 介面的,因为速度与稳定度都比较好!如果不能的话,那么
IDE 介面的硬碟由于目前速度也越来越快,所以使用 IDE 也没有问题,但是最好是『<font color="#000066">多颗硬碟</font>』的架构,例如我总共需要
30 GB 的硬碟空间,那么最好是 10 GB 的硬碟三颗这样的架构较佳!为什么呢?由于
cache 对于 Proxy 的重要性相当的大,所以 <font color="#000066">cache 读取速度越快的话,代表
Proxy 的效能也会越好</font>!那由于 Proxy 对每笔资料写入 cache 时,是『<font color="#000066">平均分摊在各个
cache 的目录中</font> 』,所以当然硬碟数越多越好棉!例如我原本有 10 MB
的资料要写入 cache ,那么这 10MB 写入同一颗硬碟快?还是 10MB 被分散写入三颗硬碟,因此每一颗硬碟仅记录
3.3MB ,那一个快?当然是三颗硬碟的架构会比较快,因为我有三个磁头在帮我写入资料嘛!^_^!请注意喔!<font color="#000066">这里我们说的是『多颗硬碟』而不是『多个
Partition 』喔</font>!因为如果我将 30GB 的硬碟切割成三块 partition 的状态下,由于还是只有一个磁头啊,所以写入的速度差异不会很大!这里要特别留意与了解呢!</li>
<li>
网路卡与网路周边最好使用 GBytes 的网路卡,当然啦,一般的公司行号应该不需要用到这样的网路卡才是!我这里指的是较高档的配备啦!</li>
</ul>
<br>事实上,最重要的还是 RAM 与 HD 这两样,当然,网路介面也绝对不能忽视就是了!针对硬碟来说,最好使用
SCSI 这个稳定的介面,当然,使用 IDE 也是不错啦!但是要注意保养就是了。此外,就如同上面提到的,在硬碟的架构上是相当的重要的!一般来说,使用磁碟阵列应该是不错的想法,如果没有办法的话,使用多颗硬碟取代单颗硬碟的架构,在效能上也会有不错的显著提升呢!
<br>
<br>既然硬碟这么重要,我们也约略谈一谈硬碟的基础规划应该有哪些需要注意的呢?
<br>
<ul>
<li>
<font color="#000066">最好在架设 Proxy 时,将整体主机的规划做好,并且让
Proxy 主机的服务简单一点,就是仅负责 Proxy 就好了!</font></li>
<li>
<font color="#000066">每颗硬碟的容量不需要太大,大约在 9 GB 以内即可,此外,最好将硬碟分割一下,一块
Partition 差不多在 2~4 GB 之间即可,因为切太大的话资料的搜寻耗费时间较长,但是
Partition 太小又可能造成空间的浪费~所以差不多的大小就限制在 2~4 GB 吧!</font></li>
<li>
<font color="#000066">我们刚刚上面有提过,cache 是放置在某个目录下的,而最好一个目录底下就是独立的一个
partition 。此外,由于 cache 所在的硬碟常常会有资料的存取,因此可能此一硬碟的损耗率会比较大,所以这个
cache 所在的硬碟最好不要跟重要资料档案,例如 /, /etc, /usr, /home 等等重要的系统档案放在一起,以免危险啊!</font></li>
<li>
<font color="#000066">也由于 cache 所在的硬碟资料存取太密集了,所以,硬碟的选择上面需要
(1)转速不能太低; (2)磁头的机械臂需要可以忍受频繁的动作; (3)发热量不可太大,或者可以考虑加装硬碟用风扇。</font></li>
</ul>
<br>
<hr WIDTH="100%"><a NAME="theory_proxynadnat"></a><font color="#000099"><font size=+1>代理伺服器与
NAT 主机的差异</font></font>
<br>
<br>或许您已经发现了一件事,那就是∶在内部区域网路使用私有 IP 的 Client
端不论透过 Proxy 或者 NAT 均可以直接取得 WWW 这个 Internet 的服务,那么
NAT 与 Proxy 有没有什么不同的地方啊?他们不都是可以让内部的 Client 连接出去吗?其实这两个玩意儿差异性是『相当大』的∶
<br>
<ul>
<li>
<font color="#000066">NAT 是一个利用 TCP/IP 的 packet filter ( 封包过滤机制
)来进行封包处理的一个机制,所以他是『直接分析 TCP/IP 』,所以在设定防火墙的时候,他的弹性比较高,只要能过
NAT 这一关,那么大部分的网路服务都可以使用,因为 TCP/IP 是比较底层的协定啊!要知道的是,TCP/IP
上头还有 port 、还有 IP 等等的资讯,单是 port 就可以让我们使用很多的不同的协定了!例如
port 20, 21 是 FTP 啊, 80 是 WWW 啊等等的!所以 NAT 能做的事情事很多的!</font></li>
</ul>
<ul>
<li>
<font color="#000066">至于 Proxy 就不一样了, Proxy 主要透过类似 Squid
这一类的软体来达成的一个服务,基本上,一般来说他是透过 port 3128 来进行资料的监听与传输,单是看到这个
port 3128 就应该要晓得他仅是一个 daemon 而已。Proxy 已经是应用层这个阶段的网路项目了,所以他并没有去分析
TCP 的封包,只要 Client 来源合乎他的需求 (例如 IP 是被支援的 ) ,那么他将透过
daemon 的功能帮使用者达成使用者所想要的任务!所以说,能不能做某些事情,与
Proxy 伺服器上面负责的那个 daemon 是有关的!万一 daemon 无法进行 FTP 资料的取得,那么您再怎么努力的尝试上网也是枉然的啊!</font></li>
</ul>
<br>这样说有没有比较有点概念了呢?NAT 是由较底层的网路去进行分析的工作,至于通过
NAT 的封包是干嘛用的, NAT 不去管他!至于 proxy 则主要是由一个 daemon 的功能达成的,所以必需要符合该
daemon 的需求,才能达到某些功能!
<br>
<br>谈完了这些基本的原理之后,我们可得来玩一玩 Proxy 了吧?!事实上,目前有很多的
Proxy 软体,例如 <a href="0360apache.php">apache</a> 也有提供 proxy 模组的功能喔!但是,最好不要用
Apache 当作您的 Proxy server ,因为.....效能真的太差了~会让您的网路停顿的更厉害~目前
Proxy 的伺服器软体当中,以 squid 这个咚咚最出名,会出名的原因是因为他的效能高!真的很不错的一套软体,所以底下我们就针对
squid 来做说明吧!</ul>
<hr WIDTH="100%"><a NAME="package"></a><font color="#000099"><font size=+1>套件安装</font></font>
<ul>我们的 Proxy 伺服器软体选择 squid 这个效能很高的套件来安装,目前 (
2003/03 ) Squid 已经出到了 2.5 版了,您可以到官方网站上面下载,或者是到中山大学的
FTP 网站上面下载,底下提供一下联系的网址∶
<br>
<ul>
<li>
官方网站∶<a href="http://www.squid-cache.org/Versions/v2/2.5/" target="_blank">http://www.squid-cache.org/Versions/v2/2.5/</a></li>
<li>
中山大学∶<a href="http://ftp.nsysu.edu.tw/Unix/Proxy/squid/source/STABLE/" target="_blank">http://ftp.nsysu.edu.tw/Unix/Proxy/squid/source/STABLE/</a></li>
</ul>
<br>同样的, squid 也有两种主要的安装模式,分别是 RPM 版本与 Tarball 版本,不过,由于我们会加入一些不同的参数设定值,所以预设的
RPM 档案并无法满足我们的需求,除非使用 SRPM 来进行重新 configuration 的动作,否则比较不能让我们满意啦!因此,习惯上我们都是以
Tarball 的方式来进行编译、设定与安装,所以底下鸟哥会比较偏重以 Tarball
的安装来进行介绍,如果有兴趣的话,可以尝试以 SRPM 进行修订的工作喔!
<br>
<br>
<hr WIDTH="100%"><a NAME="package_rpm"></a><font color="#000099"><font size=+1>使用
RPM 方式安装 squid</font></font>
<br>
<br>一般来说,使用您的 Linux distribution 提供的 Squid 也就够了,但是,就如同上面提到的,可能会有一些设定值您无法自由自在的设定,不过。不过,无论如何,以
RPM 来安装是最简便的啦!那么就请拿出您的原版光碟,将他 Mount 上来,查询一下是否有
squid 字样的档案名称?没错,就将他安装上去吧!目前主要的几个 distribution
都有提供这个套件,所以应该可以很快的找到这个套件才是!怎么使用 RPM 呢?没这么难吧!
<br>
<table BORDER COLS=1 WIDTH="550" BGCOLOR="#000000" >
<tr>
<td><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
root]#</font><font color="#FFFF00"> rpm -ivh squidxxxxxxx</font></font></font></td>
</tr>
</table>
<br>一再地强调, RPM 是粉重要的,请好好的使用他吧! ^_^!这个指令就安装完毕棉!只是要注意的是,由于
squid 2.2 版以前的设定与 2.4 版以后的设定差异性很大,所以请特别留意您的
squid 版本,如果是使用旧的 Linux distribution 的使用者,例如 Red Hat 6.xx
版本,或者是 Mandrake 7.xx 版本,那么就不要再以 RPM 来升级了!直接使用底下的
Tarball 吧!反正才安装一个档案,还不会太难啦!
<br>
<br>
<hr WIDTH="100%"><a NAME="package_tarball"></a><font color="#000099"><font size=+1>使用
Tarball 方式安装 squid</font></font>
<br>
<br>一般来说,我还真是蛮喜欢中山大学的 FTP 站 ( 怪了,好像一直在帮人家打广告!
^_^ ) 没办法,我们南部人嘛!当然是南部的 FTP 站比较亲切棉!这个时候,您可以直接在
Linux 底下使用 wget 来取得我们所需要的 squid 喔!目前我取得的版本是 2.5.STABLE2
版本,取得的方法如下∶(注∶您也可以到鸟哥的私房菜下载 <a href="../download/index.php#squid_ap">http://linux.vbird.org/download</a>)
<br>
<table BORDER COLS=1 WIDTH="550" BGCOLOR="#000000" >
<tr>
<td><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
root]#</font><font color="#FFFF00"> wget \</font></font></font>
<br><font face="细明体"><font color="#FFFF00"><font size=-1>http://ftp.nsysu.edu.tw/Unix/Proxy/squid/source/STABLE/squid-2.5.STABLE2.tar.gz</font></font></font></td>
</tr>
</table>
<br>好了,这个档案应该就是 /root/squid-2.5.STABLE2.tar.gz 棉!那么就开始来给他安装吧!过程很简单啦,重要的地方只有在下达
./configure 的地方需要很多的额外参数支援就是了!
<br>
<table BORDER COLS=1 WIDTH="550" BGCOLOR="#000000" >
<tr>
<td><font face="细明体"><font color="#FFFFCC"><font size=-1>0. 解压缩∶</font></font></font>
<br><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
root]# </font><font color="#FFFF00">cd /usr/local/src</font></font></font>
<br><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
src]# </font><font color="#FFFF00">tar -zxvf /root/squid-2.5.STABLE2.tar.gz</font></font></font>
<br><font face="细明体"><font color="#FF6666"><font size=-1># ....(略)....会产生一个
squid-2.5.STABLE2 的目录</font></font></font>
<br><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
src]# </font><font color="#FFFF00">cd squid-2.5.STABLE2</font></font></font>
<br><font face="细明体"><font color="#FFFFFF"><font size=-1> </font></font></font>
<br><font face="细明体"><font color="#FFFFCC"><font size=-1>1. 开始设定参数∶</font></font></font>
<br><font face="细明体"><font size=-1><font color="#FFFFFF">[root@test
squid-2.5.STABLE2]# </font><font color="#FFFF00">export CFLAGES='-O2 -mcpu=i586'</font></font></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -