NFS服务器配置

1.检查软件包,没有则安装

rpm -qa | grep rpcnind
rpm -qa | grep nfs-utils
yum -y install rpcnind
yum -y install nfs-utils

2.创建相应目录和文件

#创建目录
mkdir /mnt/share
mkdir /mnt/managerdata
mkdir /mnt/upload
mkdir /mnt/nfs
#测试文件
touch /mnt/share/share1.txt /mnt/share/share2.txt
touch /mnt/managerdata/data1.txt /mnt/managerdata/data2.txt
touch /mnt/upload/upload.txt
touch /mnt/nfs/nfs1.txt /mnt/nfs/nfs2.txt

3.设置共享目录权限属性

[root@localhost mnt]# chmod 777 /mnt/share
[root@localhost mnt]# ll -d /mnt/share
drwxrwxrwx. 2 root root 42 Jun  3 04:02 /mnt/share

[root@localhost mnt]#groupadd -g 1500 zhang
[root@localhost mnt]#useradd -g 1500 -u 1500 zhang
[root@localhost mnt]#passwd zhang
[root@localhost mnt]#chmod 700 /mnt/managerdata/
[root@localhost mnt]#chown -R zhang: zhang /mnt/managerdata/
[root@localhost mnt]#ll -d /mnt/managerdata/
drwx------. 2 zhang zhang 40 Jun  3 04:05 /mnt/managerdata/

[root@localhost mnt]#groupadd -g 123 nfsupload
[root@localhost mnt]#useradd -g 123 -u 123 -M nfsupload
[root@localhost mnt]#cat /etc/passwd | grep nfs
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
nfsupload:x:123:123::/home/nfsupload:/bin/bash
[root@localhost mnt]#chown -R nfsupload:nfsupload /mnt/upload/
[root@localhost mnt]#ll -d /mnt/upload/
drwxr-xr-x. 2 nfsupload nfsupload 24 Jun  3 04:06 /mnt/upload/

[root@localhost mnt]#ll -d /mnt/nfs
drwxr-xr-x. 2 root root 38 Jun  3 04:06 /mnt/nfs/

4.编辑 /etc/exports 文件

vi /etc/exports

添加如下内容

/mnt/share    192.168.100.0/24(rw,no_root_squash)
/mnt/managerdata    192.168.100.10(rw,anonuid=1500,anongid=1500)
/mnt/upload    192.168.100.0/24(rw,all_squash,anonuid=123,anongid=123)
/mnt/nfs    192.168.100.0/24(ro) *(rw,all_squash)

5.关闭防火墙,设置Selinux为允许,并重启NFS服务

systemctl stop firewalld.service
setenforce 0
getenforce
`Permissive`
systemctl restart nfs

6.在NFS客户端安装客户端软件

yum -y install nfs-utils

7.查看NFS服务器上共享的目录

[root@localhost ~]# showmount -e 192.168.196.140
Export list for 192.168.196.140:
/mnt/nfs         (everyone)
/mnt/upload      192.168.196.0/24
/mnt/share       192.168.196.0/24
/mnt/managerdata 192.168.196.10

8.在客户端本机上建立/mnt/ClientNFS目录,将NFS服务器上的/mnt/nfs目录挂载到该目录

#创建
[root@localhost ~]#mkdir /mnt/ClientNFS
#挂载
[root@localhost ~]#mount -t nfs 192.168.196.140:/mnt/nfs /mnt/ClientNFS/
#检查
[root@localhost ~]# cd /mnt/ClientNFS/
[root@localhost ClientNFS]# ls
nfs1.txt  nfs2.txt
[root@localhost ClientNFS]# touch nfs3.txt
touch: 无法创建"nfs3.txt": 权限不够

9.在客户端本机上建立/mnt/ClientUpload目录,将NFS服务器上的/mnt/ClientUpload目录挂载到该目录

#创建
[root@localhost ~]#mkdir /mnt/ClientUpload
#挂载
[root@localhost ~]#mount -t nfs 192.168.196.140:/mnt/upload /mnt/ClientUpload/
#检查
[root@localhost ~]# cd /mnt/ClientUpload/
[root@localhost ClientUpload]# ls
nfs1.txt  nfs2.txt
[root@localhost ClientUpload]# touch nfs3.txt
touch: 无法创建"nfs3.txt": 权限不够

遇到的问题及解决

  • NFS挂载时出现”mount.nfs: access denied by server while mounting
    问题原因: 使用了非法端口,也就是使用了大于1024的端口。
    这个错误,可以通过查看日志确认:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.196.140 for /home/nfsshare/ (/home/nfsshare): illegal port 1689

解决办法:修改配置文件/etc/exports,加入 insecure 选项,重启nfs服务,再尝试挂载.

/home/nfsshare/  *(insecure,rw,async,no_root_squash)

注:更多问题及解决见CSDN