NFS(Network File System)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂载远程主机的共享目录到本地,就像操作本地磁盘一样,非常方便的操作远程文件。
环境准备| 主机类型 | 主机IP | 防火墙状态 |
|---|---|---|
| NFS服务器 | 192.168.5.133 | 关闭 |
| 客户端 | 192.168.5.134 | 关闭 |
| 客户端 | 192.168.5.135 | 关闭 |
1.安装NFS服务
yum -y install rpcbind nfs-utils
2.创建共享目录,并设置权限。
mkdir -p /data/share/ chmod 755 -R /data/share/
3.配置NFS:nfs的配置文件是 /etc/exports ,在配置文件中加入一行:
vim /etc/exports /data/share/ 192.168.5.134(rw,no_root_squash,no_all_squash,sync) /data/share/ 192.168.5.135(rw,no_root_squash,no_all_squash,sync)
这行代码的意思是把共享目录/data/share/共享给192.168.5.134这个客户端ip,后面括号里的内容是权限参数,其中:
rw 表示设置目录可读写。
sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。
若nfs服务已经启动,使配置生效(若未启动,不需要执行,执行会报错):
exportfs -r
4.设置防火墙
如果你的系统没有开启防火墙,那么该步骤可以省略。
(我是直接关闭防火墙,并且开机不启动,防火墙设置这里没有亲测)NFS的防火墙特别难搞,因为除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,这样对防火墙来说就比较麻烦了。为了解决这个问题,我们可以设置NFS服务的端口配置文件。
修改/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:
RQUOTAD_PORT=1001 LOCKD_TCPPORT=30001 LOCKD_UDPPORT=30002 MOUNTD_PORT=1002
保存好后,将端口加入到防火墙允许策略中。执行:
firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent firewall-cmd --reload
5.启动服务
按顺序启动rpcbind和nfs服务:
systemctl start rpcbind systemctl start nfs
开机启动:
systemctl enable rpcbind systemctl enable nfs
nfs服务启动后,查看端口是否生效
rpcinfo -p
查看服务端(本机)是否可连接,出现下面结果表明NFS服务端配置正常。
# showmount -e localhost Export list for localhost: /data/share 192.168.5.134,192.168.5.135客户端配置
1.安装rpcbind服务
yum -y install rpcbind
2.设置防火墙(参考文件没这步,没测行不行,我自己加这一步)
3.挂载远程nfs文件系统
查看服务端已共享的目录:
# showmount -e 192.168.5.133 Export list for localhost: /data/share 192.168.5.134,192.168.5.135
建立挂载目录,执行挂载命令:
mkdir -p /mnt/share mount -t nfs 192.168.5.133:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3
如果不加 -onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root。
如果要解除挂载,可执行命令:
umount /mnt/share
4.开机自动挂载 ,末尾追加
vim /etc/fstab 192.168.5.133:/data/share /mnt/share/ nfs defaults 0 0
5.重启机器测试验证 ,在客户端输入:
$ df -h 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on ... 192.168.5.133:/data/share 18G 5.9G 12G 34% /mnt/share
这时候,你可以在客户端/mnt/share或者服务端/data/share下新建文件,在所有当前的nfs网络主机都可以看到
参考文件



