nfs
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。
本地可以通关挂载nfs共享,达到在本地直接打开小电影的效果。
通过aria2下载电影到挂载的移动硬盘。再通过nfs直接分享,可以直接在本地打开视频文件。
适用于centos7 1708版本(其他centos7版本也使用)
nfs工作流程
1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。`
2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
3、客户端获取正确的端口,并与NFS daemon联机存取数据。
4、存取数据成功后,返回前端访问程序,完成一次存取操作。
nfs服务安装
安装rpcbind、nfs-utils~ yum install rpcbind nfs-utils
暂时不要启动nfs、rpcbind服务,需要先固定好nfs服务端口,避免重启电脑。
固定nfs服务端口
nfs服务端口主要有 nfs 2049、portmapper111、mountd 892、rpc.statd662、 nlockmgr 32803、32769
具体配置:
- 修改/etc/sysconfig/nfs文件:
1 | # Port rpc.mountd should listen on. |
- 修改 /etc/modprobe.d/lockd.conf
1 | # Set the TCP port that the NFS lock manager should use. |
启动nfs服务
通过systemctl启动rpcbind、nfs:
1 | # 启动rpcbind |
通过firewall配置防火墙
编辑firewalld中的nfs服务的防火墙配置文件:~ cp /usr/lib/firewalld/services/nfs.xml /etc/firewalld/services
添加固定的端口到/etc/firewalld/services/nfs.xml
配置文件中:
1 | <?xml version="1.0" encoding="utf-8"?> |
开启防火墙配置:
1 | # service名字需要与/etc/firewalld/services中的文件名匹配 |
开放nfs共享
{local_dir} {ip_address}({param1},{param2}) 客户端地址2(参数1,参数2,...)
说明:
1 | local_dir: 本地需要共享的目录绝对路径。 |
nfs开放文件共享,编辑文件/etc/exports文件,添加:/home/lixiaozhu/mount/small-file/share_file 192.168.1.0/24(rw,sync,no_root_squash,insecure,anonuid=1001)
重新加载nfs共享配置
1 | ~ exportfs -rv |
客户端查看是否有可用的nfs共享:~ showmount -e 192.168.1.107
Client挂载
将nfs服务端的文件挂载到本地mount -t nfs 192.168.1.107:/home/lixiaozhu/mount/small-file/share_file ~/Documents/share_server
挂载时常见错误
Can’t mount from 192.168.1.107 onto /:Operation not permitted
- 防火墙端口有没有开放的,仅开放了客户端rpc api的部分,仅能查看分享,实际不能挂载。
- rpc相关端口开放在1024以上,需要在
/etc/exports
配置insecure