Centos7 搭建 NFS Server
RPC:远程过程调用,每个 NFS 功能所对应的 port number ,RPC 是固定端口 111(tcp/udp) 来监听客户端的请求,并响应客户端正确 NFS 连接端口。RCP主程序:rpcbind。
NFS:Network FileSystem 网络文件系统。搭建 NFS Server,可以通过 NFS 协议(tcp 2049)提供网络客户端共享访问文件夹。NFS主程序:nfs-utils。
NFS 服务端和客户端,都需要安装这两个包,安装完成后,系统会自动创建nfsnobody用户和组,uid和gid都是65543,通过 id nfsnobody 可以查看。
准备
我的是mini系统,新安装OS基础命令工具,已有的可跳过
yum install -y net-tools
yum install -y sysstat
如果开启防火墙,需要开放端口,我这里直接关闭防火墙
vim /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
安装
yum install -y rpcbind nfs-utils
rpm -qa rpcbind
rpm -qa |grep nfs
systemctl start rpcbind
systemctl status rpcbind
systemctl start nfs-server
systemctl status nfs-secure
systemctl start nfs-secure
systemctl enable nfs-secure
设置开机自启动:
systemctl enable rpcbind
systemctl enable nfs-secure
服务端和客户端,都需要安装这两个包,安装完成后,系统会自动创建 nfsnobody 用户和组,uid 和 gid 都是65543,执行下面命令可查看用户和组信息:
# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)
NFS除了主程序端口 2049 和 rpcbind 的端口 111 是固定端口以外,其他的还会有一些随机端口,这些端口是 NFS 向 rpcbind 注册动态产生的
执行下面命令,可查看端口信息:
# rpcinfo -p localhost
端口默认是随机,不方便防火墙管理,有需要的场景,可以在 NFS 的配置文件中配置绑定端口,直接关闭防火墙的可以直接跳过
# vim /etc/sysconfig/nfs
#追加端口配置
MOUNTD_PORT=65001
STATD_PORT=65002
LOCKD_TCPPORT=65003
LOCKD_UDPPORT=65003
RUEOTAD_PORT=65004
配置完成后,就可以开始在服务端创建共享目录,NFS 的共享目录配置在 /etc/exports 文件中配置指定
exportfs 命令帮助:
-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 输出详细的共享参数
修改 /etc/exports 配置后,需要重新加载配置,配置修改生效:
exportfs -arv
也可以直接通过重启服务生效:
systemctl reload nfs-server
配置重新加载生效后,就可以通过 showmount 命令查看 NFS 共享目录信息了:
showmount 命令帮助:
-a 显示已经客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
服务端查看 NFS 共享目录信息:
showmount -e localhost
客户端查看 NFS 共享目录信息:
showmount -e 192.168.1.100
客户端
客户端也要安装服务,但只需要启动 rpcbind 服务即可
systemctl start rpcbind
systemctl enable rpcbind
客户端挂载:
mount -t nfs 192.168.1.100:/opt/nfsdir /opt/nfsdir
------ end -------
查看NFS状态
nfsstat
NFS权限参数配置
cat /var/lib/nfs/etab