使用FreeBSD构建家庭网络世界的教程

使用FreeBSD构建家庭网络世界的教程

随着现在电脑的普及和更新换代,越来越多的家庭已经有了好几台电脑,上网的家庭也越来越多,于是经常会出现好几台电脑想同时上网的情况,这样的话必须让其中一台电脑安装两块网卡作为网关服务器(前提是没Money买路由器哈),大部分的人会选择Windows2000作为该服务器的操作系统,因为配置起来非常简单,而同时这台服务器还可以继续充当普通的工作站使用,但是这样一台服务器的配置一般来说是家里的“主力”,否则跑Win2000会非常慢,而且为了能让其他的电脑能够随时上网的话它还必须24小时不间断的工作,大家都知道如今主流配置的电脑功耗都很大,这样的话为此支付电费也将是个不小的数额,再说让你爱机连轴转你也不舍得对么?加上目前蠕虫满天飞,一个不小心中招了就麻烦了,因为这将经常导致网络无法正常使用,对于家庭用户可能是小事,但对于一些科研、企事业单位来说,网络也许一分钟都不能断的。而同时,一些若干年以前被追星捧月的老电脑如今却大多是被冷落在墙角,这些机器是基本上跑不了Win2000,所以我们无法用传统的方法来利用它发挥余热,不过有了FreeBSD操作系统,一切都不同了。

FreeBSD诞生于386BSD计划,该计划由Bill Jolitz等研究人员发起,旨在将Unix从当时昂贵的UNIX服务器移植到普通X86平台的PC机上运行,后来又有了另三个参与者-Nate Williams, Rod Grimes和Jordan K. Hubbard加入了该计划,他们都决定继续这项非常有意义的工作,后来他们采用由David Green man起的“FreeBSD”作为系统的新名字,因为经过他们的努力,从此就有了一种任何人都可以自由使用的Unix操作系统,Free就是只有的意思。FreeBSD是多用户操作系统,FreeBSD全面支持TCP/IP协议,从1993年12月FreeBSD 1.0版本正式发布到如今的FreeBSD5.X浮出水面,该操作系统超级的稳定性、可操作性、高效率、安全性、和对系统的低依赖性已经吸引了很多用户,在熟悉了FreeBSD之后,就不会有人怀疑这个系统的性能了,它已经是Internet上非常流行的一种网络操作系统,著名的Yahoo、Hotmail、163电子邮局等等都是用它作为系统平台。说了这么多大家肯定已经等不急了,下面马上进入正题-怎么利用FreeBSD4.5将一台老掉牙的配置为奔腾100CPU、16M EDO内存、850M硬盘的主机(从二手电脑城购买大概150元左右,486也行)变成稳定、高速的网关服务器、FTP服务器、文件服务器、Apache+PHP+Mysql服务器以及功能强大的代理服务器,让老机重唤青春。

第一章:安装FreeBSD

首先你最好要有FreeBSD的安装光盘,你可以从软件商店里面花10块钱买到,也可以从www.freebsd.org上免费下载三张安装光盘的第一张ISO镜像文件然后再将它刻录成光盘。FreeBSD还支持很多安装介质,比如Ftp、NFS等,但都不如光盘保险。接着可以从别的台式机上借过来光驱、键盘、显示器给该主机装上,把主板BIOS设置为从光驱引导,如果是486电脑,主板可能不支持光驱启动这个时候你可以用光盘上floppies目录里面的boot.flp和kern.flp这两个软盘镜像文件制作两张启动软盘,制作过程请参考光盘上的readme.txt文本,启动时候先插boot盘再按提示插kern盘引导。正常引导之后我们可以看到图1的画面。
使用FreeBSD构建家庭网络世界的教程
图1

为了简单起见直接选择第一项“skip kernel configuration and continue with installation”忽略内核配置继续安装,如果选择第二项系统将进入一个简单内核的配置界面,在那里可以去除一些你电脑里面没有的设备,比如SCSI设备、USB设备等等,这样的好处就是精简了系统,减少了内核的大小也能缩短系统的启动检测硬件的时间。接下来的图2为选择安装方式,我们选择“Express”模式进行安装,这和“Standard”模式的主要区别在于在拷贝完文件之后不会要求你立刻设置网络、用户等信息,所以是给没有耐心的人的选项,此处选择这个模式的目的是不让安装系统设置网卡,因为网卡要到后面通过单独设置“/etc/rc.conf”来实现。
使用FreeBSD构建家庭网络世界的教程
图2

