一、服务端配置
安装nfs服务
yum install -y nfs-utils rpcbind
systemctl enable --now rpcbind
systemctl enable --now nfs-server.service
rpcinfo -p #查看注册在指定主机的RPC程序
创建文件,并设置成共享文件
mkdir /data/nfsdir{1..2}
touch /data/nfsdir1/test1.txt
touch /data/nfsdir2/test2.txt
vim /etc/exports
/data/nfsdir1 *(rw,no_root_squash)
/data/nfsdir2 *(rw,no_root_squash)
# 或者 (二选一)
vim /etc/exports.d/test.exports
/data/nfsdir1 *(rw,no_root_squash)
/data/nfsdir2 *(rw,no_root_squash)
exportfs -r #重读配置文件
exportfs: No options for /data/nfsdir1 *: suggest *(sync) to avoid warning
exportfs -v #查看可共享文件信息
/data/nfsdir1 <world>(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,no_root_squash,no_all_squash)
/data/nfsdir2 <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
二、客户端配置
安装nfs服务,包含客户端
yum install -y nfs-utils nfs-common
systemctl enable --now nfs-server.service
将nfs服务器上共享文件夹挂载到nfs客户端的某一个目录
showmount -e 10.0.0.21 #在nfs客户端上查看nfs服务器上可共享(可连接)的文件夹
Export list for 10.0.0.21:
/data/nfsdir2 *
/data/nfsdir1 *
#创建文件
mkdir /mnt/nfs1
mkdir /mnt/nfs2
#临时挂载
mount 10.0.0.21:/data/nfsdir1 /mnt/nfs1
mount 10.0.0.21:/data/nfsdir2 /mnt/nfs2
#永久挂载
vim /etc/fstab
10.0.0.21:/data/nfsdir1 /mnt/nfs1 nfs _netdev 0 0
10.0.0.21:/data/nfsdir2 /mnt/nfs2 nfs _netdev 0 0
#查看挂载情况
mount
10.0.0.21:/data/nfsdir1 on /mnt/nfs1 type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.11,local_lock=none,addr=10.0.0.21)
10.0.0.21:/data/nfsdir2 on /mnt/nfs2 type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.11,local_lock=none,addr=10.0.0.21)
三、服务器端配置注意事项
如果要在nfs客户端创建文件,不仅要在服务器端共享配置文件上配置rw,也要在对应的文件夹配置文件权限,在配置 root_squash (root 压榨)情况下要更改文件夹权限,在配置 no_root_squash (root不压榨)情况下可以不需要更改文件夹权限。
配置root_squash情况下
touch /mnt/nfs2/test1.txt
ll /mnt/nfs2/ #配置root_squash,服务器端不更改权限,客户端查看user是nfsnobody
-rw-r--r-- 1 nfsnobody nfsnobody 0 Feb 21 01:55 test1.txt
#在服务器端更改共享文件权限
chmod 777 /data/nfsdir2
ll /data/nfsdir2 #配置root_squash,服务器端更改权限,客户端查看user是root
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Feb 21 01:55 test1.txt
-rw-r--r-- 1 root root 0 Feb 21 01:36 test2.txt
推荐:配置no_root_squash情况下
vim /etc/exports.d/test.exports #更改配置文件,不对root进行压榨
/data/nfsdir2 *(rw,no_root_squash)
exportfs -v
/data/nfsdir1 <world>(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
/data/nfsdir2 <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
touch test3.txt
ll
total 0
-rw-r--r-- 1 root root 0 Mar 10 21:24 test3.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Feb 21 01:55 test1.txt
-rw-r--r-- 1 root root 0 Feb 21 01:36 test2.txt