时间是蚕食我们记忆的最大凶手,让我们用笔来对抗它吧 注册 | 登陆

第5章局域网服务器

特别提示:本站正在通过Google广告盈利,你也可以!详情请看:
本章要点:

本章介绍如何将Linux机器配置称为局域网上的文件/打印服务器或者计算服务器,同
时也介绍可能出现的问题以及解决方法。

本章具体包括以下内容。

NFS文件服务

BSD打印服务器

Samba文件/打印服务

WINS、DHCP和NIS

图形/计算服务器

5.1 NFS和文件/打印服务

NFS是Sun发明的用来在UNIX系统之间共享文件的一种服务协议,事实上,如果你的系
统中不是有很多的UNIX机器,我们并不建议使用NFS。因为在windows 95上访问NFS相当
困难。但是,如果你的系统中包含Sun或者SCO这样的UNIX系统,也许你除了使用NFS以外
别无选择。

5.1.1 共享文件系统

NFS实际就是将某个UNIX机器的一个目录共享出来,由其他机器直接使用。共享的动作
称为“输出”(export)。例如,host1机器的mydoc目录可以被输出,然后host2机器的管
理员将它连接到/host1/mydoc目录下,以后host2对这个目录的操作自动转化为对host1
上相应目录的操作。技术上,通常用UDP协议来实现NFS的数据传输。

首先我们需要来制作一个NFS服务器,由于NFS要依赖于远程过程调用(RPC),所以服
务器上必须启动SUNRPC服务,这个服务的另一个名字是port mapper,在目前版本中的L
inux里面,用portmap程序来启动SUNRPC服务:

$ /sbin/portmap

尽管不通过tcpd程序,但是port mapper是基于一个类似的程序tcp wrapper的运行库
,所以也可以使用host.deny和host.allow程序来限制访问。另外,通常portmap使用的端
口在/etc/services里面定义。

为了使用NFS服务,需要启动mountd和nfsd程序,这两个程序在Linux中被称为rpc.mo
untd和rpc.nfsd:

$/usr/sbin/rpc.mountd

$/usr/sbin/rpc.nfsd

其中,rpc.nfsd程序支持一个数字参数,用来表示启动nfsd程序的个数,例如:

$rpc.nfsd 7

$ps ax|grep nfsd

606 pts/0 SW 0:00 [nfsd]

607 pts/0 SW 0:00 [nfsd]

608 pts/0 SW 0:00 [nfsd]

609 pts/0 SW 0:00 [nfsd]

610 pts/0 SW 0:00 [nfsd]

611 pts/0 SW 0:00 [nfsd]

612 pts/0 SW 0:00 [nfsd]

由于NFS是基于无连接的UDP服务,所以nfsd程序不得不在端口上等待并且处理,当nf
s访问比较多的时候,增加nfsd程序的个数会有助于提高NFS的工作效率(因为避免了线
程阻塞),但是太多的nfsd程序又可能会影响CPU的处理速度。正确的数值只有自己实验
得到,不过,对于一般的系统,10-20个nfsd程序应该可以工作的很好。

另外一个需要注意的是,按照Sun的定义,NFS是无状态的,有时这一点很讨厌,特别
是有可能发生文件访问的冲突,为此,Linux提供nfs lock功能,对NFS访问进行监控,
可以用rpc.lockd和rpc.statd程序来执行这个功能:

$/sbin/rpc.lockd

$/sbin/rpc.statd

要想在启动的时候自动使用NFS服务,可以按照我们以前介绍的那样,编辑相应的启动
脚本,不过,有些Linux系统提供了设置程序,最常用的是NTSYSV程序,如redhat和TLC
都提供了这个程序:

$/usr/sbin/ntsysv

出现类似下面的界面:



将这个选单中的nfs,nfslock和portmap选中并且ok退出,系统脚本就被自动改变了。
(ntsysv程序只是建立/etc/rc.d/rc3.d下的连接而已,你也可以手工作这个连接工作,
注意我们以前讲的启动脚本)

在启动了上面说的那些服务后,现在可以输出文件目录了。在Linux中有两种输出方式
,一种使用exportfs命令,另一种是使用/etc/exports文件:

exportfs命令的用法是

/usr/sbin/exportfs
« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):