📚 前言
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
服务:
systemctlenablerpcbind.servicesystemctlstartrpcbind.servicesystemctlstatusrpcbind.servicesystemctlenablenfs.servicesystemctlstartnfs.servicesystemctlstatusnfs.service
确认服务都已成功开启,并且配置开机自启。
2、关闭防火墙和selinux
systemctldisablefirewalldsystemctlstopfirewalldsystemctlstatusfirewalldsed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/configsetenforce0
3、配置 exports
默认是一个空文件,只需要按照如下格式配置即可,一行一个共享卷。
cat<<EOF>>/etc/exports/backup10.211.55.*(rw,sync) EOF##生效exportsexportfs-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-e10.211.55.100
如果显示如下即为正确:
导出列表在10.211.55.100: /backup10.211.55.*
3、mount 挂载远程目录
mount-tnfs-orw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp10.211.55.100:/backup/backup
4、配置开机自动挂载
cat<<EOF>>/etc/rc.localmount-tnfs-orw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp10.211.55.100:/backup/backupEOF##Linux7需要手动授权执行权限,否则无权限chmod+x/etc/rc.d/rc.local
看到这里有朋友会问了,为什么不配置在 /etc/fstab
文件中?
我悄悄告诉你:等你开机开不了的时候,就不会配置在 /etc/fstab
里面了罒ω罒!
OK,至此已经配置完成,通过 df -h
就可以查看已挂载的 NFS 目录啦!
小BUG
最后再分享一个很坑的小bug吧,需要注意 📢:
‼️ 不要在服务端 /etc/hosts
文件中配置客户端的主机解析名!
至于为什么? 你可以自己去测试一下呀!毕竟实践出真知嘛~😄