使用FreeBSD构建家庭网络世界的教程

图3
使用FreeBSD构建家庭网络世界的教程
图4

图3显示的是FreeBSD自带的Fdisk硬盘分区编辑器,由于我的硬盘是个空盘,只显示了一个名为“unused”的未使用分区,如果硬盘上还有DOS或NTFS分区的话在这里均能看到,如果硬盘已经没有空余空间,请先用Pqmagic软件等分区工具事先划分出来一块未使用的空间。有了一定大小的“unused”分区后就可以选中这个“unused”的分区然后按“C”键在该分区上创建FreeBSD分区,FreeBSD称之为“Slice”,接着我们看到图4的画面,按“Q”键保存并进入下一步。
使用FreeBSD构建家庭网络世界的教程
图5

图5显示让我们选择是否安装系统引导管理器,如果你的电脑以前有操作系统就选择第一项安装“Boot Manager”,系统将把Lilo程序安装到硬盘的MBR(主引导记录),开机Lilo将第一个运行来引导硬盘上的操作系统。由于这块硬盘只需要这一个系统所以不要安装系统引导管理器,所以选择模式“Standard”,这将把FreeBSD的引导模块加入硬盘的MBR。
使用FreeBSD构建家庭网络世界的教程
图6

接下来是在刚才创建的“slice”上划分FreeBSD文件系统的界面,对于对Linux和UNIX不熟悉的用户建议让FreeBSD自动创建这些文件系统,简单的按一下“A”键就可以让FreeBSD自动划分空间了,如图6。
使用FreeBSD构建家庭网络世界的教程
图7

再下来的安装模式选“Minimal”最小化安装模式,如图7所示,这样仅仅安装系统必须的143个包,节约硬盘空间和安装时间,其实最小安装已经包含了不少服务,比较实用Ftp、Telnet、sendmail、网卡驱动等都已经可以使用了。确认后系统会提示你数据将要丢失,继续确认后,出现选择安装介质的界面,选择”CD/DVD”从光驱安装后马上便开始安装拷贝过程,视电脑速度快慢,安装时间不同,在该CPU为P100的电脑上8分钟就完成了,推出安装重新重新启动,安装就全部结束了。

第二章:配置成为网关服务器

网关服务器是一台连接外部Internet网和内部家庭网络的计算机,它一般插有两块网卡,一块设置为外网卡,和ISP连接,一般有固定IP地址,如“202.115.65.225”;另外一块设为内网卡,IP地址设置为虚拟的地址,用得比较多的是“192.168.0.1”,它连接家里的HUB,使服务器成为家中局域网的一员。家中其他的电脑只要将IP设为“192.168.0.*”,“*”表示2-254的数字,注意不要两台电脑的IP地址设为相同,否则他们都将无法使用。把子网掩码设为“255.255.255.0”,网关设为“192.168.0.1”就都通过网关服务器上网了。接下来的内容讲述如何利用FreeBSD将该服务器配置成为能让所有客户机同时上网的网关服务器。

首先,在电脑主机上要有两块网卡,在此例中是两块RTL8029芯片PCI网卡。由于FreeBSD实现网关功能需要防火墙的支持,而不巧的是内核默认并没有配置防火墙支持,因此得先重新配置并编译内核才行。内核源代码目录在/usr/src/sys/i386下面,最小化安装时它并没有被安装,所以必须先安装。

第一步:安装内核源代码

启动FreeBSD,以root用户登陆,以下“#”开头的均是在电脑上执行的命令,输入命令注意大小写。看到“#”提示符之后运行

#/stand/sysinstall

命令执行后会出现图8的画面,我们选择“Index”后按空格键,在接下来的界面分别用空格键选“Distributions,Adding”、“Src”,在最后出现的界面仅仅选择“Sys”,这时放入FreeBSD的安装光盘,用“tab”键切换到“OK”按钮上回车就会将内核的源代码拷贝到相应的目录了。
使用FreeBSD构建家庭网络世界的教程
图8

#cd /usr/src/sys/i386/conf /*现在可以进入内核源代码配置文件GENERIC所在目录了*/

#ee GENERIC /*用ee编辑器编辑GENERIC文件*/

加入如下内容

options IPFIREWALL

