CentOS 7 下搭建NFS服务

服务端 192.168.18.16
客户端 192.168.18.55

安装NFS服务

查看系统有没有安装rpcbindnfs-utils

rpm -qa nfs-utils rpcbind

若没有的话可以

yum install nfs-utils rpcbind

因为CentOS 7自带了rpcbind,所以不用安装rpc服务,rpc监听在111端口,可以使用ss -tnulp | grep 111查看rpc服务是否自动启动,如果没有启动,则systemctl start rpcbind启动rpc服务。rpc在nfs服务器搭建过程中至关重要,因为rpc能够获得nfs服务器端的端口号等信息,nfs服务器端通过rpc获得这些信息后才能连接nfs服务器端。

安装完成之后

systemctl start rpcbind.service
systemctl start nfs.service

注:一定是先启动rpcbind服务后开启nfs服务

启动过后可以查看两个服务的状态

systemctl status rpcbind.service
systemctl status nfs.service

也可以使用rpcinfo -p 192.168.18.16查看rpc服务信息

设置rpcbind服务及nfs服务开机自动启动

systemctl enable rpcbind.service
systemctl enable nfs.service

配置NFS服务

(1)在服务端创建目录,并在该目录下创建一个文件

mkdir /home/nfs
touch appblog.txt
echo "hello nfs" >> /home/nfs/appblog.txt
chown -R nfsnobody.nfsnobody /home/nfs

(2)配置目标用户以及共享目录

vim /etc/exports (一开始该文件是空的)
#一行代表一个配置
/home/nfs      192.168.18.55(ro) 
/data          192.168.1.0/24(rw,async)

配置格式:

(共享目录)      (客户端主机ip) (共享文件选项配置,不同选项用 ,(逗号) 隔开)

具体选项

  • ro:表示只读权限
  • rw:读写权限
  • sync:数据同步写内存硬盘
  • async:将数据先保存在内存缓冲区中,必要时才写入磁盘
  • all_squash:不管访问共享目录的用户是谁,都必须压缩为nfsnobody用户的权限
  • no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
  • root_squash:如果访问共享目录是root的权限用户,对共享目录的权限会被压缩为nfsnobody用户的权限
  • no_root_squash:来访的root用户保持root帐号权限
  • no_squash:访问共享目录时,用户如果是root权限,对共享目录也具有root权限(最好不要设置,增加服务安全隐患,稍后再提)
  • anonuid=<UID>:指定匿名访问用户的本地用户UID,要和root_squash以及all_squash一同使用
  • anongid=<GID>:指定匿名访问用户的本地用户组GID,要和root_squash以及all_squash一同使用
  • secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器
  • insecure:允许客户端从大于1024的tcp/ip端口连接服务器
  • wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
  • no_wdelay:若有写操作则立即执行,应与sync配合使用
  • subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
  • no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

anonuid/anongid:要和root_squash以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid
特别注意:选项要用insecure否则默认为secure(有端口限制)

(3)配置完成之后,执行命令

exportfs -r  
exportfs -v 

(4)挂载NFS

在客户端中也要下载nfs-utilsrpcbind,不再赘述

客户端上不需要启动nfs服务,只是为了使用showmount工具

可以查看挂载情况,检测rpc是否启动

showmount -e 192.168.18.16(服务端IP) 

然后挂载至本地/mnt目录

mount -t nfs 192.168.18.16:/home/nfs(共享目录) /mnt(挂载处)

cd /mnt
ls

即可看到共享目录下的文件

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/building-nfs-services-under-centos-7/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
CentOS 7 下搭建NFS服务
服务端 192.168.18.16 客户端 192.168.18.55 安装NFS服务 查看系统有没有安装rpcbind和nfs-utils rpm -qa nfs-utils rpcbind 若没有的话可以 yum install n……
<<上一篇
下一篇>>
文章目录
关闭
目 录