1. 安装nfs和rpcbind
yum install nfs-utils rpcbind
一般默认都有安装, 如果已安装可以跳过
2. 创建服务端共享目录
# 创建目录
mkdir -p /www/share_files
# 配置权限
chmod -R 777 /www/share_files
这里的/www/share_files就是服务端分享出来的目录
3. 配置nfs的配置文件
vi /etc/exports
文件中配置一行:
# /www/share_files 表示共享目录
# 192.168.1.4改成自己的IP
# (rw,sync,no_root_squash) 表示权限
/www/share_files 192.168.1.4(rw,sync,no_root_squash)
权限可选值参考:
rw:read-write,可读写; 注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
4. 刷新配置
exportfs -r
5. 启动nfs和rpcbind服务
# 查看服务状态
systemctl status rpcbind
systemctl status nfs-server
# 启动服务
systemctl restart rpcbind
systemctl restart nfs-server
# 设置开机自启
systemctl enable rpcbind
systemctl enable restart
6. 检测服务器的nfs状态
服务端检查:showmount -e
[root@iZxe4Z share_files]# showmount -e
Export list for iZgw839moiwhkboospwxe4Z:
/www/share_files *
客户端检查:showmount -e 192.168.1.4
[[email protected] centos]# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/www/share_files *
7. 挂载服务端的共享目录
# 192.168.1.4:/www/share_files 服务端IP:目录
# /www/jump_share_files 客户端目录
mount -t nfs 192.168.1.4:/www/share_files /www/jump_share_files
常见问题
挂载失败
失败场景一:
第7步中如果挂载出现错误提示:clnt_create: RPC: Program not registered
[[email protected] ~]$ showmount -e 192.168.1.4
clnt_create: RPC: Program not registered
解决办法:
- 在服务器上先停止rpcbind,
systemctl stop rpcbind
- 然后在停止nfs
systemctl stop nfs
最后在重启rpcbind和nfs,一定要按顺序启动和停止
systemctl start rpcbind systemctl start nfs
失败场景二:
第7步中如果挂载出现错误提示:mount.nfs: access denied by server while mounting 192.168.1.4:/www/share_files
查看具体失败原因:cat /var/log/messages | grep mount
Sep 23 17:52:20 iZj6cdspheuw91fen9pcvrZ rpc.mountd[20419]: refused mount request from 192.168.1.4 for /www/share_files (/www/share_files): unmatched host
解决办法:
重复第三步vi /etc/exports
, 将IP改为*/www/share_files *(rw,sync,no_root_squash)