📚 前言
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,像访问本地文件一样。
☀️ 介绍
Linux 系统下,如果想要将 A 机器的目录挂载到 B 机器,让 B 机器访问,可以通过 NFS
将目录挂载到 B 机器!
本文介绍下如何配置 NFS 远程目录:
- 机器A: 服务端,IP:10.211.55.100,假设有有一个目录 /backup
- 机器B: 客户端,IP:10.211.55.101,需要访问 A 服务器的 /backup 目录
- 机器 A,B 尽量配置在同一个网段下,假设为:10.211.55.*
❤️ NFS 配置
服务端配置
1、开启服务
服务端需要开启 rpcbind
,nfs
服务:
systemctl enable rpcbind.service
systemctl start rpcbind.service
systemctl status rpcbind.service
systemctl enable nfs.service
systemctl start nfs.service
systemctl status nfs.service
确认服务都已成功开启,并且配置开机自启。
2、关闭防火墙和selinux
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
3、配置 exports
默认是一个空文件,只需要按照如下格式配置即可,一行一个共享卷。
cat <<EOF>>/etc/exports
/backup 10.211.55.*(rw,sync)
EOF
## 生效exports
exportfs -rv
文件中可以设置参数:
- rw:具有读写权限
- sync:资料同步写入磁盘和内存
- o:只读权限
- no_root_squash:登入nfs主机时,拥有共享目录所有者权限
- root_squash:登入nfs主机时,拥有共享目录所有者权限,但如果共享目录的拥有者时root用户,那么登入者权限为nobody权限
- all_squash:登入nfs主机时,拥有nobody用户权限
- anonuid:指定用户id
- anongid:指定群id
- async:资料先存内存,再存硬盘
- no_subtree_check:不检查父文件夹权限
- subtree:检查父文件权限
- secure:限制client port(<1024)
至此,服务端就已经配置好了!
客户端配置
客户端配置比较简单!
1、创建挂载目录
mkdir /backup
可以与服务端挂载目录不同名。
2、查看是否可以访问服务端NFS
showmount -e 10.211.55.100
如果显示如下即为正确:
导出列表在 10.211.55.100:
/backup 10.211.55.*
3、mount 挂载远程目录
mount -t nfs -o rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp 10.211.55.100:/backup /backup
4、配置开机自动挂载
cat <<EOF>>/etc/rc.local
mount -t nfs -o rw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp 10.211.55.100:/backup /backup
EOF
## Linux7需要手动授权执行权限,否则无权限
chmod +x /etc/rc.d/rc.local
看到这里有朋友会问了,为什么不配置在 /etc/fstab
文件中?
我悄悄告诉你:等你开机开不了的时候,就不会配置在 /etc/fstab
里面了罒ω罒!
OK,至此已经配置完成,通过 df -h
就可以查看已挂载的 NFS 目录啦!
小BUG
最后再分享一个很坑的小bug吧,需要注意 📢:
‼️ 不要在服务端 /etc/hosts
文件中配置客户端的主机解析名!
至于为什么? 你可以自己去测试一下呀!毕竟实践出真知嘛~😄
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️