centos7搭建NFS服务
-
- 服务器端 139.155.90.78
- 客户端 192.168.198.146
- 先查看自己的系统有没有安装rpcbind 和nfs-utils
- rpm -qa nfs-utils rpcbind
- 若使用命令后出现如下结果则说明已经安装
- 若没有的话可以
- yum install nfs-utils rpcbind
- 安装完成之后
- systemctl start rpcbind.service
- systemctl start nfs.service
- (一定是先启动rpcbind服务后开启nfs服务)
- 启动过后可以查看两个服务的状态
- 关闭防火墙服务
- systemctl stop firewalld.service
- 在服务端创建目录
- 我在该目录下创建了一个文件
- mkdir /home/wjs-nfs
- touch wjs.txt
- 之后便是配置目标用户以及共享目录
- vim /etc/exports (一开始该文件是空的)
- 一行代表一个配置
- /home/wjs-nfs 192.168.198.146(ro)
- (共享目录) (客户端主机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一同使用;
-
- 【anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid】
-
- secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
- insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
- wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
-
- no_wdelay:若有写操作则立即执行,应与sync配合使用;
- subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
-
- no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
- 特别注意 选项要用 insecure否则默认为secure(有端口限制)
配置完成之后
执行命令
exportfs -r
exportfs -v
查看
在客户端中也要下载 nfs-utils 和rpcbind,不再赘述
可以查看挂载情况
showmount -e 139.155.90.78(这个是我的服务器ip)
然后
mount -t nfs 139.155.90.78:/home/wjs-nfs(这是共享目录) /mnt(挂载处)
cd /mnt
可以看到共享目录下的文件