用DNSPod和Squid打造自己的CDN(转)

本篇教程是顺应大家的要求而写。教程内大部分都是奶罩在为VeryCD等大型网站构建CDN时所累积的经验。在一些概念方面可能会有一些错漏,希望大家指正。
本教程面对的对象是个人站长,所以各方面会力求傻瓜化,让大家都能看懂。当然,前提是需要你要有一颗好学的心,还有坚韧的毅力。techteamhut.5d6d.net' v1 A/ T# w  C6 n+ |* e9 n+ D
另外一方面,本篇文章基本不会涉及到Windows的内容,整套系统将会是架构在CentOS Linux 5上。别问我为什么不是Windows,因为Windows只能拿一个字形容:烂。不喜欢Linux,或者认为Linux学习起来有困难的朋友,可以到此打住。
可能有人要问,为什么是Linux,而不是FreeBSD?因为FreeBSD不管从系统的优化配置,还是文件系统的性能,都不合适初学者。
先前说过,本篇文章针对的是没有多少技术基础的个人站长,所以文章内会有Linux的安装、基本操作等一些东西教给你,让你学得简单,时间花得有价值。
再罗嗦一下,在接下来的时间内你将要面对一个黑漆漆的,全是英文的屏幕,请做好心理准备。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' B4 `* N! _/ R! w5 C
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net4 K9 X7 b: u8 d7 C0 z: l  K

注意:本篇教程将*不会*涉及到以下内容:
1.动态内容(比如BBS)湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net& e. @8 v" F. y$ _6 f" A/ x
2.大文件(比如软件下载站的软件)

第 1 章 CDN和智能DNS
1.什么是CDN. v4 }$ S# P# T  z! G
简单来说,CDN就是能让你的网站访问起来更加快的东西。例如网通用户访问了你在网通的CDN服务器上面某个文件,CDN系统就会判断这个文件是否被请求 过,如果被请求过,在没有失效的情况下,就会从系统的缓存里面读取这个文件并返回给用户。如果这个文件没有被请求过,那么CDN会自动从你的主服务器上面 获取这个文件,然后缓存到CDN系统内,再给用户返回。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net" f- A; G% b  @
看到这里,聪明的朋友就会问:如果网通的CDN服务器,访问我在电信的主服务器速度很慢,那么是不是用户第一次请求这个文件的时候会很慢?嘿嘿,恭喜你, 的确是这样。并且,在文件没有完全缓存到CDN上面的时候,所有访问这个文件的用户都会出现错误,比如网页打开不完整,文件下载到一半等。但只要你的网站 访问量足够大,这个影响对用户来说是微不足道的。+ 湖南.大学生科技创新平台5 u! P" |9 k+ j2 l: e" \1 o
然后还有朋友会问,为什么商业的CDN不存在这个问题?因为,商业的CDN有自己租用的线路,自己走路由。这就是商业CDN卖得如此之贵的原因。当然,如何走这个路由,搭建这么一个大型的CDN系统,不在本文的讨论范围以内。

2.什么是智能DNS,什么是DNSPod+ 湖南.大学生科技创新平台& l0 t5 Q1 D- O! X' [; @3 v
智能DNS的原理很简单:在用户解析一个域名的时候,判断一下用户的IP,然后跟DNS服务器内部的IP表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP地址。
DNSPod是奶罩同学旗下的网站,提供免费的智能DNS服务。你只需要把你域名的DNS从原来的注册商改为DNSPod,马上就可以享用这个服务了。
注意了:DNSPod只提供域名的智能解析服务,不提供域名也不提供服务器,千万不要以为把你的域名转到DNSPod就能成为双线了。

湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' n, |: A$ C# l! `; ?
第 2 章 前期准备

湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net- N" }3 S6 I8 W7 L. P! Q
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* V- p- ^$ \# f5 f/ L
要继续后面的步骤,你必须要准备以下东西:
域名一个
服务器两台,电信网通各一台,一般的P4即可,内存2G以上湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 m0 K9 S0 C3 S5 M3 k- C- w
空白DVD R+光盘一张(或者CD-R 6张)湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net- i& V, E1 N: t% ?, Q# Z1 T7 i
DVD刻录机一个(或者CD RW刻录机一个)

然后,你还需要去下载CentOS的ISO镜像
随便在下面的镜像地址挑一个,暂时没有国内的,建议挂一个迅雷慢慢下
2 i$ @4 y$ J* e: Z
http://ftp.ncnu.edu.tw/Linux/CentOS/5.0/isos/i386/ + 湖南.大学生科技创新平台9 v8 w. X/ k1 u% u; b# c$ ]
http://ftp.cse.yzu.edu.tw/pub/CentOS/5.0/isos/i386/ 湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) |1 R8 e; N1 q: C
http://ftp.cs.pu.edu.tw/Linux/CentOS/5.0/isos/i386/ 湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) v) Z9 [" f6 ]/ J
http://ftp.tcc.edu.tw/Linux/CentOS/5.0/isos/i386/ + c0 f) U. p/ }+ I, b
http://mirror.mirr4u.com/centos/5.0/isos/i386/
http://mirror.tini4u.net/centos/5.0/isos/i386/ 湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net9 O( P5 b* y, o1 i: p: k0 e4 l; I9 M
http://mirror.averse.net/centos/5.0/isos/i386/湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net% e% M1 H, o5 k% `  U
+ 湖南.大学生科技创新平台# a1 J7 ]) U* {$ V* F) N
打开上面的网址后,你可以发现类似下面的文件名湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net  {7 x$ t: |3 ~% \
CentOS-5.0-i386-bin-1of6.iso湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) D$ [- N2 ~& e$ O5 ]

CentOS-5.0-i386-bin-6of6.iso+ 湖南.大学生科技创新平台, F& o. X) c% @
这些是CD镜像,一共有6个,下载刻盘比较浪费资源,所以我建议下载下面这个DVD镜像. H& c( i) Y# H( G, I2 L( L
CentOS-5.0-i386-bin-DVD.iso+ 湖南.大学生科技创新平台6 E8 K9 S9 G* E9 v( }2 S& L
废话不多说,下载回来后刻盘即可。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net, v  i& j. F1 v4 I) X
湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net* M4 B& W- X6 ~5 d
之后,为资源做一个安排,所以下面将会做一个假设:
假设域名为naizhao.com
假设两台服务器,电信的服务器为A,网通的服务器为B湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net& _8 o! X" i# K5 S
假设A服务器为内容服务器,B服务器为CDN服务器,B服务器所有需要的内容均从A服务器取得1 W4 g1 x9 n: _* Q& u% B
假设A服务器的IP是1.1.1.1,B服务器的IP是2.2.2.2湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net6 J6 W; j- i! v3 H- U

OK,到这里后我们所需要的东西基本准备好了。ISO可能还没有下载好,不急,慢慢挂着,我们先来把域名的DNS设置好

第 3 章 设置域名的DNS

重头戏开始前,我们先来热身。: j+ k4 O9 o2 L; B8 |' H; e: u
智能DNS可以说是CDN的基础。相信平时大家做网站都会有下面的情况:首页上放两个链接,电信用户请访问主力站点A,网通用户请访问镜像站点B。然后做两个域名,www.naizhao.com指向A,cnc.naizhao.com指向B。用户看了半天觉得头晕,随便点一个进去,发现访问速度真可以的,估计整个网页打开,中国都已经步入共产主义社会了。
有了智能DNS后,上面的问题迎刃而解。用户只需要输入www.naizhao.com,系统就会自动判断用户是电信线路还是网通线路上网,然后自动返回电信或者网通的服务器IP。整个过程对于用户来说是不可见的,用户只会觉得刷的一下网页就打开了,那叫一个爽。+ 湖南.大学生科技创新平台- e5 y, h8 M  k( ]
废话不多说,let's do it!+ 湖南.大学生科技创新平台7 L' s: M. \4 A1 i; q# l

1.在DNSPod上面添加域名湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net/ C; c, t. K; V6 A
打开www.dnspod.com,在右上角的导航菜单选择注册,根据提示输入信息完成注册。注册成功后返回首页登录。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net& ?" Z6 Y  r( f* h# [* p2 |
登录后,看到有个添加新域名的框,输入naizhao(别输www。另外本文的例子就是naizhao.com),然后右边选择.com,完成后点击增加。