options IPFIREWALL_DEFAULT_TO_ACCEPT

options IPFIREWALL_VERBOSE

options IPDIVERT

然后按ESC+回车保存退出

#config GENERIC /*用修改后的配置文件配置内核*/

# cd ../../compile/GENERIC

#make depend all install /*重新编译内核*/

接下来是漫长的编译内核过程,在该电脑上执行了1个小时左右之后回到“#”命令提示符模式,这样是成功配置完成的标志,用“reboot”命令重新启动电脑。

#reboot

第二步:配置网络

由于我们在安装FreeBSD的时候并没有配置网卡,重新启动电脑后的工作就是先配置网卡,以管理员“root”身份登陆后运行“ifconfig”命令察看目前检测到的网卡状态

#ifconfig

屏幕上会显示类似如下的结果:

ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet6 fe80::5054:abff:fe1e:8895%ed0 prefixlen 64 scopeid 0x1

ether 52:54:ab:1e:88:95

ed1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet6 fe80::2e0:4cff:fe80:132c%ed1 prefixlen 64 scopeid 0x2

ether 00:e0:4c:80:13:2c

lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

inet6 ::1 prefixlen 128

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4

inet 127.0.0.1 netmask 0xff000000

ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552

faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500

看看最上面两个设备就是你的两块网卡,我的两块RTL8029被标明ed0和ed1。

接下来修改配置文件“/etc/rc.conf”来设置网卡的参数

#ee /etc/rc.conf

添加如下内容

ifconfig_ed0=”inet 202.115.65.225 netmask 255.255.252.0”

ifconfig_ed1=”inet 192.168.0.1 netmask 255.255.0.0”

defaultrouter=”202.115.65.65”

第一行设置ed0这块网卡连接Internet,其IP为202.115.65.225,子网掩码为255.255.252.0,具体IP地址和子网掩码(netmask)需要根据情况修改;第二行设置ed1为内网卡,IP为虚拟地址192.168.0.1,子网掩码为255.255.255.0,这是个C类网,第三行设置连接互联网的网关的地址,这个可以咨询你的ISP得到。

继续在/etc/rc.conf中添加内容

gateway_enable="YES"

firewall_enable="YES"

firewall_type="simple"

firewall_quiet="YES"

tcp_extensions="YES"

natd_interface="ed0"

natd_enable="YES"

这些东西主要是设置防火墙(Firewall)类型,让系统启动防火墙、支持网络地址转换(NAT)并告诉系统通过“ed0”进行地址转换。

然后按ESC+回车保存退出

为了能解析域名我们还要在/etc/resolv.conf 加入域名服务器地址

#ee /etc/resolv.conf

添加

nameserver 202.115.64.33 #这是西南交大的主域名服务器

nameserver 202.116.64.34 #这是西南交大辅域名服务器

第三步:修改/etc/rc.firewall文件让所有的电脑可以通过防火墙自由进出

#cd /etc/

#ee rc.firewall

按”Ctrl+u”进入该文件最末尾,追加如下几行

/sbin/ipfw -f flush

/sbin/ipfw add divert natd all from any to any via ed0

/sbin/ipfw add pass all from any to any

然后按ESC+回车保存退出,就搞定了,是不是很简单?这里简单解释一下,第一行是将前面的防火墙规则全部清除,这也是为什么将这些行加在该文件的最后的原因;第二行是告诉服务器所有的数据包从ed0这块网卡上面通过地址转换NAT出去,ed0是连接Internet的外网卡;第三行设置防火墙为给所有用户通行。

如果要检验设置是否正确,请执行“#sh /etc/rc.firewall”看看是否有如下输出,有的话则正常

Flushed all rules.

00500 divert 8668 ip from any to any via ed0

00600 allow ip from any to any

第四步:配置客户机

重新启动你的这台服务器。家中其他的客户机只要把IP设为“192.168.0.*”,子网掩码设为“255.255.255.0”,设好ISP给你的DNS,网关设为“192.168.0.1”,就可以让全家的电脑通过这台服务器一起上网了,一台这样的服务器能耗少,稳定性好,几乎不会死机,如果情况不这么顺利,上不了网的话,那你先到服务器器上试试用“ping”命令对网关进行测试,如果失败的话执行”arp –ad”命令之后往往就可以解决问题,此命令用来删除服务器缓存中错误的网卡物理地址与IP地址的映射表。

