Linux之NFS服务器配置
NFS(Network File System)即网络文件系统,它允许网络中的不同计算机相互之间共享资源,NFS客户端可以透明地读写远程NFS服务器上的文件,就像访问本地文件一样.
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