在 CentOS 上实现 nfs 共享
最近收到一个需求,需要在 CentOS 上实现服务器端和客户端。大致的研究了一下,做个笔记如下。
首先在服务器端安装 nfs 。
yum install nfs-utils rpcbind # 将 nfs 和 rpcbind 加入自启动并启动 chkconfig nfs-server on chkconfig rpcbind on service nfs-server start service rpcbind start # 将 nfs 从防火墙中放开 firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --permanent --zone=public --add-service=rpc-bind firewall-cmd --permanent --zone=public --add-service=mountd firewall-cmd --reload
然后编辑 /etc/exports 文件,如下:
/home/nfs_folder 192.168.1.100(rw,sync,no_root_squash,no_subtree_check,anonuid=65534,anongid=65534)
参数 | 说明 |
rw/ro | 这个目录是可读写还是只读。 |
sync/async | sync 指数据会同步写入内存和硬盘中;async 指数据会先暂存在内存中,并没有直接写入硬盘。 |
no_root_squash/root_squash | 客户端使用 nfs 帐号的时候如果为 root ,那么使用 root_squash 的话,就会转为 nfsnobody ,这样会比较安全。但如果一定要用 root 身份的话,就要使用 no_root_squash 了。 |
all_squash | 无论使用什么用户的话,都会转为 nfsnobody 了。 |
anonuid/anongid | 这个是用于指定上面关于 *_squash 的匿名用户的设置,默认为 nfsnobody ,也可以自己定义一个用户的 uid 和 gid 。 |
修改过 /etc/exports 文件后,可以使用
exportfs -a
来使配置生效。
在客户端这边,可以在 /etc/fstab 中加入如下行调用 nfs 的共享:
192.168.1.1:/home/nfs_folder /data nfs defaults 0 2