两台ubuntu机器 共享NFS 环境搭建 

    NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

    NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。 

1. 在PC机端安装NFS服务器,同时安装客启端方便测试

sudo apt-get install nfs-kernel-server  nfs-common  portmap



2、配置挂载目录和权限


vim /etc/exports


配置如下:


# /etc/exports: the access control list for filesystems which may be exported
#    to NFS clients.   See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes             hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4               gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes   gss/krb5i(rw,sync)

/home/nfsroot   *(rw,sync)


解释如下:


/home/nfsboot是NFS的共享目录,*表示任何IP都可以共享这个目录,你可以改为受限的IP,rw表示的是权限,sync是默认的。


另外如果还有其它读写权限问题,那就:chmod 777 /home/nfsroot  


3、重启NFS服务



sudo /etc/init.d/nfs-kernel-server restart

4.测试(

 172.3.32.119为PC机的IP)


sudo mount  -t nfs  127.0.0.1:/home/nfsroot   /mnt/  



执行:df  -h 查看挂载情况


观测到如下结果 代表成功  


或者 在/home/nfsroot下面的内容 和 /mnt下面内容共享读写



配置NFS 客户端


1、sudo apt-get install portmap nfs-common


2、mount -t nfs 175.25.88.88:/home/nfsroot /mnt -o nolock




参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID