CentOS 7 下搭建NFS服务
服务端 192.168.18.16
客户端 192.168.18.55
安装NFS服务
查看系统有没有安装rpcbind
和nfs-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-utils
和rpcbind
,不再赘述
客户端上不需要启动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全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论