Linux基础-安装搭建NFS服务器

之前发表过一篇个人认为还是比较详细的有关于Linux下搭建NFS服务器的博文。由于站点故障,最终没有保留下来。所以在这里再发布下。 NFS最早是由Sun公司于1984年开发的,是分布式计算机系统中的一个组成部分,目的是为了实现异构网络上共享远程文件系统,是类Unix环境下的文件服务器解决方案。(上一篇博文中介绍过在Windows7下共享Linux下的nfs文件系统)。似乎博文有点倒叙了哈。有一次无意发现有网友搜索“NFS服务portmap to rpcbind”到了我的博客上来。那是我站上并没有解决这个问题的博文,后来我就写了一篇。不过没放上去。下面就那这个例子来诠释下Linux系统中的NFS服务器。不多说,介绍的还是得介绍,该分享就分享。 NFS服务器工作原理,NFS服务就像是Windows下的共享差不多。它本身并没有提供可以传输数据的协议,它的工作时需要借助RPC(远程过程调用)协议来完成的。既然是这样,那么就并没有什么NFS服务器和NFS客户端之分的。只是人们习惯把共享出NFS文件系统的那端就叫NFS服务器,而另一端就叫作NFS客户端罢了。其实,要实现NFS文件共享,不管是服务器端还是客户机端。两个系统中都要有RPC服务和NFS服务支持就行了。当然,对于我说NFS服务没有服务端和客户端之分的只是我个人的说法。通过这里,上面说到的“NFS服务portmap to rpcbind”实现NFS共享的问题就不难解决了。 安装NFS服务组件包,由于NFS服务像是Windows下的共享功能那样。所以,一般Linux系统中默认都会给系统安装上NFS服务组件的。前面说到过NFS工作需要RPC协议协助完成,所以,在RHEL5.32下安装RPC协议组件包portmap。RHEL6以上的好像都是叫RPCBIND的组件包了。它需要两个组件包(nfs-utils和nfs-utils-lib),如果没有安装,RHEL5.32的话,在系统镜像光盘中的第一个光盘中挂载并安装: [root@localhost ~]# mount /dev/cdrom /media/ mount: block device /dev/cdrom is write-protected, mounting read-only [root@localhost ~]# rpm -ivh /media/Server/nfs-utils-1.0.9-16.el5.i386.rpm /media/Server/nfs-utils-lib-1.0.8-7.2.i386.rpm warning: /media/Server/nfs-utils-1.0.9-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] package nfs-utils-lib-1.0.8-7.2 is already installed package nfs-utils-1.0.9-16.el5 is already installed 检查NFS所需的组件包是否全部安装: [root@localhost ~]# rpm -qa | grep portmap portmap-4.0-65.2.2.1 [root@localhost ~]# rpm -qa | grep nfs nfs-utils-1.0.9-16.el5 nfs-utils-lib-1.0.8-7.2 NFS服务器的配置比较简单,下面就配置一些实例看看: [root@localhost ~]# vim /etc/exports /home 192.168.8.0/24(rw,async) *(ro,sync) /home/zwz 192.168.8.128/25(rw,async,root_squash) /home/kutea *.iloxp.com(rw,async,all_squash) NFS指令参数说明: secure 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置) insecure 允许客户端从大于1024的TCP/IP端口连接NFS服务器 sync 将数据同步写入内存缓冲区与磁盘中,以保证数据的一致性 async 将数据先保存在内存缓冲区,必要时才写入磁盘 wdelay 写操作等待一起执行(默认设置) no_wdelay 与sync配合,有写操作时立即执行不用等待 subtree_check 若输出子目录则NFS检查其父目录的权限(默认设置) no_subtree_check 即使输出目录是子目录也不检查父目录的权限,以提高效率 all_squash 将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(一般为nfsnobody) no_ all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置) root_squash 将root用户及其所属组都映射为匿名用户或用户组(默认设置) no_ root_squash 不将root用户及其所属组都映射为匿名用户或用户组 anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该匿名账户为本地用户账户(UID=xxx) anongid=xxx 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx) 启动服务器,注意顺序哦。先启动portmap(RPC服务)然后启动NFS服务,默认的话,系统安装后就安装了RPC服务它会开机自动启动的。所以,只需启动NFS服务就行啦。 [root@localhost ~]# service portmap status portmap (pid 6211) 正在运行... [root@localhost ~]# service nfs start 启动 NFS 服务: [确定] 关掉 NFS 配额: [确定] 启动 NFS 守护进程: [确定] 启动 NFS mountd: [确定] [root@localhost ~]# showmount -e Export list for localhost.localdomain: /home/kutea *.iloxp.com /home (everyone) /home/zwz 192.168.8.128/25 [root@localhost ~]# 客户端挂载NFS共享文件:

客户端挂载NFS共享文件

客户端挂载NFS共享文件  

相关阅读RelatedRead

CentOS6.5 X64中Development tools包含的组件一览表

Linux下编译安装OpenSSL

Linux下防止nmap简单扫描,修改SSH远程端口号

Ubuntu12.04自动挂载windows磁盘

Linux下设置用户登录欢迎词

Linux下df命令

Ubuntu 12单用户破解密码

2 条评论添加评论

站点故障,没有保留,你真衰。

回复取消回复
@tiandi

哪里站点故障没有保留什么什么的啊?我们加了友链?

回复取消回复