两台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 |