添加后,系统会自动跳到新添加的域名管理页面。可以看到里面什么东西都没有。不急,我们慢慢来。
在页面下方可以看到几个输入框和下拉列表,用于新增解析记录。我们先试着添加一条电信的记录看看。按照下面的格式输入:
主机记录:www湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net! l: A, D- w: P6 k0 _6 D* y- l
记录类型:A
线路类型:电信湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net. w# R! y3 I) p2 ?5 r+ o. b5 }
记录值:1.1.1.1湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net/ p2 d9 R0 {% m5 ~7 M* A, S
优先级:(留空)
TTL:3600(默认)
完成后,点击增加。


有几个地方给大家说明一下:
主机记录:也就是域名前面的东西,比如www,那么记录生效后就是www.naizhao.com。如果要实现naizhao.com(前面没有www),那么添加的时候留空就好,系统会自动给加上一个@,代表域名本身。techteamhut.5d6d.net5 D( {5 m7 e1 s( n: K- m8 X
记录类型:有A、CNAME、MX三种。最常用的就是A,记录值是一个IP地址。另外是MX,也就是邮件记录,做邮件服务器的时候用到,这里不深入讨论了。4 [5 \; A/ n: ~1 l3 L
线路类型:比较重要。如果选择了电信,那么代表这条记录*只能*给电信用户解析出来,网通用户是解析不出这条记录的。如果你一个域名只添加了一个电信的记 录,那么网通用户将会无法访问。同样道理,网通的线路类型也一样。另外有一点要说明:非网通、非教育网的用户将会被解析到电信记录去。也就是说,国外用 户、铁通、联通等用户都会被解析到电信服务器。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net, r8 l0 S; z/ B: K6 e9 o! W
还有一个通用,通用的意思是,不管你是电信还是网通还是其他用户,都可以解析出这条记录。在存在电信和网通两条记录的情况下,不建议添加通用记录。6 {/ S) i& z6 _3 t2 W
记录值:根据记录类型,分别输入一个IP或者一个域名(不是URL转发的域名)
优先级:用在MX记录中,数字越小,优先级越高。作用是:从优先级最大的服务器开始,如果邮件服务器出问题,邮件无法寄达,将会转发到优先级小一级的服务器上去。如果你没有很多台邮件服务器,这个就不用管了。techteamhut.5d6d.net- S+ y! Y& [( v9 |. C
TTL:同样是比较重要的东西。数字是按照秒来算,3600也就是一个小时。意思是,用户请求一个域名的解析,在得到IP后,3600秒之内不会向DNS 服务器重新请求解析,3600秒之内访问此域名,都将直接从自己机器的缓存里面获取IP。超出3600秒后,将会重新向DNS服务器请求获取IP。+ 湖南.大学生科技创新平台9 b2 W$ S- t! T1 ^0 m+ o' \! [" b9 J
) B! ^" q1 k% e, ]
OK,我们继续,添加一条网通的记录,让添加完成后的记录像下面的样子+ 湖南.大学生科技创新平台$ e, O: |4 l( p' ^) n1 y
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' n) n* [) P& M2 f

到此,我们就添加成功了。等个半分钟,我们来测试一下是否已经生效。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net5 y* p% w* v% k& h* t" u6 E
A.Windows用户techteamhut.5d6d.net9 i* K" q7 d5 C- g" t" F/ _" U" q
我们使用nslookup命令,先在开始菜单-运行-cmd,回车打开命令行。+ 湖南.大学生科技创新平台2 N- i6 X; D9 `' d0 q
然后输入nslookup www.naizhao.com ns1.dnspod.net,稍等一下,看看服务器返回的结果:
Name:    www.naizhao.com

Address:  1.1.1.1% I3 M/ `# S4 _! i- y, m% T
如果你是网通用户,那么会得到下面的结果湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net, t) a6 U7 m3 N4 W
Name:    www.naizhao.com1 x( C3 v: U; b4 H8 n. L

Address:  2.2.2.2湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net; {( R. u2 ~# x* {
只要你按照说明的步骤来说,基本不会有问题出现。如果无法正常返回结果,请稍等两分钟。如果等了两分钟还不行,那么就检查下你添加的记录是否正确了。
B.Linux/Unix/Mac用户
直接使用系统自带的dig命令。dig命令比nslookup更为强大。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net% T& t6 V# i3 J- L7 g5 t) n; r- D
输入dig @ns1.dnspod.net www.naizhao.com,会返回一大堆结果。我们只需要找到下面的文字就证明一切正常
;; ANSWER SECTION:湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ t1 q- T! H; J) V+ J% @
www.naizhao.com.        3600    IN      A       1.1.1.1
网通用户会看到/ Y: D" F" n  U) q+ E
;; ANSWER SECTION:湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net$ C( V6 N; P: L
www.naizhao.com.        3600    IN      A       2.2.2.2+ 湖南.大学生科技创新平台0 B$ a, r! n2 a3 y+ n& V
techteamhut.5d6d.net9 l* [# J3 d% Q  Z9 R( z& {
至此,DNSPod方面的工作已经完成,下一步就是把域名的DNS服务器改为DNSPod的。
2.把域名的DNS转到DNSPod湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net1 E6 `  B2 [/ Y  j
域名迁移以前,我先提示一下风险:+ 湖南.大学生科技创新平台, D2 P7 C( I7 U4 a/ c0 |7 L6 P/ s
+ 湖南.大学生科技创新平台4 r: l+ H( {/ i4 ?/ f! f1 {5 P1 V
根据域名的DNS协议规定,所有域名的NS记录(也就是指向DNS服务器的记录)的TTL时间必须为172800秒,也就是48小时。根据我们前面所学到 有关TTL的知识,也就是说,一个域名如果被请求过一次以后,只要缓存不被清空,那么NS记录就会存在48小时。48小时内,任何有关此域名的记录的请求 都发送到这个DNS服务器。换个角度来理解,如果A用户访问过你的网站,然后你在半个小时后修改你域名的DNS服务器,那么在剩余的47个半小时内,A用 户对你这个域名的所有请求都会发送到你*旧的*DNS服务器,而不是新的服务器。B用户在你修改DNS成功后访问你的网站,那么B用户将会得到*新 的*DNS服务器地址,所有请求都发往*新的*DNS服务器,而不是*旧的*。明白这点后,那么你就会知道,为什么修改域名的DNS后需要48个小时来生 效。你也会明白,为什么记录会一下变成新的,一下变成旧的:这是因为,你地方的DNS服务器一般是2-3台,但他们每台之间的记录并不同步。
另外,一些很小气的域名注册商,在你修改DNS服务器后,会停止对你域名的解析。那么你将会冒着用户无法访问你站点的风险。对这样的用户,我一般建议在迁 移域名的前一天,在你域名注册商的DNS管理后台,先把你所有域名记录的TTL,从默认的3600改为36000(10个小时)以上,并且选择在晚上10 点以后修改DNS,因为DNS记录会在用户关机、关闭ADSL MODEM后失效(当然,很有可能还会从地方电信的DNS得到旧记录)。设置10个小时以上是让用户在就算旧DNS服务器停止服务后,也能从本地的缓存里 面得到记录。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net/ X, B8 Q: p- r/ a  P

具体如何修改DNS,我就不具体说了,每个域名注册商都不一样。有几点要注意的:湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net1 k% p9 s/ U7 u- z0 s: {5 L
1.填写DNS的时候,记得要把旧的全部去掉,不要以为新旧留着会稳定,这样只会让你的用户得到错误的记录。techteamhut.5d6d.net$ X2 E5 x4 S6 N9 O8 W- u
2.尽量多填DNS服务器,这样能让你的域名更加稳定。目前DNSPod有6台DNS服务器,一般的域名注册商允许你填写4个(新网),万网在客户面板里面只能填写2个,但在域名管理面板(diy.hichina.com)可以把6个都填写进去。+ 湖南.大学生科技创新平台% Q( |1 A5 \$ _  d$ D6 t( u: s/ K0 g
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 N9 b, R3 I$ E1 a# P
techteamhut.5d6d.net! o6 L' K4 }* |8 k7 v5 I" y0 j
目前DNSPod的6台DNS服务器分别为(注意了,是.net不是.com):湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net/ @# d: t2 S: X6 N- D* L  X
ns1.dnspod.net
ns2.dnspod.net
ns3.dnspod.net湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net# Z# f; h" t8 b
ns4.dnspod.net湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) N1 {4 ]- p0 q6 L# x/ r
ns5.dnspod.net/ [1 X8 O  I9 F& j+ i0 r3 a
ns6.dnspod.net  j; h; n: Y" K, @

techteamhut.5d6d.net2 g8 M9 u* Z9 t' N. |9 B( q7 H5 p
折腾了老半天,大家也够累了。这个时候,ISO应该下载好了吧?辛苦一点,先把盘给刻好了。在下一章奶罩将会带你进入神秘的Linux殿堂。

 

第 4 章 安装CentOS Linux

1.基本安装
把光盘塞进光驱,设置BIOS从光驱启动(别告诉我你不会),然后会看到启动界面,上面有一些提示,可以输入一些命令进行高级安装或者进入系统修复模式。不用管,直接按回车。& r' }% }0 f# _( C9 d

稍等一下,会出现一个界面要求你做光盘的完整性检查。一般来说现在刻出来的盘不会有坏的,除非是下载回来的ISO文件有问题。所以这里我们跳过。+ 湖南.大学生科技创新平台: r, K6 A9 m1 L, f
) b/ F3 \3 E& L; F
跳过的方法是:按键盘的TAB键进行控件的选择,被选择上的控件会高亮,我们选择Skip(建议大家随时打开翻译工具或者网站对不懂的英文进行翻译),然后按空格键进行确认。
然后再等一下,我们就可以看到安装的图形界面了。techteamhut.5d6d.net% C' _/ @" k3 ^; P6 s
按下一步(Next),选择安装语言。因为Linux对中文支持并不好,黑漆漆的字符界面如果显示中文的话会有乱码(虽然远程连接上去的时候可以看到,但 服务器一旦出现故障,需要在机房操作的时候,你就会发现默认英文是多么重要),所以我们就选择默认的英文(English),然后按下一步。
接着就是选择键盘样式。相信大家的键盘都是英文而不是日文的(玩过笔记本的都见过水货IBM吧?上面一撇一划的就是日文键盘),那么就留着默认U.S. English吧。什么?你刚好拿水货IBM来装?那还得用英文,否则打出来的字乱七八糟别怪我。
下一步,轮到选择安装方式了。因为我们是全新安装,所以就选择第一个Install CentOS,下一步。+ 湖南.大学生科技创新平台/ a% o5 c* B5 `3 |
接着是询问要如何分区了。坚决不要用一个分区安装所有文件,或者让系统自动划分。我们坚持所有分区都自己来划分。这样可以有效避免在单个分区出现问题的情 况下会造成所有资料无法恢复的情况。(难理解?其实就跟Windows的C盘出问题一样。C盘出现严重问题无法读取,但可以使用工具盘启动系统,访问D、 E等盘,把资料恢复出来)湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net6 ?  P- X) K+ J
我们在下拉菜单里面选择Create custom layout(创建自定义布局),下一步。
然后会看到当前机器上面硬盘的情况,Linux所有的设备都在目录/dev下面,普通的IDE硬盘的标识是hd(scsi、sata是sd),第一个硬盘 是a,第二个是b,如此类推。所以这里如果你用的是普通IDE硬盘,然后接在第一根IDE线主盘的位置上,那么硬盘的标识就是/dev/hda。如果是 sata硬盘,那么一般就是/dev/sda。如果光驱是IDE的,接在另外一根IDE线主设备口上,那么一般是/dev/hdc。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net% }% a0 _1 `4 o
另外大家要对Linux的分区有认识。大家会觉得奇怪,Windows有C盘,D盘,为什么Linux没有?Linux的分区又是用什么一种方式存在的呢?湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net, k, e5 j, z: Y: m
其实在Linux里面,每个分区都会作为一个目录对待。所有目录都从/(根)开始,树形发展。具体情况大家可以去参考相关资料,这里不多做阐述。这么做对 于我们有一个最大的好处:某个目录分区空间用完了,我们只需要加装一个大硬盘,然后把这个硬盘整个分成一个区,在系统里面加载,把这个目录里面的文件全部 拷贝进来,作为这个目录,这样就不怕空间不够了。techteamhut.5d6d.net  n6 P8 ?& i+ L& y) A( z8 w3 p
接着说说分区的文件系统。用Windows的朋友一定都知道fat32,ntfs吧?Linux下面最常用的文件系统是ext3和reiserfs,另外 有比较旧的ext2,现在已经很少人用了,还有SWAP,交换分区。几种文件系统的优劣就不做评比了,文内一律使用ext3,因为CentOS对ext3 支持比reiserfs要好点。
Linux的基本系统包括了下面几个目录
/ 根分区,如果你想把整个硬盘分一个区,那么就分这个区+ 湖南.大学生科技创新平台: B  z2 ?8 f/ d# d  D1 V5 e
/bin,/sbin 都是一些用到的命令湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net! H( r2 L! x( ]8 G
/boot 放置启动文件湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ L1 s  O/ \3 S  X
/usr 包括一些命令、库、帮助等一些不常改变的文件湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) g; L, O; D. H3 G9 V  G4 B
/usr/local 同上,一般新的程序都安装在这里,就跟Windows的Program files差不多
/var 都是一些经常变化的文件,比如log# f  f8 p8 I/ `
/home 看名字就知道,用户住的地方湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net/ S, B  n- G! ~+ X* h
/etc 里面都是设置文件,跟注册表有点类似作用
/lib 共享库,so文件,作用类似windows的dll文件。打开里面会看到一些数字,其实是版本号湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net# M# }3 f. g7 L- |' |- j
/root 老大住的地方,后面会提到
下面是几个比较特殊的目录湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net; H7 I" u) |; g- S) z% S+ K
SWAP 看清楚了,前面没有/的。Swap是交换分区,也就是Windows里面的虚拟内存,但不一样的是基本不会用到。分区的时候只需要分一个,不需要设置挂载点,文件系统选择好就行。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net4 x! n- x9 Z' e+ l8 S  `# O8 N: z
/dev 存放设备系统 ,属于虚拟文件系统湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' \  Y. c1 e9 a) |! n( u- ^
/proc 存放有进程信息,同样是虚拟文件系统。可以通过此文件系统实时修改内核或者进程,也就是交互。比如可以实时查看内存的使用、CPU信息
后面两个看不懂没关系,我们先来分区。2 A$ y7 f7 f4 y' k; |
上面的图片可以看到,硬盘原来存在分区,我们把/dev/hda选上,然后点上面菜单的Delete整个删除。
接着我们点一下菜单的New,开始分区,先分一个/,文件系统选择ext3,分区大小是1G,也就是1024M。
Mount Point就是挂载点,输入/0 A2 |% k6 v- y* b
File System Type文件系统,下拉中选择ext3
Size分区大小,按照MB计算的,输入1024* y  t% X* w5 H5 v8 S& Y
完成后按OK
跟着分SWAP,点New,直接在File System Type选择swap,Size输入2048,按OK
剩余的分区大家按照下面来分
/ 1024techteamhut.5d6d.net# U5 p6 g; D) d" s% x2 G
swap 2048
/usr 5120
/usr/local 5120techteamhut.5d6d.net* \, P  W; g) s* U- ~/ S! }
/var 5120
/tmp 2048湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net: n. \  \4 O2 ^8 Z
/usr/local/squid 1024
/var/spool/squid 所有剩余的空间
所有剩余的空间要怎么选?很简单,选上Fill to maximum allowable size即可。
分区分完以后,看起来像下面的样子湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net/ p: K9 R+ R9 E2 V% L  a$ l; ^' P
OK,所有分区都完了以后,我们继续下一步。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* f4 [1 s5 T( O1 x! {- C( h% K
接着会出现一个安装GRUB的界面。GRUB是用来启动系统的,包括双系统的启动都要用上,装好后在启动的时候你会看到有一个菜单给你选择。这里不用更改什么,直接下一步就好。
如果你的网卡能顺利被系统认出来的话,这步就应该是让你配置网卡参数了。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net$ z, s# Q  X1 n# j$ l
点击Edit,出现网卡配置页面。先把Use dynamic IP configuration(DHCP)去掉,DHCP是自动从网关分配IP,因为我们的IP是固定的,所以不需要。
然后IPv6我们也不用,Enable IPv6 support也去掉。techteamhut.5d6d.net% Q" z* p5 }2 s0 z3 c
Activate on boot表示系统启动后自动启动网卡,要选上。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net. x% x) m" c, Z" ~8 e: U! E
因为这台服务器是网通使用,IP是2.2.2.2,所以在Address里面就输入2.2.2.2,Prefix(Netmask)是子网掩码,可以输入 255.255.255.0或者24。24是一种名为CIDR的寻址方式,具体可以去Google一下,这里不深入解释。
配置好的网卡如下图
保存后,我们还需要设置主机名,这里就设置为cnc.naizhao.com吧。
然后还有一些杂项(Miscellaneous Settings),Gateway是网关,Primary DNS是主DNS,Secondary DNS是次要DNS,根据具体需求设置上去。techteamhut.5d6d.net6 k; B- c  h: k. y, }* m* P9 e# l; H
跟着设置时区。点一下地图的右上角,然后在上海的位置点一下,左下角的下拉菜单会变为Asia/Shanghai,下一步。
跟着就是设置root的密码。Linux跟windows不一样,windows可以有很多个管理员,Linux只能有一个root,一般用户要行使管理员的身份,必须要用su这个命令临时改变身份为管理员。
输入两次密码后确认,下一步。
接着就是选择安装类型了。把Desktop什么的全部去掉,在Server前面勾上 。下面会有一行提示,问你要在什么时候进行所安装的包的详细配置(You can further customize the software selection now, or after install via the software management application),选上Customize now。下一步。
接着是安装包选择界面。左边会有Desktop Environments/Applications/Development等。按照下面的列表进行选择:2 R% L. G3 z0 P8 T! F9 f8 r. ~3 {
* Desktop Environments湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net+ A9 ?- A. G4 c, _
- 全部去掉
* Applications
- Editors 选上+ 湖南.大学生科技创新平台4 H1 b( A' ?, L6 E! ?1 G
- 其余全部去掉. {1 N& a% \5 U' t7 A" p" \
* Development
- Development Libraries 选上+ 湖南.大学生科技创新平台% Q/ e7 N4 w+ I8 p. `
- Development Tools 选上湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net# @+ O$ v4 }) e# C# D
- 其余全部去掉
* Servers
- 全部去掉
* Base System
- Dialup Networking Support 去掉
* 其他均为默认
下一步,开始安装。等待安装完成后重启即可。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net2 r7 b( N$ ?1 H2 j7 m2 F  N7 h
2.初次启动techteamhut.5d6d.net1 w/ ]3 n+ c( R/ p
初次启动的时候,会有一个设置代理,就跟安装时要求检测CD完整性的界面差不多,用上下键选择Firewall configuration,按一下TAB键,空格进入。+ 湖南.大学生科技创新平台7 h! l8 y' X6 F/ Z; f* \( t
然后在Security Level选择Disabled,也就是关闭防火墙,TAB键选择OK,空格退出。之后系统会继续启动,直到出现登录界面。
CentOS release 5 (Final)
Kernel 2.6.18-8.el5 on an i686
cnc login:湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) Y; X% `! l1 b
3.远程连接+ 湖南.大学生科技创新平台- t. z' k# @3 F: p- N- t
Linux的远程连接方式是ssh。ssh是一种经过加密的连接方式,所有数据交换都会被加密,就算服务器被arp攻击也不怕密码会被监听。
Windows下的ssh客户端,我们一般使用putty。因为putty太好用了,所以有台湾的网友进行了修改并且本地化,发布出来的程序名字叫做pietty。
Pietty的官方网站是:http://www.csie.ntu.edu.tw/~piaip/pietty/湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net! f& S8 M( w9 K$ c' @; y
下载地址是:http://www.csie.ntu.edu.tw/~piaip/pietty/stable/pietty0327.exe
下载回来运行,然后输入服务器的IP,回车就可以连接了。如果是第一次连接服务器,程序还会提示你是否接受并保存服务器的证书,选择是即可。然后按照提示输入用户名root和密码。
4.Linux的基本命令
首先要注意:Linux是一个大小写区分的系统。不管你做什么事情都要注意大小写。cpu和Cpu是不一样的。
说几个比较常用的
ls 列出文件和目录。默认是当前目录,如果要列出/bin下面的文件,输入ls /bin
cd 进入某个目录。比如cd /bin可以进入/bin目录,cd ..进入上一级目录,cd abc进入当前目录下面的abc目录,cd -回到上一次进入的目录。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net% N1 y+ H3 {% H$ R
cp 拷贝文件或者目录。cp a b拷贝a文件为b文件
mkdir 建立目录。比如mkdir naizhao。如果要建立/a/b/c/d/e这个目录,但/a/b/c/d这几个目录都不存在,使用mkdir -p /a/b/c/d/e,那么会把这几个目录一并创建。
rm 删除文件或者目录。rm a删除a文件。要删除一个目录必须要用rm -rf a,表示删除a目录
mv 移动文件。不过大部分情况下用来给文件改名。因为linux下面没有专门改名的命令。mv a b把a文件改名为b。mv a ../把a文件移动到上一级目录湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net( B) x1 [3 p/ w6 x9 }
more 比较有用的命令。比如用了ls命令,但出来的文字太多,已经超过一个屏幕了,我要看开头部分的内容要怎么看?可以使用ls|more,这样就可以随意的翻 屏了。|是管道,负责把|前面命令的结果交给|后面的命令。管道可以使用多个,比如ls -lh|grep naizhao|more,也就是说把ls -lh的结果交给grep处理,然后grep把处理出来的结果交给more。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net* T0 c* K5 a5 W
grep 也是比较常用的命令。负责把所需要的内容抽取出来。比如我ls -lh /lib,内容太多了,并不都是我所需要的,我只需要包含dns这几个字的内容,那么我就使用ls -lh /lib|grep dns。如果我需要不包括dns这三个字的内容呢?使用ls -lh /lib|grep -v dns
cat 不是猫。cat命令负责把一个文件里面的内容完整输出来。内容多的时候配合more使用。比如cat /proc/cpuinfo,会把cpuinfo里面的内容显示出来。
wc 噢,不是厕所,别误会。这是用来算数的。比如我要算一个文件里面有多少行,那么使用cat /proc/cpuinfo|wc -l,输出的数字就是cpuinfo文件的行数,-l参数是按照行(line)来计算。这个命令最常用的时候是什么呢?看网络连接,比如要看看当前系统是 不是被别人SYN了,那么输入netstat -an|grep SYN|wc -l湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net4 e, _  y' }  V5 \" m
netstat 查看网络状态,一般用来看系统当前有几个连接。比如看80端口有多少个连接,输入netstat -an|grep :80|wc -l
这些命令建议大家多点玩,不要怕。玩坏了系统大不了重装,反正上面现在也没资料。
5.VIM的基本使用techteamhut.5d6d.net3 e, N# S# B7 d( J0 j& _
VI是所有Unix系统必带的工具。干什么用的呢?Windows的记事本,知道吧?这个东西比记事本还要高级几百倍,整个Linux基本就是在VI里面 写的。VIM则是VI的改进版本,某些系统里面只带了VI,没有VIM。但这两个东西命令上是没有分别的,都是命令行里面敲入vi就可以启动。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" q0 `. k) O) V+ y7 f9 ~. p% i9 s2 Y
我们要学习以下几个方面:打开文件、编辑文件、保存文件
我们以/etc/hosts文件为例,在里面添加一条1.1.1.1 www.naizhao.com的记录。
A.打开文件湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net# H0 @0 n9 L0 H8 `" G. T

打开文件很简单,vi 文件名,比如vi /etc/hosts,然后会看到类似下面的内容
# Do not remove the following line, or various programs湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net7 t7 N% I4 I3 ^1 G2 M  T, j
# that require network functionality will fail.
127.0.0.1 cnc.naizhao.com cnc localhost.localdomain localhost湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net8 B/ O4 e3 b5 [0 G# q5 \& @+ a2 w
::1 localhost6.localdomain6 localhost6techteamhut.5d6d.net. g' M8 j7 ^* ]: b* `. s
B.编辑文件techteamhut.5d6d.net% R& ~' h* [9 [! k6 c5 l0 R) D5 `

编辑一共三个方面:插入(添加)、修改、删除
vi里面,可以通过键盘的方向键移动光标。我们移动到湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net2 Q$ v3 n# b9 K8 h: I4 q
::1 localhost6.localdomain6 localhost6
这行,然后按下键盘的o(字母)键,会发现光标跑下面去了,自动新起一行。5 e" ?; p! _8 o- T6 G+ a8 U
然后我们输入1.1.1.1,按两次键盘的tab键,再输入www.naizhao.com,然内容看起来像下面这样湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net. b  r( b4 }  {5 D6 k. n
1.1.1.1 www.naizhao.comtechteamhut.5d6d.net3 H+ G8 y5 E7 X3 N0 s
然后,我们按两次键盘左上角的esc键。在按第一次的时候,你会发现光标向前跳了一下,马上再按第二次,如果你打开了音箱,你会听到当的一声响。
好了,添加新一行就是那么简单。
然后,我们再为1.1.1.1添加一个记录,tel.naizhao.com,怎么做呢?+ 湖南.大学生科技创新平台+ X/ P& F* E( s, w' c2 B3 y6 D% B
移动光标到www.naizhao.com的m上,按一下键盘的i(insert的意思)键,这样编辑模式就会变为插入。嗯,敲个空格看看。啊,怎么把我的com给分开成co m了?我要的不是这个效果啊!+ 湖南.大学生科技创新平台8 t, g/ h' r# b
不急不急,按照前面的方法,按两次esc键,退出编辑模式,然后按一次键盘的u(undo)键。哦,还好,东西都回来了。原来i是在当前文字的前面插入 啊。那再来一次,光标移动到m上面,按一下i,然后用键盘把光标向右移动一下,来到m的背后,敲一个空格,然后输入tel.naizhao.com,然后 按两次esc键。嗯,看起来有模有样了。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net7 s5 n2 u! N, G
喂,我怕文件被我破坏了,想要先保存一下,怎么办?
保存文件啊,也很简单啊。先输入一个冒号(:)。什么?不知道怎么输?按住shift键,敲一下回车键左边的分号;,这不,冒号出来了。然后冒号后面跟着一个w(write),看起来就像这个样子:w,回车。你会看到一行提示+ 湖南.大学生科技创新平台' ^$ b( g! a6 q3 o
“/etc/hosts” 5L, 248C written湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ K3 D( Z' j! _9 f+ g! Y' }6 r
表示文件保存完成。+ 湖南.大学生科技创新平台6 Q1 [. q/ L4 g4 b) p0 x' D+ b9 M
然后,呃,还有修改。如果我发现某个字打错了,比如com的o,我打成0了,我要怎么改?
先把光标移动到0上面,然后按键盘的r(replace),然后按一下o,哈哈,改过来了,赶紧:w保存先。
嗯。。。如果我不需要tel.naizhao.com,我要怎么删除啊?
删除的英文是什么来着?delete吧?鼠标移动到tel的t上面,按一下键盘d,然后按一下右方向键,嘿嘿,t被删掉了。但是,我要删除整个url,一 个一个删过去,是否麻烦了点?嗯,有点道理,跟我一起数数吧。1,2,3,4,5….tl.naizhao.com一共有14个字符,那我就先按一下键盘 的d,然后用数字键输入14(带有特殊符号那行,不是小键盘)(呃,怎么输入后看不到的?),然后按一下右方向键,嗯,世界清净了。真完美。
另外,还有一些比较方便的快捷键,比如输入dd,删除当前行,输入gg,会回到文件的开头位置,输入G(也就是shift+g)会到文件的末 尾,ctrl+d到下一页,ctrl+b到上一页,shift+a在文件末尾插入,shift+d删除当前光标位置一直到行末的文字,这些都等大家慢慢琢 磨。
C.保存文件

保存文件刚才说了一个:w,如果我想直接保存退出,要怎样呢?可以使用:wq(write&quit),或者直接:x。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net$ G: O( S# s' `$ q/ C5 T4 B
但是,文件刚才被我改到一塌糊涂,我不想保存了,我要直接退出,怎么退?
如果文件没有被改变过,可以直接输入:q退出。但如果文件被改动过,但又没有保存,:q会报错,那么可以在q前面加上一个!,强行退出,就像这个样子:!q湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net/ B' f# S2 o+ g  P
如果文件只读,你要强行写入,当然可以在w的前面加上!了。techteamhut.5d6d.net( I4 G$ _7 G+ R8 o2 P. r& r
6.设置安装更新: G& g: I" z9 l- J; S0 m, C
国外的东西在国内有个很麻烦的地方:镜像都在国外。所以,要升级系统,必须要把镜像改为国内的私人镜像。于是乎,刚才所学到的VIM知识又用上了。
CentOS的升级工具为yum,镜像配置文件在/etc/yum.repos.d/CentOS-Base.repo,那么,我们用vi打开吧。
vi /etc/yum.repos.d/CentOS-Base.repo
呃,里面好多网址啊,难道要我一个一个都改过去?岂不是累死我?
不怕不怕,记事本都有查找替换呢,vi当然也少不了这个功能了。
yum默认是从mirrorlist=这行获取镜像列表的,既然我们指定了镜像地址,那么就需要把这行注释了。注释的方法是在前面加上#,也就是#mirrorlist=这样。
赶紧开始操作,vi里面查找替换的格式大概是这样:%s/a/b/g,也就是查找a,替换成b,g则是全文件查找。把公式套用过来,就是这个样子
:%s/mirrorlist=/#mirrorlist=/g
嗯嗯,输入回车看看,都替换掉了吧?哈哈。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 z( K* B' C! K" D8 W
接着,指定url地址要把#baseurl=前面的#去掉,根据刚才的例子,得到techteamhut.5d6d.net) r  K3 `! u& M6 I% E* |* ]
:%s/#baseurl=/baseurl=/g
又OK了一个,剩下最后一个了。7 [" F3 ]  C2 ~5 N" d" o
国内私人搭建的centos镜像,比较有名的是be10.com,网址是http://mirror.be10.com/+ 湖南.大学生科技创新平台. K: B9 U- z) j1 T& ~7 V
打开上面的网址,可以看到孤零零的一个centos目录,对比一下配置文件里面的url
http://mirror.be10.com/centos/
http://mirror.centos.org/centos/
找不同游戏开始了,看来看去,两个url的差别就是be10.com和centos.org了,也就是说我只要把centos.org替换成be10.com就可以了。
:%s/centos.org/be10.com/g
大功告成,赶紧保存退出,然后输入
yum update& D& \" {8 q3 ^; Z6 d: s( L$ @) [
更新吧。
更新的过程中会有互动节目,有几个地方会让你输入y来确认是否要安装更新包,直接输入y回车确认就好。
忙活了老半天,大家都累的够呛了,让机器慢慢更新,我们喝杯咖啡泡个功夫茶去。接下来的事情还多着呢。

 

1.基本安装
把光盘塞进光驱,设置BIOS从光驱启动(别告诉我你不会),然后会看到启动界面,上面有一些提示,可以输入一些命令进行高级安装或者进入系统修复模式。不用管,直接按回车。
techteamhut.5d6d.net$ {, G; ^, x8 T
稍等一下,会出现一个界面要求你做光盘的完整性检查。一般来说现在刻出来的盘不会有坏的,除非是下载回来的ISO文件有问题。所以这里我们跳过。+ 湖南.大学生科技创新平台- [% z% e3 ~+ h
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net6 g* a: z% j$ d% e5 R9 z6 n& T" H
跳过的方法是:按键盘的TAB键进行控件的选择,被选择上的控件会高亮,我们选择Skip(建议大家随时打开翻译工具或者网站对不懂的英文进行翻译),然后按空格键进行确认。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net8 }$ z: m* N. R. D! Q; ^' R3 T; `
然后再等一下,我们就可以看到安装的图形界面了。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net3 Z0 r" J" u2 D& \
按下一步(Next),选择安装语言。因为Linux对中文支持并不好,黑漆漆的字符界面如果显示中文的话会有乱码(虽然远程连接上去的时候可以看到,但 服务器一旦出现故障,需要在机房操作的时候,你就会发现默认英文是多么重要),所以我们就选择默认的英文(English),然后按下一步。techteamhut.5d6d.net" O/ `% ^( x5 m5 n; R
接着就是选择键盘样式。相信大家的键盘都是英文而不是日文的(玩过笔记本的都见过水货IBM吧?上面一撇一划的就是日文键盘),那么就留着默认U.S. English吧。什么?你刚好拿水货IBM来装?那还得用英文,否则打出来的字乱七八糟别怪我。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net8 w1 n5 ~& _" h  u
下一步,轮到选择安装方式了。因为我们是全新安装,所以就选择第一个Install CentOS,下一步。techteamhut.5d6d.net+ u& q5 F( A5 r/ j4 `; p. ]
接着是询问要如何分区了。坚决不要用一个分区安装所有文件,或者让系统自动划分。我们坚持所有分区都自己来划分。这样可以有效避免在单个分区出现问题的情 况下会造成所有资料无法恢复的情况。(难理解?其实就跟Windows的C盘出问题一样。C盘出现严重问题无法读取,但可以使用工具盘启动系统,访问D、 E等盘,把资料恢复出来)
我们在下拉菜单里面选择Create custom layout(创建自定义布局),下一步。techteamhut.5d6d.net! t5 O( ~1 f' k: T3 f& O2 U
然后会看到当前机器上面硬盘的情况,Linux所有的设备都在目录/dev下面,普通的IDE硬盘的标识是hd(scsi、sata是sd),第一个硬盘 是a,第二个是b,如此类推。所以这里如果你用的是普通IDE硬盘,然后接在第一根IDE线主盘的位置上,那么硬盘的标识就是/dev/hda。如果是 sata硬盘,那么一般就是/dev/sda。如果光驱是IDE的,接在另外一根IDE线主设备口上,那么一般是/dev/hdc。
另外大家要对Linux的分区有认识。大家会觉得奇怪,Windows有C盘,D盘,为什么Linux没有?Linux的分区又是用什么一种方式存在的呢?
其实在Linux里面,每个分区都会作为一个目录对待。所有目录都从/(根)开始,树形发展。具体情况大家可以去参考相关资料,这里不多做阐述。这么做对 于我们有一个最大的好处:某个目录分区空间用完了,我们只需要加装一个大硬盘,然后把这个硬盘整个分成一个区,在系统里面加载,把这个目录里面的文件全部 拷贝进来,作为这个目录,这样就不怕空间不够了。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net6 t6 H' T1 o% t; @
接着说说分区的文件系统。用Windows的朋友一定都知道fat32,ntfs吧?Linux下面最常用的文件系统是ext3和reiserfs,另外 有比较旧的ext2,现在已经很少人用了,还有SWAP,交换分区。几种文件系统的优劣就不做评比了,文内一律使用ext3,因为CentOS对ext3 支持比reiserfs要好点。
Linux的基本系统包括了下面几个目录
/ 根分区,如果你想把整个硬盘分一个区,那么就分这个区
/bin,/sbin 都是一些用到的命令
/boot 放置启动文件湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net) q* ]$ Q) C8 W) K( j: m) B! m
/usr 包括一些命令、库、帮助等一些不常改变的文件
/usr/local 同上,一般新的程序都安装在这里,就跟Windows的Program files差不多湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net- h, L! @* g' C( ^- J
/var 都是一些经常变化的文件,比如log
/home 看名字就知道,用户住的地方
/etc 里面都是设置文件,跟注册表有点类似作用湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* q) \: q% q: Y; G+ e$ L, `
/lib 共享库,so文件,作用类似windows的dll文件。打开里面会看到一些数字,其实是版本号湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" O+ t9 n: k% L8 q3 _
/root 老大住的地方,后面会提到
下面是几个比较特殊的目录湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* u0 S1 K7 g% x" O" b
SWAP 看清楚了,前面没有/的。Swap是交换分区,也就是Windows里面的虚拟内存,但不一样的是基本不会用到。分区的时候只需要分一个,不需要设置挂载点,文件系统选择好就行。% Z$ |" D7 d1 w9 j
/dev 存放设备系统 ,属于虚拟文件系统
/proc 存放有进程信息,同样是虚拟文件系统。可以通过此文件系统实时修改内核或者进程,也就是交互。比如可以实时查看内存的使用、CPU信息湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net! K; i/ |. r0 V9 e/ b8 [0 I
后面两个看不懂没关系,我们先来分区。
上面的图片可以看到,硬盘原来存在分区,我们把/dev/hda选上,然后点上面菜单的Delete整个删除。
接着我们点一下菜单的New,开始分区,先分一个/,文件系统选择ext3,分区大小是1G,也就是1024M。
Mount Point就是挂载点,输入/
File System Type文件系统,下拉中选择ext3
Size分区大小,按照MB计算的,输入1024
完成后按OK
跟着分SWAP,点New,直接在File System Type选择swap,Size输入2048,按OK湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" f. o3 H# V4 J7 R" t" Y2 q
剩余的分区大家按照下面来分+ p2 D! o2 @' H0 n& l  p2 Z
/ 1024湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net0 S8 I0 e' c( R2 I
swap 2048
/usr 5120techteamhut.5d6d.net5 N4 f8 ~, }1 C6 C* [/ p
/usr/local 5120
/var 5120湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 [/ k0 h: |6 E* g( Y; C& Q; N
/tmp 2048
/usr/local/squid 1024湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 J+ W( K2 \9 N* E. S$ f
/var/spool/squid 所有剩余的空间湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net$ A% p, L1 X/ p0 X& h( N, ^
所有剩余的空间要怎么选?很简单,选上Fill to maximum allowable size即可。
分区分完以后,看起来像下面的样子techteamhut.5d6d.net" ~% `7 U) g7 E7 Z. @
OK,所有分区都完了以后,我们继续下一步。techteamhut.5d6d.net; g; \2 I: {! d7 ]+ Y/ ?4 e  `
接着会出现一个安装GRUB的界面。GRUB是用来启动系统的,包括双系统的启动都要用上,装好后在启动的时候你会看到有一个菜单给你选择。这里不用更改什么,直接下一步就好。
如果你的网卡能顺利被系统认出来的话,这步就应该是让你配置网卡参数了。
点击Edit,出现网卡配置页面。先把Use dynamic IP configuration(DHCP)去掉,DHCP是自动从网关分配IP,因为我们的IP是固定的,所以不需要。
然后IPv6我们也不用,Enable IPv6 support也去掉。techteamhut.5d6d.net8 c, q  N- J' ^5 C7 z
Activate on boot表示系统启动后自动启动网卡,要选上。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net: U: Y) h6 T* B4 ?3 u& ^
因为这台服务器是网通使用,IP是2.2.2.2,所以在Address里面就输入2.2.2.2,Prefix(Netmask)是子网掩码,可以输入 255.255.255.0或者24。24是一种名为CIDR的寻址方式,具体可以去Google一下,这里不深入解释。
配置好的网卡如下图
保存后,我们还需要设置主机名,这里就设置为cnc.naizhao.com吧。
然后还有一些杂项(Miscellaneous Settings),Gateway是网关,Primary DNS是主DNS,Secondary DNS是次要DNS,根据具体需求设置上去。
跟着设置时区。点一下地图的右上角,然后在上海的位置点一下,左下角的下拉菜单会变为Asia/Shanghai,下一步。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net4 ^+ b) F/ E! _3 x: g) q0 u
跟着就是设置root的密码。Linux跟windows不一样,windows可以有很多个管理员,Linux只能有一个root,一般用户要行使管理员的身份,必须要用su这个命令临时改变身份为管理员。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* o0 w) n) g. U0 o0 N$ v! Q
输入两次密码后确认,下一步。
接着就是选择安装类型了。把Desktop什么的全部去掉,在Server前面勾上 。下面会有一行提示,问你要在什么时候进行所安装的包的详细配置(You can further customize the software selection now, or after install via the software management application),选上Customize now。下一步。
接着是安装包选择界面。左边会有Desktop Environments/Applications/Development等。按照下面的列表进行选择:湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net$ w! u5 [3 M9 T0 w* `, Q1 |
* Desktop Environments湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net( L) Q, n5 \' [, A5 b  n" Q
- 全部去掉
* Applications
- Editors 选上
- 其余全部去掉湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net0 t4 S) ?; Q- A5 d6 T' H# q1 {7 b
* Developmenttechteamhut.5d6d.net) f" r4 s8 ?+ G6 k; J
- Development Libraries 选上
- Development Tools 选上
- 其余全部去掉湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net. t. b8 P0 H% N, o4 W& S7 w3 c# |
* Servers
- 全部去掉
* Base System
- Dialup Networking Support 去掉湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net; `! E- @. r/ b( `
* 其他均为默认
下一步,开始安装。等待安装完成后重启即可。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net- a( b! \% p* G( D% q
2.初次启动湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net. M2 P* @/ h$ w5 M2 C
初次启动的时候,会有一个设置代理,就跟安装时要求检测CD完整性的界面差不多,用上下键选择Firewall configuration,按一下TAB键,空格进入。
然后在Security Level选择Disabled,也就是关闭防火墙,TAB键选择OK,空格退出。之后系统会继续启动,直到出现登录界面。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" J( W4 z( j6 C5 r* z
CentOS release 5 (Final)
Kernel 2.6.18-8.el5 on an i686
cnc login:
3.远程连接湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 r* R/ H! w6 n  C4 C9 P0 C
Linux的远程连接方式是ssh。ssh是一种经过加密的连接方式,所有数据交换都会被加密,就算服务器被arp攻击也不怕密码会被监听。
Windows下的ssh客户端,我们一般使用putty。因为putty太好用了,所以有台湾的网友进行了修改并且本地化,发布出来的程序名字叫做pietty。
Pietty的官方网站是:http://www.csie.ntu.edu.tw/~piaip/pietty/
下载地址是:http://www.csie.ntu.edu.tw/~piaip/pietty/stable/pietty0327.exe
下载回来运行,然后输入服务器的IP,回车就可以连接了。如果是第一次连接服务器,程序还会提示你是否接受并保存服务器的证书,选择是即可。然后按照提示输入用户名root和密码。
4.Linux的基本命令湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net/ G0 v- n6 k! n5 J
首先要注意:Linux是一个大小写区分的系统。不管你做什么事情都要注意大小写。cpu和Cpu是不一样的。+ 湖南.大学生科技创新平台2 q9 T: a$ N( t, e3 S1 b7 T- G" b
说几个比较常用的湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net/ ]* h8 h1 c) m9 Q  e% H
ls 列出文件和目录。默认是当前目录,如果要列出/bin下面的文件,输入ls /bin
cd 进入某个目录。比如cd /bin可以进入/bin目录,cd ..进入上一级目录,cd abc进入当前目录下面的abc目录,cd -回到上一次进入的目录。
cp 拷贝文件或者目录。cp a b拷贝a文件为b文件湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net  o+ X9 y6 H/ `2 L. ^- x" u" m
mkdir 建立目录。比如mkdir naizhao。如果要建立/a/b/c/d/e这个目录,但/a/b/c/d这几个目录都不存在,使用mkdir -p /a/b/c/d/e,那么会把这几个目录一并创建。techteamhut.5d6d.net( r2 D* P9 G& e
rm 删除文件或者目录。rm a删除a文件。要删除一个目录必须要用rm -rf a,表示删除a目录
mv 移动文件。不过大部分情况下用来给文件改名。因为linux下面没有专门改名的命令。mv a b把a文件改名为b。mv a ../把a文件移动到上一级目录
more 比较有用的命令。比如用了ls命令,但出来的文字太多,已经超过一个屏幕了,我要看开头部分的内容要怎么看?可以使用ls|more,这样就可以随意的翻 屏了。|是管道,负责把|前面命令的结果交给|后面的命令。管道可以使用多个,比如ls -lh|grep naizhao|more,也就是说把ls -lh的结果交给grep处理,然后grep把处理出来的结果交给more。
grep 也是比较常用的命令。负责把所需要的内容抽取出来。比如我ls -lh /lib,内容太多了,并不都是我所需要的,我只需要包含dns这几个字的内容,那么我就使用ls -lh /lib|grep dns。如果我需要不包括dns这三个字的内容呢?使用ls -lh /lib|grep -v dns湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net! B( x" }3 \) \4 W: {3 h. ^
cat 不是猫。cat命令负责把一个文件里面的内容完整输出来。内容多的时候配合more使用。比如cat /proc/cpuinfo,会把cpuinfo里面的内容显示出来。techteamhut.5d6d.net' V" l6 M% H' m+ z# b, h+ y
wc 噢,不是厕所,别误会。这是用来算数的。比如我要算一个文件里面有多少行,那么使用cat /proc/cpuinfo|wc -l,输出的数字就是cpuinfo文件的行数,-l参数是按照行(line)来计算。这个命令最常用的时候是什么呢?看网络连接,比如要看看当前系统是 不是被别人SYN了,那么输入netstat -an|grep SYN|wc -l
netstat 查看网络状态,一般用来看系统当前有几个连接。比如看80端口有多少个连接,输入netstat -an|grep :80|wc -l
这些命令建议大家多点玩,不要怕。玩坏了系统大不了重装,反正上面现在也没资料。+ 湖南.大学生科技创新平台$ U! L4 @6 Y6 b5 U0 ]
5.VIM的基本使用湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net9 D' p1 v! {, R$ W8 @- A
VI是所有Unix系统必带的工具。干什么用的呢?Windows的记事本,知道吧?这个东西比记事本还要高级几百倍,整个Linux基本就是在VI里面 写的。VIM则是VI的改进版本,某些系统里面只带了VI,没有VIM。但这两个东西命令上是没有分别的,都是命令行里面敲入vi就可以启动。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" g% Z7 x! `" P. T# c
我们要学习以下几个方面:打开文件、编辑文件、保存文件
我们以/etc/hosts文件为例,在里面添加一条1.1.1.1 www.naizhao.com的记录。+ 湖南.大学生科技创新平台( O3 U' x, R+ d4 v7 L
A.打开文件
打开文件很简单,vi 文件名,比如vi /etc/hosts,然后会看到类似下面的内容+ 湖南.大学生科技创新平台- h$ p: n1 W  I; y! ^
# Do not remove the following line, or various programs# s& u1 @2 T/ o  z3 ]( i
# that require network functionality will fail.
127.0.0.1 cnc.naizhao.com cnc localhost.localdomain localhost湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net& L* X% @5 M6 I; M- p1 R
::1 localhost6.localdomain6 localhost6湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net" s- Q0 u: M/ d, Q: {
B.编辑文件
编辑一共三个方面:插入(添加)、修改、删除3 ~6 ^6 t; o1 _
vi里面,可以通过键盘的方向键移动光标。我们移动到
::1 localhost6.localdomain6 localhost6
这行,然后按下键盘的o(字母)键,会发现光标跑下面去了,自动新起一行。
然后我们输入1.1.1.1,按两次键盘的tab键,再输入www.naizhao.com,然内容看起来像下面这样+ 湖南.大学生科技创新平台5 I7 b) ^/ r5 i' C3 V8 B. D
1.1.1.1 www.naizhao.com
然后,我们按两次键盘左上角的esc键。在按第一次的时候,你会发现光标向前跳了一下,马上再按第二次,如果你打开了音箱,你会听到当的一声响。" |0 T6 j5 H( h
好了,添加新一行就是那么简单。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net, b6 ?4 N5 j1 F" ]1 G
然后,我们再为1.1.1.1添加一个记录,tel.naizhao.com,怎么做呢?湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* [( c5 e& F" }7 V+ I* ~
移动光标到www.naizhao.com的m上,按一下键盘的i(insert的意思)键,这样编辑模式就会变为插入。嗯,敲个空格看看。啊,怎么把我的com给分开成co m了?我要的不是这个效果啊!
不急不急,按照前面的方法,按两次esc键,退出编辑模式,然后按一次键盘的u(undo)键。哦,还好,东西都回来了。原来i是在当前文字的前面插入 啊。那再来一次,光标移动到m上面,按一下i,然后用键盘把光标向右移动一下,来到m的背后,敲一个空格,然后输入tel.naizhao.com,然后 按两次esc键。嗯,看起来有模有样了。
喂,我怕文件被我破坏了,想要先保存一下,怎么办?$ k) Z- T1 x) G. L% j- r1 Q
保存文件啊,也很简单啊。先输入一个冒号(:)。什么?不知道怎么输?按住shift键,敲一下回车键左边的分号;,这不,冒号出来了。然后冒号后面跟着一个w(write),看起来就像这个样子:w,回车。你会看到一行提示
“/etc/hosts” 5L, 248C written
表示文件保存完成。+ 湖南.大学生科技创新平台) h/ l' e# N: a$ v8 K. e
然后,呃,还有修改。如果我发现某个字打错了,比如com的o,我打成0了,我要怎么改?湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net7 v1 i$ z/ o0 M/ c0 l2 V
先把光标移动到0上面,然后按键盘的r(replace),然后按一下o,哈哈,改过来了,赶紧:w保存先。0 {( }3 F3 i: j8 S
嗯。。。如果我不需要tel.naizhao.com,我要怎么删除啊?湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net3 l! z5 E" M- ~' L
删除的英文是什么来着?delete吧?鼠标移动到tel的t上面,按一下键盘d,然后按一下右方向键,嘿嘿,t被删掉了。但是,我要删除整个url,一 个一个删过去,是否麻烦了点?嗯,有点道理,跟我一起数数吧。1,2,3,4,5….tl.naizhao.com一共有14个字符,那我就先按一下键盘 的d,然后用数字键输入14(带有特殊符号那行,不是小键盘)(呃,怎么输入后看不到的?),然后按一下右方向键,嗯,世界清净了。真完美。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net: B0 @5 w' P* t! \3 i: ?7 y  ?/ I& C
另外,还有一些比较方便的快捷键,比如输入dd,删除当前行,输入gg,会回到文件的开头位置,输入G(也就是shift+g)会到文件的末 尾,ctrl+d到下一页,ctrl+b到上一页,shift+a在文件末尾插入,shift+d删除当前光标位置一直到行末的文字,这些都等大家慢慢琢 磨。+ 湖南.大学生科技创新平台( r' @( ~7 f0 p) @
C.保存文件
保存文件刚才说了一个:w,如果我想直接保存退出,要怎样呢?可以使用:wq(write&quit),或者直接:x。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net: f% H6 T0 u1 T, G3 x
但是,文件刚才被我改到一塌糊涂,我不想保存了,我要直接退出,怎么退?' n& c* t. R. ^1 k: e* s$ S
如果文件没有被改变过,可以直接输入:q退出。但如果文件被改动过,但又没有保存,:q会报错,那么可以在q前面加上一个!,强行退出,就像这个样子:!q9 p6 T5 B: G0 @5 N5 ^
如果文件只读,你要强行写入,当然可以在w的前面加上!了。+ 湖南.大学生科技创新平台. d4 N: ~/ c9 ?" H8 C. V# S
6.设置安装更新
国外的东西在国内有个很麻烦的地方:镜像都在国外。所以,要升级系统,必须要把镜像改为国内的私人镜像。于是乎,刚才所学到的VIM知识又用上了。
CentOS的升级工具为yum,镜像配置文件在/etc/yum.repos.d/CentOS-Base.repo,那么,我们用vi打开吧。
vi /etc/yum.repos.d/CentOS-Base.repo湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' `7 E  i/ o& u, v1 Z! s4 r
呃,里面好多网址啊,难道要我一个一个都改过去?岂不是累死我?
不怕不怕,记事本都有查找替换呢,vi当然也少不了这个功能了。
yum默认是从mirrorlist=这行获取镜像列表的,既然我们指定了镜像地址,那么就需要把这行注释了。注释的方法是在前面加上#,也就是#mirrorlist=这样。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net7 J; V* U- H9 @: x, z/ i* d) b
赶紧开始操作,vi里面查找替换的格式大概是这样:%s/a/b/g,也就是查找a,替换成b,g则是全文件查找。把公式套用过来,就是这个样子
:%s/mirrorlist=/#mirrorlist=/g
嗯嗯,输入回车看看,都替换掉了吧?哈哈。湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net  u3 y% j! G, O' S
接着,指定url地址要把#baseurl=前面的#去掉,根据刚才的例子,得到
:%s/#baseurl=/baseurl=/g湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net! O9 W6 z' w7 h+ Z" W) A: D
又OK了一个,剩下最后一个了。
国内私人搭建的centos镜像,比较有名的是be10.com,网址是http://mirror.be10.com/湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net& S/ g" ^! Z$ M  Z7 E
打开上面的网址,可以看到孤零零的一个centos目录,对比一下配置文件里面的url
http://mirror.be10.com/centos/
http://mirror.centos.org/centos/
找不同游戏开始了,看来看去,两个url的差别就是be10.com和centos.org了,也就是说我只要把centos.org替换成be10.com就可以了。
:%s/centos.org/be10.com/gtechteamhut.5d6d.net/ p% L" K' ]- {6 Q- c2 W3 p
大功告成,赶紧保存退出,然后输入湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net' n/ `- I' F) C, |$ C4 Y$ c
yum update湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ D. q; V( S2 W& s6 T
更新吧。+ 湖南.大学生科技创新平台6 F3 ~+ j8 b& g3 h( {* R: \" T
更新的过程中会有互动节目,有几个地方会让你输入y来确认是否要安装更新包,直接输入y回车确认就好。5 Y) `0 {' I. @) z& u
忙活了老半天,大家都累的够呛了,让机器慢慢更新,我们喝杯咖啡泡个功夫茶去。接下来的事情还多着呢

 

第 5 章 安装Squid的前期准备


从本章开始,大家将会学到如何在Linux下面安装、编译程序,还会学到程序编译的优化方法,最后会通过源代码编译的方式把Squid安装上。
1.Linux下面程序安装的基本知识
A.程序安装包的分类
平时大家在Windows下面安装程序,一般都是直接运行安装程序,然后安装程序会把编译好的二进制文件拷贝到系统里面,最终完成安装过程。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net1 _* u( x! R, ^
Linux下面,安装程序的自由度比Windows要大。因为Linux下面大部分东西都是开源的,所以程序的提供方式一般是二进制包或者源代码包。
二进制包,同样会有不同的打包和管理方式(类似于zip、rar,但更加先进)。最常见的两种软件包为rpm(redhat、suse等系统采用的包)和 deb(debian、ubuntu)。机器上面安装的软件包多了,自然需要一个软件来进行管理、更新。所以就有了yum(rpm)、apt(deb)这 样的软件包管理、升级软件。
源代码包,这样的包比较简单,一般都是直接把源代码打包成一个压缩文件,后缀一般是tar.gz或者tar.bz2湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net( R0 h2 Y+ o2 |
通过包管理软件安装软件比较简单,设置好软件的安装源后,可以使用下面的命令安装软件:
yum install php (yum)
apt-get install php5(apt)
如果不知道需要安装的软件包确切名字,可以使用下面的方法搜索:
yum search php(yum)
apt-cache search php(apt)
本文章主要探讨源代码包的安装。+ 湖南.大学生科技创新平台' i# c5 h' H. ^0 e  f
B.通过源代码包安装程序
一般情况下,程序从源代码到能正常使用,需要经过三个步骤:1.根据系统环境对源代码进行配置(configure);2.编译程序(make);3.安装程序(make install)。
a.源代码配置techteamhut.5d6d.net0 K; N" y- F' U( C* A# Q$ f
通过运行configure脚本,可以对所需要编译的程序的一些基本环境、所使用到的命令、库等文件进行自动查找,并且生成用于编译文件所需要的 Makefile文件。因为Linux有太多的发行版本了,每个版本的环境都不一样,所以需要用到这个脚本。通过configure脚本还可以对程序的模 块进行自定义,可以禁用或者激活某个功能。
b.编译程序+ 湖南.大学生科技创新平台3 L( J( l7 u# ~7 A, g
根据configure脚本生成的Makefile文件,对源代码进行编译、链接,生成二进制文件。但这个时候的二进制文件一般来说还不能使用。
c.安装程序
通过make install命令,把编译好的二进制文件安装到相应的路径,这个时候程序才真正可以使用。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net# X" c; L6 R; m, e" }1 K
C.程序安装到哪里?
一般编译安装的程序都会安装到/usr/local下面。比如php就会被安装到/usr/local/bin/php,php.ini会被安装到 /usr/local/lib/php.ini,等等。如果需要指定安装目录,在configure的时候指定--prefix参数,会把所有文件都安装 到prefix目录中。比如./configure --prefix=/usr/local/php。那么会把所有文件都安装到这个目录,最后看起来会是/usr/local/php/bin/php和 /usr/local/php/lib/php.initechteamhut.5d6d.net* x1 z5 q; C* H6 ?' ~/ o7 W7 P
D.如何得到configure的参数?
常用的configure参数有--prefix,可以通过./configure --help得到更多的参数。一般带有--enable-、--with-开头的参数都是启用某个功能,--disable-、--without-开头的都是禁用某个功能。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net; l8 m% h7 Q- T3 o8 x
E.如何删除安装好的程序?湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) d( ?$ B0 d1 X/ v% `, K
Linux删除程序跟Windows不太一样。Windows建议使用卸载功能卸载程序,Linux下通过包管理软件安装的程序也可以直接用命令删除,例如:
yum remove php(yum)
apt-get remove php5(apt)$ v' o8 r& `4 L3 U" g+ e$ D
如果通过源代码包安装的程序,一般会带有make uninstall,通过这个命令可以删除所安装的文件。如果不带有make uninstall,那么可以直接把程序安装目录删除。
注意:如果是依赖库(比如php如果要使用到mysql的功能,必须要先安装mysql,然后在配置php的时候指定mysql库的路径,那么php就是 依赖了mysql),删除被依赖的程序,那么用到依赖库的程序都将会无法使用(比如删除mysql后,php将无法正常使用mysql部分的功能)。
F.还有个make clean是干什么用的?techteamhut.5d6d.net+ v4 t9 ]% a) ?
make clean用来打扫战场。把所有编译时留下的临时文件、编译后的二进制文件等都清理掉。一般建议在make install后make clean,方便下次重新编译和节省空间。techteamhut.5d6d.net3 a& Y! E' j2 `. H8 f
2.源代码编译时的优化湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net6 m) K) y% A/ s& h8 e
用Windows的朋友都知道,平时最头痛的事情就是程序占用CPU太高,而且消耗内存特别大。这是因为Windows的程序都是一些“通用”程序,并没 有针对特定的平台和特定的CPU进行优化。在Linux下,通过源代码来编译二进制文件,这个问题将得到有效的改善。我们可以通过添加优化参数,让程序针 对某个CPU型号和某个系统进行最大优化,减少文件大小、CPU使用率、内存使用率。
但是,通过指定优化参数来编译的程序,将不再具有跨系统跨平台的能力。就算两台机器系统版本一样,只要CPU不一样,程序都无法运行。程序只能在所编译的机器上运行。techteamhut.5d6d.net5 m7 e& Z' I7 W
一般情况下,优化参数都是通过export命令设定CFLAGS和CXXFLAGS,然后configure的时候会自动读入,make的时候会自动使用所选的优化参数。% h" g: Y5 ]6 i; R& ?# H
例如,普通Pentium 4的CPU(显示的型号为Intel(R) Pentium(R) 4 CPU XXXXMHz,cpu family: 15,model: 0/1/2)就可以输入下面的命令
export CHOST="i686-pc-linux-gnu"
export CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
export CXXFLAGS="${CFLAGS}"

CPU型号等信息可以通过输入下面的命令得到+ 湖南.大学生科技创新平台8 P/ }( G+ i# M8 ^: I3 u
cat /proc/cpuinfo
将会输出类似下面的信息techteamhut.5d6d.net" I% g" _3 S0 [3 N: D8 t
processor       : 0湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net9 Z6 Q# c: e! T" G+ B; C
vendor_id       : AuthenticAMDtechteamhut.5d6d.net6 J# Z: o' ?- l' Y+ R1 g
cpu family      : 15
model           : 47湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* y% n) L# y; u5 H7 @* E
model name      : AMD Athlon(tm) 64 Processor 3200+techteamhut.5d6d.net: k$ V$ ?+ o( e/ O
stepping        : 2techteamhut.5d6d.net3 j, t. q# V6 O, u. s' M
cpu MHz         : 2000.336
cache size      : 512 KB
fdiv_bug        : no湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net0 j6 M$ _: L/ }. d$ x
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ V1 d% [( ~6 R- h( _0 A" E, B
fpu_exception   : yes湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net) [' b( v6 Z1 z8 \
cpuid level     : 1techteamhut.5d6d.net: P  u  B+ C( z6 l# x
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp tm stc湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net; M' b" M$ \+ n) w/ |- O5 K+ y
bogomips        : 4002.57+ 湖南.大学生科技创新平台- c) Z$ J& Y$ J% I, k5 W/ W
上面的信息显示了这是一颗AMD Athlon 64 3200+的CPU。+ 湖南.大学生科技创新平台3 j% t( r& }% v3 ]; n; H6 o. o+ M/ v. {
CPU优化参数可以从下面地址获得(有些cpu family和model没有,可以用相同型号的代替)
http://gentoo-wiki.com/Safe_Cflags湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net0 {6 ]& t% Z$ A$ P' Z

3.编译Squid的前期准备湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net. c6 S3 X+ X+ i8 Q( r
我们需要先了解一个叫做“文件描述符”的东西。我们知道,人能同时干的事情是有限的。文件描述符就是一个限制最大上限的东西。文件描述符用来限制一个程序 能同时打开的文件数目,默认是1024。也就是说,如果不修改文件描述符,那么一个程序只能同时打开1024个文件。1024这个数字,一般程序已经够用 了,但Squid不行。Squid会同时打开成千上万个文件,以保证最高的效率和响应速度。techteamhut.5d6d.net% f. R5 M7 F0 U$ C
想象一下下面两种情况:a.用户每次访问squid,squid会按照需要打开文件,然后读取文件内容再返回给用户。b.squid预先打开访问频率高的文件,用户访问squid,squid直接把内容返回给用户。相对来说,后面的方法可以对用户的请求进行更加快的反应。( ~' F/ |# N+ N6 i5 d3 Q- c/ ^2 u
要更改文件描述符的大小,必须要修改两个文件。
/usr/include/bits/typesizes.h
/usr/include/linux/posix_types.h
用vi打开上面的文件(如果忘记如何使用,请参考前面章节),查找湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ i# N2 |7 v9 {
#define __FD_SETSIZE 1024techteamhut.5d6d.net: n( i) d1 @, t4 m
把1024改为65536,然后保存。
为什么是65536,不是更加大?因为这是Linux能接受的最大数值。
刚才编辑的这两个文件是C/C++程序里面的头文件,编译squid的时候会被自动引用。除了这两个文件以外,我们还需要对当前环境进行设置。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net: t! t% O  Y; ~! K
环境,也就是你用ssh登录到系统时的一些设定。每个登录进程都可以进行单独的设置,在没有把设置写入环境配置文件(.profile,.bash_rc)的情况下,关闭登录进程后环境设置会丢失。' x6 \' A8 p/ g6 ~9 [" j0 ]
举个例子,你使用pietty开了两个窗口,使用同一个帐号密码,同时登录到同一台服务器上面,然后在其中一个登录进程中使用export命令,那么只会在这个登录进程中生效,对另外一个登录进程不起作用。
明白后,我们说一下ulimit命令。ulimit用来设置当前环境的一些资源限制。刚才所说的,这个命令是对环境进行设置,所以退出当前登录进程后命令将会失效。techteamhut.5d6d.net: v3 h, L9 Z# T% s) o" u* j( R
我们输入下面的命令湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 G( r) [2 E7 s0 G6 T
ulimit -Hs 65536
ulimit -n 65536
H参数是硬性限制,s是堆栈上限,n是文件描述符上限。
最后,我们使用wget把squid的源代码下载回来。+ 湖南.大学生科技创新平台+ U1 a1 V: r0 e+ U' D9 [+ Y8 n
wget http://www.squid-cache.org/Versi ... 2.6.STABLE13.tar.gz
wget是unix下一个支持断点续传的下载工具。会有一些比较实用的功能,比如把别人整个网站都下载回来(像平时用的小偷吧?)。

 

第 6 章 编译并安装Squid

湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net2 \1 U4 c( }: l
首先使用tar把源代码压缩包解压
tar zxvf squid-2.6.STABLE13.tar.gz
解压后,我们得到一个名为 squid-2.6.STABLE13 的目录。进入目录# R; f7 u9 f# o# {
cd squid-2.6.STABLE130 u2 T: n. `( I, b% d8 K* W
在configure前,我们必须要先设置cflags,这里我们假设CPU是intel core duo的,cpu family 6,model 14。通过 http://gentoo-wiki.com/Safe_Cflags#Intel_Core_Solo.2FDuo 可以找到对应的优化参数
CHOST="i686-pc-linux-gnu"湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net# C# f$ k$ V. ^8 Y5 H. F( p* p
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
然后通过export命令设置
export CHOST="i686-pc-linux-gnu"
export CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"+ j$ e8 E3 ^6 e: @
export CXXFLAGS="${CFLAGS}"湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net6 w3 v+ {7 m. T" H- `
设置完成后,我们可以通过env命令来查看是否设置成功。
然后,我们开始configure源代码。使用下面的命令,把squid安装到/usr/local/squid目录中去。. _2 g! |4 f4 Q: z2 j% b' s3 z
./configure --prefix=/usr/local/squid --enable-follow-x-forwarded-for --enable-storeio=aufs,ufs --with-maxfd=65536 --with-pthreads --enable-dlmalloc --enable-poll --enable-stacktraces --enable-removal-policies=heap,lru --enable-delay-pools
对应参数的作用可以使用./configure --help得到。
这里大家要注意下,configure前面还有一个./,这个代表当前目录。意思是当前目录下面的configure文件。linux如果要执行当前目录 的文件,必须要加上./。如果要执行当前目录下的下级目录里面的文件,可以不用加,比如bin/run。当然,./bin/run也是一样的效果。
接着我们会看到屏幕向下翻滚,出现一大堆checking for …的字样。一直等到下面的文字出现,并且停止,那么configure就算完成了。
config.status: creating tools/Makefiletechteamhut.5d6d.net' W% C3 l/ @; v' Y
config.status: creating include/autoconf.h湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net8 W, _3 W9 q( K# P- q
config.status: executing depfiles commands
[root@cnc squid-2.6.STABLE13]#
然后,我们输入make编译源代码,又是一行行的英文翻滚。是否有点感觉做黑客的味道?我们要做的还是继续等待下面的文字出现
make[2]: Leaving directory `/root/squid-2.6.STABLE13/tools'
make[1]: Leaving directory `/root/squid-2.6.STABLE13/tools'! l6 P& s8 c: X3 f8 j
make[1]: Entering directory `/root/squid-2.6.STABLE13'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/root/squid-2.6.STABLE13'
[root@cnc squid-2.6.STABLE13]# techteamhut.5d6d.net, Z" h: J0 t6 K4 w
这样源代码就算编译完成了。然后我们运行make install安装,等待下面的提示
make[2]: Leaving directory `/root/squid-2.6.STABLE13'+ 湖南.大学生科技创新平台$ P6 c. k2 L8 b6 E; c* w, f+ ~
make[1]: Leaving directory `/root/squid-2.6.STABLE13'
[root@cnc squid-2.6.STABLE13]#
这里要注意:如果任何一个步骤出现带有error之类的警告,那么就是编译出错,需要检查到底是什么步骤出现问题并且改正。如果严格按照本文来编译,一般是不会出现错误的。另外,cflags参数使用不当同样会造成编译错误。
如果出现编译错误,必须要先make clean,然后重新make。(如果错误是在configure这步就不需要了)湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net1 R9 \* I' b" l5 X' j; h7 @
到这里,squid就算是编译安装完毕了。我们可以到/usr/local/squid目录看看,里面已经躺着一大堆文件了。
[root@cnc squid-2.6.STABLE13]# cd /usr/local/squid
[root@cnc squid]# ls -lh+ 湖南.大学生科技创新平台* c7 [( n, `% H. V$ a7 Z
total 72K
drwxr-xr-x 2 root root 4.0K Jul  7 02:27 bin+ 湖南.大学生科技创新平台$ }9 W  O/ u8 w5 ]; m* M: H% U
drwxr-xr-x 2 root root 4.0K Jul  7 02:27 etc+ 湖南.大学生科技创新平台- M  E& c* X, D
drwxr-xr-x 2 root root 4.0K Jul  7 02:27 libexec
drwx------ 2 root root  16K Jun 15 08:09 lost+found
drwxr-xr-x 3 root root 4.0K Jul  7 02:27 man
drwxr-xr-x 2 root root 4.0K Jul  7 02:25 sbin
drwxr-xr-x 4 root root 4.0K Jul  7 02:25 share
drwxr-xr-x 3 root root 4.0K Jul  7 02:25 var湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net0 y8 k- }  f; m6 ^. F) L
[root@cnc squid]#
接着我们要做的是配置squid。

 

第 7 章 配置Squidtechteamhut.5d6d.net! E8 }( n3 @+ B. D2 B& {
1.设置hosts表湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net1 @% F  g: }8 [. U) w
首先我们要明白一下squid在CDN中扮演的角色。squid在CDN中其实只是一个代理+缓存。跟一般的代理服务器类似,squid代替用户向真正有 内容的服务器进行请求,并且缓存下来。所不同的是,squid是作为一个类似apache一样的web服务器存在,用户访问的时候并不感觉到是访问了一台 代理服务器,而是一个真实的web服务器。一般情况下,我们把这种方式称之为“反向代理”。
所以,我们需要让squid知道内容要到哪里去取。因为我们已经把域名naizhao.com设置了智能DNS,而且这台squid服务器也是网通的,按 照正常的dns解析,会把naizhao.com解析为2.2.2.2这个IP(也就是网通机器本身)。但这个IP上面并不存在任何所需要的内容,所有需 要的内容其实是在1.1.1.1上(源服务器)。所以我们需要为naizhao.com固定一个IP,也就是1.1.1.1。+ 湖南.大学生科技创新平台: Z7 |6 X5 A4 l4 G& G0 s8 D7 N
让系统得到这个IP的方法有两种,一种是设置hosts表,另外一种是系统里面搭建一个dns服务器。Windows下大家应该会经常去编辑到hosts 文件,linux下同样也存在这个文件,我们在前面的vim教程中已经提到过。搭建dns系统这个方法工程太过庞大,还是编辑hosts文件相对来说比较 简单,所以我们就采用编辑hosts表的方法。
linux下面的hosts表位于/etc/hosts,格式跟Windows大致相同,打开后我们把下面一行加到末尾
1.1.1.1         naizhao.com www.naizhao.com cnc.naizhao.com湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net# U6 J& P4 U- {
如果已经按照前面的教程,添加过1.1.1.1这条记录的,修改为上面的样子。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net/ t$ I% H9 O$ C. b" _- Y
2.设置squidtechteamhut.5d6d.net9 S+ M. a7 y9 p0 |2 Z. W# u
squid的配置文件位于/usr/local/squid/etc/squid.conf,打开后会有英文的详细说明。暂时我们不需要去理解这个文件里 面各个配置的含义,相信大家看到一大堆英文都会头大的。大家只需要知道如何把squid按照自己的需求跑起来,并且不出错就好。, u/ i) I0 F  h
我们先用rm命令把squid.conf删掉。不用怕删掉后找不回来,还有一个默认的squid.conf.default在呢。一般的linux程序,包括apache等,都会有一个.default的默认文件,方便大家恢复默认设置,或者作为一个修改的参考。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net: w4 T2 k& p4 G! {9 a2 ]
squid.conf删掉后,我们再用vi squid.conf,新建这个文件,然后把下面的内容帖进去,保存湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net' R+ m# A1 e. ]* p
http_port 80 vhost vport=80
acl apache rep_header Server ^Apache湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net% a/ r1 Z3 `  \8 v8 d; t- d( K
broken_vary_encoding allow apachetechteamhut.5d6d.net; p+ @  D- q; G# r0 z" l
cache_mem 1024 MB
maximum_object_size 4096 KB
minimum_object_size 0 KB湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 }* }& I/ T- S9 |
maximum_object_size_in_memory 256 KB湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net" S  W% K4 w. L4 H' o% M! s
cache_dir ufs /var/spool/squid 20480 16 256
cache_swap_low 80techteamhut.5d6d.net( I7 d% g6 J, ^6 q1 w# ]7 e- o
cache_swap_high 97techteamhut.5d6d.net  L0 p- @8 z0 ?* ~! j# p& V
strip_query_terms off
request_body_max_size 5 MB
memory_pools on
memory_pools_limit 50 MB
access_log none
cache_log /var/log/squid/cache.log
cache_store_log none湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 ^" ~- }6 F3 P7 Z9 ^$ P
pid_filename /var/run/squid.pid湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 P2 f- F# i  s/ J6 q, J* a
hosts_file /etc/hoststechteamhut.5d6d.net8 @8 |0 ~) {+ N  B/ d
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440techteamhut.5d6d.net( F' h+ i$ d, u( C) r+ F& v( f
refresh_pattern -i naizhao\.com          240     100%    1440    ignore-reload
refresh_pattern -i www\.naizhao\.com           240     100%    1440    ignore-reload
refresh_pattern -i .gif 180 20% 10080 override-expire ignore-reload reload-into-ims
refresh_pattern -i .jpg 180 20% 10080 override-expire ignore-reload reload-into-ims
refresh_pattern .                           120  50%    1440
acl all src 0.0.0.0/0.0.0.0
acl p-manager proto cache_object
acl s-localhost src 127.0.0.1/255.255.255.255湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net( @9 K: O3 `$ R, M' d
acl d-localhost dst 127.0.0.0/8湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net0 z' z& V# D1 G6 a0 Y
acl d-domains dstdomain .naizhao.com湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net- M/ B- o5 u! ]( d8 `# V9 R4 a
acl p-ssl  port 443 5639 x9 g# A2 A- X& \: l
acl p-safe port 80 443 563湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net9 y  I* p, `3 B1 a
acl m-conn method CONNECT
acl m-purge method PURGE
acl n-maxconn maxconn 15湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net7 Z& Q. y  H+ t3 b5 I' D8 @3 o% Q, s
http_access allow p-manager s-localhost
http_access allow m-purge湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net" i6 l, l2 i, {8 q1 d
http_access deny  !p-safe湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* S6 o6 W! g; [+ V4 U
http_access deny  m-conn !p-ssl湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net& u/ P4 G$ L" A% r, @: U: E
http_access deny  n-maxconn湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net' c) o  |, W4 U$ J  k7 ?! R
http_access allow p-manager
http_access allow d-domainstechteamhut.5d6d.net! Q7 J5 V) {2 `, N8 L$ F( L
http_access deny  all+ 湖南.大学生科技创新平台6 v  Y4 i! h6 b0 Q
http_reply_access allow alltechteamhut.5d6d.net( d$ @# |) K3 v) Z% h! |
acl r-url urlpath_regex realtime
cache deny r-url湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net& K" r% W- p9 M- r' ~# x; q) A+ {
icp_access allow all湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net1 ^# j2 Z) i* x/ U8 E1 a
follow_x_forwarded_for allow all湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net( Z/ S! Y, C( M
acl_uses_indirect_client offrange_offset_limit -1
dns_timeout 2 seconds+ 湖南.大学生科技创新平台' G- e7 g8 s% a
forward_timeout 10 seconds
connect_timeout 10 seconds+ 湖南.大学生科技创新平台% b, {& V) Z- g$ e# m0 @4 V) k
peer_connect_timeout 6 seconds
read_timeout 10 secondstechteamhut.5d6d.net5 ^; [. M7 V) }0 A& i: _
request_timeout 6 seconds
persistent_request_timeout 16 seconds
cache_mgr silence.z@gmail.com湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net9 V8 L9 [3 a- |
cache_effective_user nobody
cache_effective_group nobody湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net9 l' J/ v; D' B2 h) X4 r) J
visible_hostname cnc.naizhao.comtechteamhut.5d6d.net# Z5 e' h, E) R0 c
logfile_rotate 0湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net+ J; m$ N( ^7 t
always_direct allow all湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net, F7 d: L2 a( u" }' Q
error_directory /usr/local/squid/share/errors/Simplify_Chinese
coredump_dir /var/spool/squid+ 湖南.大学生科技创新平台7 q9 U0 u4 H/ T3 {" g5 J

需要说明的几个参数:
cache_mem 1024 MB (squid使用的内存大小,注意必须要留下500M左右的内存给系统使用,建议系统内存2G,然后分配1G给squid)
cache_dir ufs /var/spool/squid 20480 16 256 (缓存的目录,放在/var/spool/squid下面,大小是20G,第一级目录是16个,第二级目录是256个。因为一个目录下面放置的文件和目录 数量有限制,所以这里必须要设置多个目录,以适合squid存放大量文件的需要。目录数千万别设置太大,否则会引起系统死机)
memory_pools_limit 50 MB (内存池,用来存放缓存文件的链表,方便高速查找文件存放的对应位置,不需要太大。不懂就别管了)techteamhut.5d6d.net# }8 C4 C3 K6 G) M  p3 A: S. {
cache_log /var/log/squid/cache.log(log文件的存放位置,必须要有读写权限,稍后说到)
refresh_pattern -i naizhao\.com          240     100%    1440    ignore-reload. a& b9 P) v: ^  L: o/ c# D
refresh_pattern -i www\.naizhao\.com           240     100%    1440    ignore-reload
refresh_pattern -i .gif 180 20% 10080 override-expire ignore-reload reload-into-ims9 j4 y2 Q# V* f8 {( b0 o5 e9 a
refresh_pattern -i .jpg 180 20% 10080 override-expire ignore-reload reload-into-ims湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net' X- K( h0 U) `, V) I
(上面的几行指定了文件缓存的时间,可以指定某个域名,也可以指定某个文件类型。有更加多的域名或者文件类型就按照需要添加吧。-i是忽略大小 写,naizhao.com和.gif是文件类型,240是最小缓存的时间,1440是最大缓存时间,都是分钟。这些先不用管,有需要的时候调整就好了。 我们的口号是:先跑起来)$ \* B- `9 h, ^( W0 E
acl d-domains dstdomain .naizhao.com(允许访问的域名列表。如果要跑多个网站就添加多几个,用空格分开。naizhao.com前面有个英文的.,表示所 有*.naizhao.com都允许。如果没有这个点,那么就只允许naizhao.com,访问www.naizhao.com就会提示访问被拒绝。)
cache_mgr silence.z@gmail.com (管理员的邮件地址,改为自己的)湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net5 m* I  [: a9 q/ {0 W
cache_effective_user nobody
cache_effective_group nobody
(用来跑squid的用户和用户组。为了避免使用root帐号造成的不安全因素,大部分linux程序都会先用root运行,然后马上把运行的用户从 root切换到其他用户,这样就算程序有漏洞被黑了,黑客也只能得到这个普通用户的权限,对系统的危害将大大降低。保持默认即可)
visible_hostname cnc.naizhao.com (服务器输出的机器名字,多台squid分布的时候这个很重要,通过设置多个不同的名字,很容易就可以找出哪台服务器有问题)
coredump_dir /var/spool/squid (squid挂掉后,临终遗言要放到哪里。不用管,一般人看不懂)
修改好配置文件后,我们还需要做一些最后的工作。+ 湖南.大学生科技创新平台2 `  c5 F% M8 }4 N$ G, x  ~% G
先建一个log目录,用来存放log文件。按照squid.conf的设置,我们输入下面的命令
mkdir /var/log/squid
chown nobody:nobody /var/log/squidtechteamhut.5d6d.net+ ]3 Q- V' Z' x3 w' @' x; c
chown命令是设置所有者和组。刚才说了,squid将会使用用户nobody组nobody来运行。nobody:nobody冒号前面的是用户,后面的是用户组。
还有squid的缓存目录,同样需要设置权限为nobody:nobody  A# X' z8 h4 z+ a' m
chown nobody:nobody /var/spool/squid) f& c* v: l; ^1 ]+ C) o
查看命令是否成功,可以使用ls -lh6 v! G" D& e% L- U( P# f
ls -lh /var/spool/湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net# g; a2 n% f7 r1 i4 `" y! u
……
drwxr-xr-x 3 nobody nobody 4.0K Jun 15 08:19 squid湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net1 C/ H( |0 C' J1 t. a
剩下最后一步,初始化squid的缓存目录结构。(也就是刚才说的16个一级目录,256个二级目录。本身这些文件夹不存在,需要通过squid的命令建立)
squid的命令在/usr/local/squid/sbin下,我们进入这个目录,然后看看squid命令的帮助
./squid -h
Usage: squid [-hvzCDFNRYX] [-d level] [-s | -l facility] [-f config-file] [-u port] [-k signal]湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net- J9 E6 P# f% e: s
       -d level  Write debugging to stderr also.+ 湖南.大学生科技创新平台: O+ A0 x6 y! @1 o$ `  J
       -f file   Use given config-file instead of+ 湖南.大学生科技创新平台) ?! t9 g2 d( _; x
                 /usr/local/squid/etc/squid.conf湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net$ k, v5 ^9 y5 B. t8 ?+ A
       -h        Print help message.techteamhut.5d6d.net( D2 @0 u2 ^9 Q" H7 v/ v
       -k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse8 S( }& _( \1 F( u0 ]3 L
                 Parse configuration file, then send signal to + H" Z0 l4 \+ G) w) S
                 running copy (except -k parse) and exit.湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net) O' r+ v- o' z* k3 p
       -s | -l facility
                 Enable logging to syslog.techteamhut.5d6d.net8 k- ^- x* }" E. {" M$ [
       -u port   Specify ICP port number (default: 3130), disable with 0.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net  R) Q% Q: r, D, }# y: T
       -v        Print version.
       -z        Create swap directories湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net8 \% r! x* \: O3 L. s
       -C        Do not catch fatal signals.techteamhut.5d6d.net5 J5 C6 l8 I5 ~) d+ A* H
       -D        Disable initial DNS tests.$ S7 X6 y$ _. {+ {( I* R
       -F        Don't serve any requests until store is rebuilt.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net" D" k! U1 [5 ^( U: z
       -N        No daemon mode.
       -R        Do not set REUSEADDR on port.3 b2 H2 ~: e! [/ O+ Y/ R/ g
       -S        Double-check swap during rebuild.
       -X        Force full debugging.
       -Y        Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.+ 湖南.大学生科技创新平台" |$ V  w- x2 N6 Z1 @; b
我们可以看到-z命令就是建立缓存目录的,所以我们输入湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net* T6 g5 {- N- v# r
./squid -z湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 z/ ^3 v% m' j* D/ f8 B# Y# J% \
2007/07/07 07:52:03| Creating Swap Directoriestechteamhut.5d6d.net- T/ n' x" r5 K/ G5 k
没有任何错误提示,说明目录已经建立成功了,我们可以用 ls /var/spool/squid看看效果。湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net3 z. @8 ?7 w! b* d! K, _
最后,我们让squid跑起来
湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net; Q' N0 s6 G0 D& }; r

./squid -Nd 10湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net7 m+ K: Q4 Z/ \( x& K
2007/07/07 07:53:50| Starting Squid Cache version 2.6.STABLE13 for i686-pc-linux-gnu...湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net$ ]+ ^1 k6 Z& [8 w
2007/07/07 07:53:50| Process ID 3135
2007/07/07 07:53:50| With 1024 file descriptors available
2007/07/07 07:53:50| Using poll for the IO loop
2007/07/07 07:53:50| Performing DNS Tests...
2007/07/07 07:53:50| Successful DNS name lookup tests...湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net0 r6 ~  l( I. p
2007/07/07 07:53:50| DNS Socket created at 0.0.0.0, port 1026, FD 4
2007/07/07 07:53:50| Adding nameserver 211.147.6.3 from /etc/resolv.conf湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net8 H( @1 N8 V+ ?# B6 _3 I! W
2007/07/07 07:53:50| Adding nameserver 61.233.9.9 from /etc/resolv.conf湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net$ q3 P: @9 r1 M2 }) {
2007/07/07 07:53:50| Unlinkd pipe opened on FD 8
2007/07/07 07:53:50| Swap maxSize 20971520 KB, estimated 1613193 objects
2007/07/07 07:53:50| Target number of buckets: 80659
2007/07/07 07:53:50| Using 131072 Store buckets
2007/07/07 07:53:50| Max Mem  size: 1048576 KB湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net+ H9 E  \1 d4 L1 }
2007/07/07 07:53:50| Max Swap size: 20971520 KB湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net! L) Z1 l, a" f
2007/07/07 07:53:50| Store logging disabled+ 湖南.大学生科技创新平台1 N& ?7 q4 u) _0 _( l# X
2007/07/07 07:53:50| Rebuilding storage in /var/spool/squid (DIRTY)
2007/07/07 07:53:50| Using Least Load store dir selection
2007/07/07 07:53:50| Set Current Directory to /var/spool/squid湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net  r1 m- j6 u( ]
2007/07/07 07:53:50| Loaded Icons.
2007/07/07 07:53:52| Accepting accelerated HTTP connections at 0.0.0.0, port 80, FD 7.
2007/07/07 07:53:52| Accepting ICP messages at 0.0.0.0, port 3130, FD 9.
2007/07/07 07:53:52| WCCP Disabled.
2007/07/07 07:53:52| Ready to serve requests.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net# F- _5 d, Z# y2 C" T: |2 G
2007/07/07 07:53:52| Done scanning /var/spool/squid (0 entries)
2007/07/07 07:53:52| Finished rebuilding storage from disk.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net  g; E1 l4 y7 D) E2 `& x  r% C2 q
2007/07/07 07:53:52|         0 Entries scanned湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net1 v6 W0 o; y7 P) e+ o, H1 L! p
2007/07/07 07:53:52|         0 Invalid entries.
2007/07/07 07:53:52|         0 With invalid flags.
2007/07/07 07:53:52|         0 Objects loaded.
2007/07/07 07:53:52|         0 Objects expired.4 j, W4 R- E, ~5 `* {$ z6 L
2007/07/07 07:53:52|         0 Objects cancelled.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net  s/ ~9 |  d4 b8 q- T# F
2007/07/07 07:53:52|         0 Duplicate URLs purged.
2007/07/07 07:53:52|         0 Swapfile clashes avoided.湖南大学生科技创新平台,湖南工业大学 学生技术平台 BBS,湖南工大 学生技术平台 innlab.net7 {) U! G: V! p4 T3 G* s! P
2007/07/07 07:53:52|   Took 2.0 seconds (   0.0 objects/sec).
2007/07/07 07:53:52| Beginning Validation Procedure
2007/07/07 07:53:52|   Completed Validation Procedure+ 湖南.大学生科技创新平台- @3 k& \9 _8 S- c
2007/07/07 07:53:52|   Validated 0 Entries
2007/07/07 07:53:52|   store_swap_size = 0k湖南工业大学 学生技术平台主办 .NET 应用,计算机网络,系统集成 innlab.net6 w- Z; p3 }" x' m
2007/07/07 07:53:53| storeLateRelease: released 0 objects" r& m. l0 h/ j! }
打开浏览器,输入http://2.2.2.2,会看到Access Denied的错误提示,说明squid已经正常跑起来了。
因为指定了-d参数,所以现在squid会把所有的调试信息都输出终端。 按下键盘的ctrl+c,然后输入killall squid杀死squid,可以终止squid的进程。

转载于:https://www.cnblogs.com/tonykan/archive/2012/11/18/2776513.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值