接下来可以用telnet服务来远程管理这台服务器,为了启动该服务需要编辑“/etc/inetd.conf”文件,把“telnet”前面注释用的“#”去掉,重新启动之后服务器就会启动该服务,不过为了能在远程登陆,还需用“adduser”命令创建一个新用户用来登陆,这里假设为“zhp”。创建的原因是由于服务器出于安全考虑,拒绝“root”用户远程登陆,在远端如果需要得到管理员的权限可以先以普通用户登陆后执行“su”命令和管理员密码得到管理员权限,不过该普通用户必须属于“wheel”管理组,在该用户创建之初即可加入他到“wheel”管理组。

如果只有很少几台电脑需要共享这台电脑上网,可以不买集线器,你只要有一种一转二的网线转接头就可以了,如图9所示,理论上每增加一个转接头就可以多接入一台客户机,一个这样的转接头在电脑城大概3元一个,比买集线器经济多了。连接的时候注意内网卡ed1和第一个一转二的接头之间的网线不是普通的网线,而是两台电脑直连的那种网线,其内部连线经过了交叉,其他的网线均是普通网线。这种连接的优点就是节省一个集线器,但弊病就是各个客户端之间不能相互访问,不过后面还会介绍一种可以解决这个问题的方法,那就是用samba把FreeBSD服务器变成没台客户机都能访问的文件服务器。这样它就可以充当一个大家的中介,问题也就解决了大半。
使用FreeBSD构建家庭网络世界的教程
图9

第三章:配置成为文件服务器

刚才介绍过通过上面这钟方式连接的网络由于没有采用HUB,所以各个客户机之间不能象网络邻居那样相互访问,但是每个客户机都能访问服务器,所以如果我们能把FreeBSD服务器配置成为Windows网络邻居就方便多了,大家可以把要共享的东西拷贝到服务器上共享就是了。实现这种功能的软件就是Samba。

Samba的主要功能是让Windows的用户用网络邻居的方式共享Unix/linux服务器上的文件和打印机,该软件使用和局域网管理(LanManager)协议相兼容的SMB(或CIFS)协议来工作,其支持的客户端操作系统有DOS、Win95/98/ME、WinNT/2000、Macintosh、OS/2、Unix/Linux等,功能十分强大,而且它还自带一个可以让用户以WEB方式进行服务器配置的工具—SWAT(Samba Web Administration Tool),意即Samba基于网页的管理工具。接下来看看如何实现从同一局域网的Windows客户机上去访问FreeBSD的”/public”目录。

首先用Windows客户机从http://www.samba.org/网站上获取最新的软件包,以2.2.8版本为例,文件名为samba-2.2.8.tar.gz,Linux和Unix对软件包的命名方式是“软件名+版本”这种方式。为了将这个软件包上传到FreeBSD服务器上我们一般会用到FTP服务器。FTP服务和Telnet一样是FreeBSD最小化安装就带了的服务。启用它仅仅只需要在“/etc/inetd.conf”中把“ftp”前面的注释符号“#”去掉,然后执行”killall –HUP ‘inetd’”命令让系统重新读娶执行该配置文件,处理之后用FTP客户就可以登陆服务器了,登陆可以用除root外任何用户的账号。假设以”zhp”用户登陆,FTP将自动切换到了该用户的拥有目录-“/home/zhp/”目录,因为“zhp”是该目录的主人,所以拥有该文件夹的最高权限,当然也可以上传文件,接着把刚才下载的文件包上传到该目录。

下面将通过telnet软件(推荐NetTerm软件)以远程的方式来安装Samba。先还是用“zhp”用户登陆,用su命令切换到管理员模式,输入管理员密码后就可得到系统的控制权。安装步骤如下:

#cd /home/zhp /*这个目录为刚才FTP上传文件的目录*/

#tar –zxvf samba-2.2.8.tar.gz /*解压包到同一目录*/

这里文件名很长,可以在敲打了文件名开头的几个字母后按“TAB”键,系统的shell会自动补齐剩下的文件名。

#cd samba-2.2.8/soure /*进入Samba源代码目录*/

#./configure /*按缺省值配置Samba*/

#./make /*编译连接*/

#/make install /*拷贝和安装Samba,默认安装目录为/usr/local/samba*/

#ee /etc/services /*用ee编辑器修改services文件*/

