什么是NFS服务器?
NFS就是网络文件系统(Network File System)的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利
NFS的特点
- NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
- 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
- nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
- nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
- nfs服务只能基于IP进行认证
配置服务端
- 安装NFS服务程序,此处我已经安装完成
yum install nfs-utils
- 配置NFS服务器,NFS服务器的配置文件为/etc/exports
使用vim打开 vim /etc/exports
格式:共享目录路径 允许访问的NFS客户端(共享权限参数)
比如:/test 192.168.20.0/24(rw,sync,all_squash)
注释:将/test目录共享给192.168.20.0/24网段内所有主机,rw表示读写,sync表示同时将数据写入到内存与硬盘中,保证不丢失数据,all_squash表示无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
参数 | 作用 | |
---|---|---|
ro | 只读 | |
rw | 读写 | |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 | |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 | |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 | |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 | |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 | |
允许访问的客户端可以是完整的ip,也可以是网段或者是主机名
- 创建共享目录,写入测试文件,修改权限,放行防火墙和关闭selinux
mkdir /test
echo "dddsdssd" > /test/test.txt
chmod -R 777 /test/
firewall-cmd --set-default-zone=trusted
setenforce 0
此处防火墙为全部放通,如不需要放通,则放行mountd、rpc-bind、nfs
- 启动NFS服务程序。
在使用NFS服务需要使用RPC服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此还需要启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。
systemctl restart rpcbind
systemctl enable rpcbind
systemctl restart nfs-server
systemctl enable nfs-server
这样服务端就配置完成,接下来就是配置客户端
配置NFS客户端
- 使用showmount命令查询NFS服务器,-e参数显示NFS服务器的共享列表,-a为显示本机挂载的文件资源情况,-v显示版本号(如果缺少showmount命令,则需要安装相对应组件)
showmount -e nfs服务器ip
- 创建挂载文件,修改fstab文件
mkdir /nfstest
vim /etc/fstab
在fstab文件里面写入以下格式信息:
nfs服务器ip:共享目录 挂载目录 nfs defaults 0 0
- 挂载查看
mount -a
df -h
NFS服务器搭建步骤就结束了,如有疑问或补充可以在评论区留言