Ubuntu20.04上安装和配置NFS服务实现客户端挂载
Ubuntu 20.04
上安装和配置 NFS
服务器
参考:
https://cloud.tencent.com/developer/article/1626660
环境:ubuntu 20.04 18.04
概览:
- 服务端
- 客户端
介绍:
网络文件系统(NFS)是一个分布式文件系统协议,它允许你通过网络共享远程文件夹。通过 NFS,你可以将远程文件夹挂载到你的系统上,并且操作远程机器的文件,就像本地文件一样方便。
NFS
协议默认是不加密的,它不像Samba
,它不提供用户身份鉴别。服务端通过限定客户端的IP
地址和端口来限制访问。在这个指南中,我们将一起看看如何在
Ubuntu 20.04
上建立一个NFSV4
服务器。我们将会为你展示如何在客户端上挂载NFS
文件系统。
前提:
- 运行
Ubuntu 20.04
的服务器,在这台服务器上,我们将会建立NFS
服务器, - 并且另外一个运行其他 Linux 发行版的机器将作为
NFS
客户端。 - 服务器和客户端应该能够通过私有局域网互相连接。如果无法提供私有
IP
地址,你可以使用公有地址,配置服务器的防火墙,并且允许来自可信源的流量通过端口2049
。
这个例子中的机器有如下 IPs
:
服务端NFS Server IP | IP NFS Clients IPs: |
---|---|
10.0.0.10 | 10.0.0.11 |
10.0.0.10 | 其他任何linux 发行版连接 >> 服务端From the 10.0.0.10/24 range |
一. 服务端 建立 NFS
服务器
这一段讲解如何安装必要的软件包,创建并且导出 NFS 目录,并且配置防火墙。
1.1
安装 NFS 服务器
刷新软件索引并且安装 NFS 服务器软件包
1 | # 安装NFS服务端 |
一旦安装完成,NFS 服务将会自动启动。默认情况下,在 ubuntu 20.04 上 NFS 版本 2 被禁用。NFS 3 和 NFS 4 都可以用。你可以运行下面的命令去验证
1 | # 查看支持版本 |
NFSv2
非常古老,没有理由去启用它。 NFS 服务器配置选项在/etc/default/nfs-kernel-server
和/etc/default/nfs-common
文件。默认的设置对于我们的使用场景已经足够了。
2.
服务端设置共享给客户端的挂载目录(10.0.0.12 192.168.33.0
为服务端允许的客户端IP
本服务端IP >> 10.0.0.10
)
- 第一行包含
fsid=0
定义了 NFS 根目录/srv/nfs
.来自10.0.0.12/24
网络的所有客户端被允许访问 NFS 卷。crossmnt
选项是必要的,用来分享被导出目录的子目录。 - 第二行显示了如何针对一个文件系统指定多个导出规则。它导出了
/srv/nfs4/backups
目录,并且允许来自10.0.0.12/24
的客户端只读访问,而来自192.168.33.3
的客户端同时读写可访问。这个sync
选项告诉了NFS
在回复之前将修改写入磁盘。 - 最后一行应该是自解释的。想要了解更多可用选项,在终端输入
man exports
。
1 | # 服务端设置共享给客户端的挂载目录 |
3.
生效配置
1 | # 生效配置 |
NOTE: 每次修改/etc/exports
文件你都需要运行一次上面的命令。如果有任何的错误或者警告,它们会被显示在终端上。
4.
防火墙配置开放端口
1 | # 允许192.168.33.0/24段IP访问NFS服务 |
此时服务端构建结束。
二. 客服端
1.
在其他客户端的机器上,安装需要挂载远程 NFS 文件系统的工具.
- 在
Debian
和Ubuntu
上安装NFS
客户端 在基于Debian
的发行版中,包含挂载 NFS 文件系统的软件包名是:nfs-common
。安装运行:sudo apt update && sudo apt install nfs-common
- 在
CentOS
和Fedora
上安装NFS
客户端 在Red Hat
和它的衍生版本上安装nfs-utils
包:sudo yum install nfs-utils
1 | # ubuntu安装 |
2.
挂载文件系统
我们将在 IP
为10.0.0.11
的客户端机器上操作。这台机器拥有对/srv/nfs4/www
的读写操作权限,和对/srv/nfs4/backups
文件的只读访问权限。
创建两个新目录作为挂载点。你可以在任何位置创建这些目录:
1 | # 创建挂载点目录 |
2.1.
临时挂载 >> 永久挂载
1 | # 挂载 |
3.
验证永久挂载
1 | # 卸载(此目录为挂载点目录) |
三. 客户端测试 NFS 访问
1.
概览
1 | # 服务端定义共享目录 10.0.0.11只读192.168.33.3读写 |
2.
NFS共享10.0.0.11
只读权限目录
1 | # 服务端定义共享目录 10.0.0.11只读192.168.33.3读写 |
服务端创建客户端已同步文件只读
3.
NFS共享10.0.0.11
读写权限目录
1 | # 服务端定义共享目录读写 |
服务端文件同步
结语fighting
!