加入“swat 901/tcp”于该文件中后存盘退出,它的作用是确定SWAT启动的监听端口,缺省是901端口,可以修改为别的数值。

#ee /etc/inetd.conf /*用ee编辑器修改inetd.conf文件*/

加入“swat stream tcp nowait root /usr/local/samba/bin/swat swat”于该文件中存盘退出,它的作用是以inetd的方式在启动的时候自动加载SWAT。

#reboot /*重新启动服务器*/

服务器重新启动之后,SWAT服务就已经启动了,现在可以用任何一台能连通该服务器的Windows客户机的IE来配置Samba服务器了,在IE地址栏输入http://202.115.65.225:901/会看到一个登陆框,输入“root”和“root密码”就进入了如图10的页面。
使用FreeBSD构建家庭网络世界的教程
图10

用最简单的配置方法我们只要修改修改GLOGALS和SHARES中的设置就可以了,我们点击GLOGALS后配置相关参数,如图11所示,这里配置该服务器的netbios名字为“BSD”,工作组为“ITP”,安全级别为“SHARE”,如果安全级别设置成“USER”就需要在访问文件的时候输入在FreeBSD上的账号。
使用FreeBSD构建家庭网络世界的教程
图11

接下来配置共享目录,先用“mkdir /public”命令建立“/public/”目录,为了让“public”指向“/public”目录必须要建立一个名为“public”的共享,如图12所示。
使用FreeBSD构建家庭网络世界的教程
图12

单击“Creat Share”按钮将建立名为public的共享,接下来按照图13所示配置好该共享属性。其中Path为路径,该处为“/public/”,read only设置为“NO”,该目录允许上传、修改和删除文件操作,将geuest ok设置为“Yes”则客户端访问时可以匿名访问,当然考虑到安全因素这样配置是不科学的,但是对于家庭用户着实很方便。
使用FreeBSD构建家庭网络世界的教程
图13

SWAT所作的工作仅仅是以可视化的方式修改了Samba的配置文件“/usr/local/samba/lib/samba.conf”,这个文件也可以手动修改,具体如何修改请参考相关文献。现的工作是启动samba,方法如下:

#cd /usr/local/samba/bin /*进入samba执行文件目录*/

#./smbd –D /*以daemon模式启动smbd,其功能为用smb协议同客户机通讯*/

#./nmbd -D /*以daemon模式启动nmbd,其功能解析netbios name*/

这个时候我们就可以在Windows客户机的网络邻居中看到我们的文件了,如图14所示。
使用FreeBSD构建家庭网络世界的教程
图14

第四章:配置成为WEB服务器

现在最流行的WEB服务器非Apache莫属了,但是在没有第三方软件支持它只基本上支持只静态的网页显示,但在安装上PHP支持和MYSQL数据库服务之后它就能运行几乎全部现成的程序,包括优秀的论坛、留言板,你甚至可以建设一个自己的软件下载站点。当然制作一个个人主页来展示自己,让自己朋友都来这里聚聚也很有趣。

那就看看如何实现。前面提到的“三剑客”-Apache、PHP、Mysql为三家软件公司的产品,每个软件都有很多安装参数,具体安装的组合方式也有多样,我选择了一种比较简单的方法给大家讲述。

第一步:下载软件包

这三个软件都是免费的,大家可以用客户机分别到它们的官方网站上去下载,网址如下:

Apache http://www..apache.org/

PHP http://www.php.net/

Mysql http://www.mysql.com/

下载的包是被先压缩成tar文件再打包成gz文件的,tar.gz为其扩展名,然后把它们利用FTP全部上传到“/home/zhp”目录,这里“zhp”是前面创建的用户。接着用Telnet远程获得管理员权限,执行”tar –zxvf $软件包.tar.gz”命令分别解开这三个包,本例执行了下面的三个命令。

# tar –zxvf apache_1.3.24.tar.gz

# tar –zxvf mysql-max-3.23.49-unknown-freebsdelf4.4-i386.tar.gz

# tar –zxvf php-4.1.2.tar.gz

这三个软件包解开后会生成三个目录,根据软件版本不同会有不同,本例为:

apache_1.3.24;mysql-max-3.23.49-unknown-freebsdelf4.4-i386;php-4.1.2

下面的操作我就以这些目录名为例继续安装和配置。

# cd /home/zhp/apache_1.3.24 /*进入apache安装目录*/

