什么是NFS共享目录
Linux NFS(Network File System即网络文件系统)是一种基于 TCP/IP 传输实现文件共享的网络文件系统协议,它允许不同的计算机在网络上共享文件。在Linux中,使用NFS可以将文件系统挂载到远程服务器上,实现共享和访问文件的功能。
一、准备工作
服务安装
[root@localhost ~]#yum install nfs-utils rpcbind
防火墙配置
[root@localhost ~]#systemctl stop firewalld //关闭防火墙
[root@localhost ~]#systemctl enable firewalld //关闭防火墙开机自启
启动服务
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
二、服务器端配置
创建共享目录
[root@localhost ~]# mkdir -p /data/public
配置服务
#NFS 的配置文件为/etc/exports,文件内容默认为空
此文件的格式如下:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)
参数 | 作用 |
---|---|
m | 表示读写权限,允许对共享文件系统进行读写操作。 |
ro | 表示只读权限,只允许对共享文件系统进行读操作 |
root squash | 如客户端登陆操作的是root用户,nfs服务器会将来访的root用户映射为匿名用户或用户组:nfsnobody ,如果是rw权限,就要求nfsnobody 对共享的目录有rw权限; |
no_root squash | 来访的root用户保持root帐号权限; |
sync | 同步写入,将数据同步写入内存缓冲区与磁盘中 |
async | 异步写入,将数据先保存在内存缓冲区中,必要时才写入磁盘 |
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(默认) |
anonuid=xxX | 指定NFS服务器/etc/passwd文件中匿名用户的UID |
修改完成重新加载配置文件:
三、客户端配置验证
1.创建共享目录
[root@host1 data]#mkdir -p /data/nfs
2.挂载
1)[root@host1 data]# mount -t nfs 192.168.XXX.XXX:/data/public /data/nfs //挂载共享目录
2)查看共享信息
格式:showmount -e 服务端IP
[root@host1 data]# showmount -e 192.168.XXX.XXX //
3.永久挂载
[root@host1 data]# vim /etc/fstab (添加以下内容:)
IP:共享目录 /data/nfs nfs defaults,_netdev 0 0
4.共享验证
在服务端共享目录下创建文件,验证在客户端是否能同步