NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
1、设置主机服务器
(1)安装NFS服务器
root@ubuntu:~# apt-get update
root@ubuntu:~# apt install nfs-kernel-server
(2)创建导出目录
与客户端系统共享的目录称为导出目录。
可以根据自己的选择来确定导出目录的路径及命名。
root@ubuntu:~# mkdir -p /home/rabbit/NFS_SHARE
删除文件夹的限制权限
root@ubuntu:~# chown nobody:nogroup /home/rabbit/NFS_SHARE
root@ubuntu:~# chmod 777 /home/rabbit/NFS_SHARE
现在,客户端系统上的所有组的所有用户都可以访问导出目录。
(3)通过NFS导出文件为客户端分配服务器访问权限
创建出导出目录后,需要为客户端提供访问主机服务器的权限。
此权限通过位于系统的 /etc/exports 文件定义。
root@ubuntu:~# vim /etc/exports
- 单个客户端 /home/rabbit/NFS_SHARE clientIP(rw,sync,no_subtree_check)
- 多个客户端(按IP) /home/rabbit/NFS_SHARE clientIP_1(rw,sync,no_subtree_check)
-
/home/rabbit/NFS_SHARE clientIP_2(rw,sync,no_subtree_check)
- 多个客户端(整个子网) /home/rabbit/NFS_SHARE 192.168.8.0/24(rw,sync,no_subtree_check)
-
rw: 读写操作
-
sync:
-
no_subtree_check: 阻止子树检查
(4)导出共享目录
在主机系统中完成上述配置后,可以通过以下命令将共享目录导出:
root@ubuntu:~# exportfs -a
为了使所有配置生效,重启NFS服务器:
root@ubuntu:~# systemctl restart nfs-kernel-server
(5)为客户端打开防火墙
ufw allow from [clientIP or clientSubnetIP] to any port nfs
使用以下命令,访问客户端计算机的整个子网:
root@ubuntu:~# ufw allow from 192.168.8.0/24 to any port nfs
root@ubuntu:~# ufw status
2、设置客户端计算机
(1)安装 NFS Common
更新系统的存储库索引和Internet的索引:
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install nfs-common
(2)为NFS主机的共享文件夹创建安装点
root@ubuntu:~# mkdir -p /home/rabbit/NFS_CLIENT
(3)在客户机上挂载共享目录
mount serverIP:/shareFolder_server /home/rabbit/mountFolder_client
root@ubuntu:~# mount 192.168.8.245:/home/rabbit/NFS_SHARE /home/rabbit/NFS_CLIENT
(4)测试连接
在NFS主机服务器的导出目录中创建或保存文件。
现在,打开客户端计算机上的 NFS_CLIENT 文件夹,可以在此文件夹中查看共享和访问的同一文件。
3、总结
在 Ubuntu 系统上设置 NFS 服务器 - 客户端 环境已完成。
学习了如何配置NFS服务器和客户端,以便可以共享文件夹,然后在没有任何防火墙或权限相关鼓掌的情况下顺利访问文件夹。
现在,可以使用 NFS 协议轻松地将内容从一个 Ubuntu 系统共享到另一个系统。