# ./configure /*预配置一下apache*/

# cd ../php-4.1.2 /*进入PHP安装目录*/

# mkdir /usr/local/php /*创建PHP安装目录*/

#./configure –prefix=/usr/local/php/ --with-mysql --with-apache=../apache_1.3.24 --enable-track-vars

/*生成配置文件,指定安装路径,支持mysql,告知apache安装文件位置*/

# make /*编译*/

# make install /*安装拷贝文件到/usr/local/php */

#cd ../apache_1.3.24

#mkdir /usr/local/www /*创建apache安装目录*/

#./configure --prefix=/usr/local/www --activate-module=src/modules/php4/libphp4.a /*libphp4.a现在并不存在,系统将会创建*/

#make /*编译*/

#make install /*安装拷贝文件到/usr/local/www*/

#cd ../php-4.1.2

#cp php.ini-dist /usr/local/lib/php.ini /*拷贝php配置文件到系统目录*/

#cd /usr/local/www/conf /*进入apache配置文件目录*/

#ee httpd.conf /*修改配置文件httpd.conf*/

添加AddType application/x-httpd-php .php到该文件中后存盘退出

#cd /home/zhp/ mysql-max-3.23.49-unknown-freebsdelf4.4-i386

#mkdir /usr/local/mysql /*创建mysql安装目录*/

#./configure –prefix=/usr/local/mysql /*配置mysql*/

#make /*如果内存比较小请加上--with-low-memory参数 */

#make install /*拷贝文件到/usr/local/mysql目录*/

接下来用/stand/sysinstall添加一个mysql用户组和一个mysql用户,然后继续执行命令

# scripts/mysql_install_db /*创建一个特殊的数据库”mysql”,它管理用户权限*/

# chown -R root /usr/local/mysql

# chown -R mysql /usr/local/mysql/var /*这三行改变目录权限、归属*/

# chgrp -R mysql /usr/local/mysql

# /usr/local/mysql/bin/safe_mysqld --user=mysql & /*启动mysql服务器*/

#/usr/local/www/bin/apachectl start /*启动apache服务器*/

到这里所有的配置执行完毕,以后可以从客户机上用FTP上传html/php网页到你的到“/home/zhp/public_html/”目录下,然后在IE地址栏内输入http://192.168.0.1/zhp/$网页文件.php就可以看看效果了,如果你觉得Mysql数据库管理不方便,你还可以去下载一个名为“phpMyAdmin”的软件来在线管理,该软件只要解压并上传到Web服务器,然后修改“config.inc.php”文件中的参数“$cfgPmaAbsoluteUri“为phpmyadmin上传目录的URL地址就可以了,执行文件为“index.php”。

配置成功之后执行看到图15所示页面,该例设置为“$cfgPmaAbsoluteUri='http://202.115.65.225/~itp/phpadm/ ‘“。
使用FreeBSD构建家庭网络世界的教程

第五章 配置成代理服务器

使用教育网的朋友经常遇到一种情况就是不能直接访问国外的网站,很多人都知道只要能够找到一个出国代理服务器就能够间接的访问国外的站点了;另一些情况恰好相反,比如在一些企业和学校内部的重要服务器设置为只能通过内部IP地址才能访问,外部IP地址一律拒绝,如果遇到公司员工急需公司内部的文件或者在校学生急需查询自己图书馆的书目借还情况却不在公司内部或学校内部,那他们如何利用身边的网络获得他们想要的信息资料呢?这种情况依然得求助于代理服务器。Squid就是一款运行在Linux、Unix平台上的优秀的代理服务器软件。以外部网络通过代理服务器访问内部网络为例,首先代理服务器必须拥有一个企业或学校内部的IP地址,安装配置squid成功后,拥有外部IP的电脑只需要把IE浏览器的HTTP代理服务器设置为该服务器IP地址和指定的端口后就可以借用代理服务器的IP地址自由访问内部WEB服务器了。安装配置squid服务器过程如下:

首先到 http://www.squid-cache.org/上下载该软件,还是用FTP将下载的squild软件上传到服务器,这里以2.4版为例。

#tar –zxvf squid-2.4.STABLE7-src.tar.gz /*解压缩软件包*/

#cd squid-2.4.STABLE7-src /*进入解压目录*/

#./configure --prefix=/usr/local/squid /*配置安装目录*/

#make /*编译连接*/

#make install /*安装拷贝*/

