参考
1. 安装
# master
yum install nfs-utils rpcbind -y
# client
yum install nfs-utils -y
2. 配置
# 提前创建目录
mkdir -p /data/test
# 允许 "100.64.192.0/18" 网段的主机读写,"*" 表示允许任何主机
cat << EOF > /etc/exports
/data/test 100.64.192.0/18(rw,sync)
EOF
# 使配置生效
# exportfs -arv
exportfs -rv
3. 启动
# 开机启动
systemctl enable rpcbind
systemctl enable nfs-server
# 启动
systemctl restart rpcbind
systemctl restart nfs-server
# 验证
rpcinfo -p
exportfs
# 查看挂载目录权限
cat /var/lib/nfs/etab
4. 固定端口(optional)
# 去掉以下内容的注释,如无则添加;
# 如果已启动nfs-server服务,则重启NFS服务不能解决问题,需要重启服务器,才能将端口固定
vim /etc/sysconfig/nfs
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT
vim /etc/modprobe.d/lockd.conf
options lockd nlm_tcpport=32803
options lockd nlm_udpport=32769
# iptables 放行相关端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 662 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 662 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT
5. 客户端
yum install nfs-utils -y
# NFS客户端的操作:
# 1.showmout命令对于NFS的操作和查错有很大的帮助
showmout -a # 这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器
showmout -e # 显示指定的NFS SERVER上export出来的目录
# 2.mount nfs目录的方法:
mount -t nfs 100.64.198.159:/data/test /mnt/test
# 挂载信息写入 "/etc/fstab" 文件
cat << EOF >> /etc/fstab
100.64.198.159:/data/test /mnt/test nfs defaults 1 2
EOF
6. 补充:关于权限的说明
- 1)、客户端连接时,对普通用户的检查
- a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;
- b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;
- c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;
- 2)、客户端连接时,对root帐号的检查
- a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;
- b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;
- c. 如果没有明确指定,此时root用户被压缩为nfsnobody;
- d. 如果同时指定no_root_squash与all_squash, 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组。