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!



