#ee /usr/local/squid/etc/squid.conf /*修改/usr/local/squid/etc/squid.conf文件*/

利用ee编辑器的查找命令Ctrl+y搜索“http_port 3128”将找到”#http_port 3128”字符串,将其前面的注释的“#”号去掉并把“3128”修改为代理服务器的端口,这里假如是8080,那么修改后为“http_port 8080”;接下来搜索“acl all src”,会找到字符串“acl all src 0.0.0.0/0.0.0.0”,现在把将它改为” acl all src 0.0.0.0-255.255.255.255/255.255.255.255”,修改的目的是为了让源主机地址没有限制;最后查找“http_access deny all”,将该字符串改为“http_access allow all”后就可以从任何地方使用这个代理服务器了,存盘退出这一步就算结束了。

随便创建一个用户来运行Squid,因为Squid出于安全考虑也不让root用户运行。这里为假设用户名就取为“squid”。

# adduser squid /*添加用户”squid”*/

# cd /usr/local/squid /* 进入安装目录*/

#chown squid * /*将这个目录下所有文件的归属设置为用户squid */

#exit /*退出root管理员的登陆*/

以squid登陆后,出现“$”提示符。

$/usr/local/squid/bin/squid –z /*建立缓存目录*/

$/usr/local/squid/bin/squid /*启动squid服务器*/

使用FreeBSD构建家庭网络世界的教程

接下来就可以在客户端的IE浏览器中设置HTTP代理服务器IP为这台服务器的IP,端口为前面所设置的8080,如图16所示。确定之后输入一个你以前不能进入的网址看看是不是已经发生变化了。

第六章 收 场

现在已经把我们老机配置成功能强大的网关服务器、FTP服务器、文件服务器、Apache+PHP+Mysql服务器以及代理服务器,但是一旦我们重新启动了电脑有些服务却不能自动启动,所以我们还必须作一个类似于DOS中的Autoexec.bat一样自动批处理文件。这个文件不是象DOS一样放在根目录而且系统指定了一个特殊的目录――“/usr/local/etc/rc.d”,如果你没有找到这个目录可以自己创建,现在我们在这个目录下面创建一个文本文件start.sh,该文件名字可以任龋

写入如下内容

/usr/local/apache/bin/apachectl start

#启动apache服务器

/usr/local/mysql/bin/safemysqld &

#启动mysql服务器

/usr/local/samba/smbd –D

/usr/local/samba/nmbd –D

#启动samba服务器

/usr/local/squid/bin/squid

#启动squid服务器

然后我们必须让这个文件具有可执行的属性:

#chmod +x /usr/local/etc/rc.d/start.sh /*给予start.sh执行权限*/

经过这样整理,可能已经花去你半天的时间了,看到你本已经淘汰的电脑现在已经成为身兼多职的服务器,是不是喜上眉梢了。其实在FreeBSD上能提供的服务还远不止以上这些,它作为一个网络操作系统可以在小到局域网大到互联网的环境中充当关键角色,不过Mail服务、News服务、DNS服务、DHCP等功能对于局域网用户用处不大所以就没有介绍,如有兴趣的话可以看看FreeBSD安装光盘自带的帮助文件。

在配置的过程中难免会有些不顺利,只要你认真思考这些障碍产生的原因都不难加以解决。比如我就遇到在拔掉光驱之后,FreeBSD在启动的时候经常在一个ATA的设备处停顿几分钟才继续启动,考虑到可能是FreeBSD在查找这个并不存在的IDE设备的耽误了时间,于是便进入BIOS中在“Chipset feature setup”中把“Onboard pci”的值由缺省的“Both”修改为“Primary”,取消了第二个IDE接口,结果立马解决了这个问题,希望大家也能顺利利用自己的智慧解决一些配置中的问题。

参考书目

慷齐资讯,2000.9,FreeBSD & Windows集成组网实务,中国铁道出版社

e benM.;UrbanMichael、tai manB.;TiemannBrian,2002,FreeBSD技术内幕,机械工业出版社

仲进平、寿加炎,2001,PHP+MySQL网络开发技术,人民邮电出版社

Bei Si;BainesDominic,2000.10,Samba技术内幕,机械工业出版社

ArnoldMark;AlmeidaJeff,2001,APACHE系统管理指南,清华大学出版社
Questions则回答你关于FreeBSD的问题。