CentOS 7 下搭建NFS服务

服务端 192.168.18.16
客户端 192.168.18.55

安装NFS服务

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

1
rpm -qa nfs-utils rpcbind

若没有的话可以

1
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服务器端。

安装完成之后

1
2
systemctl start rpcbind.service
systemctl start nfs.service

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

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

1
2
systemctl status rpcbind.service
systemctl status nfs.service

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

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

1
2
systemctl enable rpcbind.service
systemctl enable nfs.service

配置NFS服务

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

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

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

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

配置格式:

1
(共享目录)      (客户端主机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)配置完成之后,执行命令

1
2
exportfs -r  
exportfs -v

(4)挂载NFS

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

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

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

1
showmount -e 192.168.18.16(服务端IP)

然后挂载至本地/mnt目录

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

cd /mnt
ls

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

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :