环境
第一步:服务端设置
1.安装 NFS
## 查看是否已安装
rpm -qa | egrep "nfs|rpcbind"
## 安装
yum install -y nfs-utils rpcbind
## 查看都安装了那些文件
rpm -ql nfs-utils
rpm -ql rpcbind
## 启动 rpcbind 并设置开机自动启动
systemctl enable rpcbind
systemctl stop rpcbind
systemctl start rpcbind
systemctl status rpcbind
## 启动 nfs 并设置开机自动启动
systemctl enable nfs
systemctl stop nfs
systemctl start nfs
systemctl status nfs
2.创建共享路径并设置权限
mkdir -p /home/Test
chmod 666 /home/Test
3.编辑 exports 文件
vim /etc/exports
/home/Test 192.168.30.0/24(rw,syncm,no_root_squash)
rw/ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only)
但最终能不能读写,还是与文件系统的 rwx 及身份有关。
sync/async sync 代表数据会同步写入到内存与硬盘中
async 则代表数据会先暂存于内存当中,而非直接写入硬盘
no_root_squash\root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?
预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,如此对服务器的系统会较有保障。
但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
anonuid\anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody)
但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。
4.使配置生效
exportfs -r
5.重启 rpcbind 和 nfs 服务
systemctl restart rpcbind
systemctl status rpcbind
systemctl restart nfs
systemctl status nfs
6.常用命令
## 查看 RPC 服务的注册状况
rpcinfo -p localhost
-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;
## 在服务端测试是否可以联机
showmount -e localhost
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。
## 查看服务端挂载了那些路径
cat /var/lib/nfs/etab
## 查看有多少客户端挂了在共享
cat /var/lib/nfs/rmtab
netstat -tulnp |grep -E '(rpc|nfs)'
ps -ef | egrep "rpc|nfs"
NFS 文件系统维护指令:
这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,这个指令是 NFS 系统里面相当重要的一个喔!
/usr/sbin/exportfs
客户端查询服务器分享资源的指令:
这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!
/usr/sbin/showmount
第二步:客户端配置
1.安装nfs-utils客户端
yum -y install nfs-utils
2.创建挂载目录
mkdir -p /Test
3.查看服务器抛出的共享目录信息
showmount -e 192.168.30.201
4.为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
mount -t nfs 192.168.30.201:/home/Test /Test -o proto=tcp -o nolock
5.查看挂载结果
df -h
6.卸载已挂载的NFS
umount /Test
df -h