Linux7 挂载 nfs 远程目录

770 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

📚 前言

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、开启服务

服务端需要开启 rpcbindnfs 服务:

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三思而后行 ❤️