NFS的全名叫network file system即网络文件系统。由sun公司开发,目前主流版本为V4,nfs监听在tcp2049端口。
不过nfs只负责数据的共享,网络上各个主机的连接及各自的ip端口信息是由另一个小伙伴帮忙管理的,他叫rpc--remote protocol call 即远程过程调用。
step 1.
装包:
yum install nfs-utils
yum install rpcbind
step 2.
配置/etc/exports
格式:共享路径 共享对象 (选项)
选项包括:ro,rw,sync,async,root_squash,no_root_squash,wdelay,all_squash
其中默认选项为ro,sync,wdelay,root_squash
ro:共享目录只读
rw:共享目录可读写
sync:确保内存中的数据完全写入磁盘后返回成功。
async:内存中数据没完全写入磁盘也返回成功。
wdelay:多个写入请求合并后写入磁盘
root_squash:客户端root账号访问时,服务器显示为nfsnobody
no_root_squash:客户端root,服务器端还是root
all_squash:不管客户端啥账号,服务器端一律为nfsnobody
step3.挂载nfs共享
挂载目录:mount -t nfs -o 选项 server:/目录 /本地目录
更新fstab文件使下次重启生效:echo server:/目录 /本地目录 nfs defaults 0 0>>/etc/fstab
step4.防火墙设定
因为防火墙只能对特定端口做策略,而nfs和rpcbind通信会生成随机端口,为了固定端口,需要配置/etc/sysconfig/nfs文件
限定其中的:MOUNT_PORT LOCKD_TCPPORT LOCKED_UDPPORT STATD_PORT
并且放行rpcbind的111端口和nfs的2049端口
小技巧:exportfs -r 重新读取export文件
exportfs -v 显示详细信息
参考文献:《Linux 运维之道》 丁明一 编著