安装及启动
NFS服务需要借助RPC(Remote Procedure Call,远程过程调用)协议实现通信,需要使用RPC服务将NFS服务器的IP地址和端口号等信息发送给客户端。
NFS服务的程序为nfs-utils,而使用RPC协议,就需要安装rpcbind程序了。
yum install -y nfs-utils rpcbind
启动时,因为NFS需要依赖RPC协议实现,所以在开启的时候,要先开启rpcbind服务
systemctl start rpcbind.socket
systemctl start nfs
查看其端口
netstat -anput | grep rpc
建议将其设置为开机启动,能最大程度的向客户端提供服务
systemctl enable rpcbind
systemctl enable nfs
NFS服务器配置
创建/data/共享目录,并创建测试文件
mkdir /data
touch /data/test.txt
echo "HELLO" >/data/test.txt
chmod +777 /data/test.txt
NFS的主配置文件/etc/exports,以下为配置文件参数说明:
参数 | 作用 |
---|---|
ro | 只读权限 |
rw | 读取与修改 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
NFS的主配置文件内容是空的,需要自己手动添加条目。
vim /etc/exports
/data 192.168.1.*(rw,sync,all_squash)
书写格式:共享目录 允许访问的地址(配置参数,以,为分隔符)
之后启动服务,若已经启动,重启服务即可。
systemctl restart rpcbind
systemctl restart nfs
linux客户端
使用showmount命令显示可挂载NFS共享目录。
showmount参数说明:
参数 | 说明 |
---|---|
-e | 显示NFS服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况 |
-v | 显示版本号 |
直接使用-e选项查询共享信息
showmount -e 192.168.1.123
Export list for 192.168.1.123:
/data 192.168.1.*
然后使用mount命令即可临时挂载共享目录
mkdir /data
mount -t nfs 192.168.1.123:/data /data
这样就挂载完成了,查看一下其中有没有共享的数据
ls /data/
test.txt
cat /data/test.txt
HELLO
查看是否为网络挂载
[root@linux ~]# df -hT /data/
文件系统 类型 容量 已用 可用 已用% 挂载点
192.168.1.123:/data nfs4 50G 5.2G 45G 11% /data
对于客户端来说,使用共享是非常频繁的,建议将其永久挂载。
vim /etc/fstab
#末尾添加以下内容:
192.168.1.123:/data /data nfs defaults 0 0
重启系统生效。
windows客户端
win+R输入OptionalFeatures打开windows功能,在其中开启NFS服务功能
若不打开器功能,在使用命令的时候会报错
C:\Users\Administrator>showmount -e
'showmount' 不是内部或外部命令,也不是可运行的程序
或批处理文件。