转自:http://www.cnblogs.com/qyddbear/archive/2012/06/05/2536840.html
【概述】
NFS用于Linux主机访问网络中其它Linux主机上的共享资源。NFS的原理是在客户端上通过网络将远程主机共享文件系统以挂载(mount)的方式加入本机的文件系统,之后的操作就如同在本机上一样。使用NFS能够方便地使各unix-like系统之间实现共享. 但如果需要在unix-like和windows系统之间共享, 就得使用Samba了(见博主《
Samba安装配置
》一文)。
【环境】
服务器Ubuntu 10.10,IP:192.168.128.150
客户端Ubuntu 12.04,IP:192.168.128.153
【NFS服务器】
1. 安装NFS
apt-get install nfs-kernel-server
安装nfs-kernel-server的同时会自动安装nfs-common和portmap
2. 配置NFS
(1) 配置portmap
dpkg-reconfigure portmap
在弹出的窗口中选N
(2) 配置/etc/hosts.deny
cp /etc/hosts.deny /etc/hosts.deny_backup
gedit /etc/hosts.deny
对任何文件改动前先做备份是新手的好习惯。禁止任何主机能和NFS服务器进行NFS连接,末尾加入:
###NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
(3) 配置/etc/hosts.allow
cp /etc/hosts.allow /etc/hosts.allow_backup
gedit /etc/hosts.allow
允许我想要的主机和NFS服务器建立连接,末尾加入:
###NFS DAEMONS
portmap:192.168.128.153
lockd:192.168.128.153
rquotad:192.168.128.153
mountd:192.168.128.153
statd:192.168.128.153
若想设置某个网段的机器都能访问,则可 192.168.128.*
/etc/hosts.deny和/etc/hosts.allow设置对portmap的访问,采用这两个配置文件有点类似mask的意思,先在/etc/hosts.deny中禁止所有拥护对portmap的访问,再在/etc/hosts.allow中允许某些用户对portmap的访问。
(4) 重启portmap deamen
每次对/etc/hosts.deny和/etc/hosts.allow两个文件的修改后都要重启portmap daemon生效。
/etc/init.d/portmap restart
(5) 配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义。
cp /etc/exports /etc/exports_backup
gedit /etc/exports
若将服务器上的/home目录让 192.168.128.153 共享,在文件末尾加入:
/home 192.168.128.153 (rw,sync,no_root_squash)
其中rw是读写权限,只读为ro; sync数据同步写入内存和硬盘,async数据会先暂存在内存,而不立即写入硬盘; no_root_squash服务器共享目录用户的属性,如果用户是root,那么对于这个共享目录来说就具有root的权限。
(6) 重启NFS服务
每次对/etc/exports文件修改后都要重启nfs服务。
/etc/init.d/nfs-kernel-server restart
【NFS客户端】
1. 安装客户端程序nfs-common
apt-get install nfs-common
2. NFS挂载
挂载服务器端共享文件夹(假设服务器端IP为192.168.128.150,将/home挂载到/mnt)
mount 192.168.128.150:/home /mnt
挂载成功!可见在客户端的/mnt目录下服务器192.168.128.150的/home下的内容!
在服务器192.168.128.150上运行showmount -e可查看NFS Server的export list
3. NFS卸载
umount /mnt
【NFS一些文件的说明】
对NFS卷的访问是由/etc/exports来批准的,它枚举了若干有权访问NFS服务器上文件系统的主机名。
/sbin/exportfs维护NFS的资源共享,可以通过它重新设定/etc/exports的共享目录,卸载NFS Server共享的目录或者重新共享等。exportfs -r更新exports
/etc/default/portmap负责映射所有的RPC服务端口
/var/lib/nfs/xtab是NFS的记录文档,通过它可以查看有哪些Client连接到NFS Server的记录
/usr/sbin/showmount可用来查看NFS共享的目录资源