👨💻网络文件共享(NFS)是 Linux 客户端网络(含 Ubuntu)常用的文件与目录共享协议。
通过创建共享目录并存储文件,可让客户端轻松访问,是多客户端系统交换公共数据的理想之选。
后续把 “nft-server” 当作 NFS 服务器,“nft-client” 当作 NFS 客户端进行讲解。
以下是基于 Ubuntu 上的 Docker Swarm 集群安装和配置 NFS server 的详细步骤:
在 Ubuntu 上安装 NFS 服务器:步骤将按照顺序输出,其中有一些按需求可以跳过的步骤会写明。
第1步:更新系统包
|
1 |
sudo apt update |
确保所有软件包均已更新;
第2步:nft-server上安装NFS服务器
|
1 |
sudo apt install nfs-kernel-server |
输出表明NFS服务已成功安装到了nft-server服务器上;
第3步:nft-client上安装NFS服务器
|
1 |
sudo apt install nfs-kernel-server |
nft-client指另一台客户端服务器,如果你要实现多个客户端,那么你需要在所有客户端都安装好NFS服务;
第4步:在nft-server上创建共享NFS目录
创建一个名为“nfs_share”的目录,该目录将由所有客户端系统共享;
|
1 |
sudo mkdir -p /mnt/nfs_share |
第5步:设置目录权限
设置创建的“nfs_share”目录的权限;
|
1 |
sudo chown -R nobody:nogroup /mnt/nfs_share/ |
第6步:设置文件权限
根据需要设置文件权限。在我们的例子中,我们为“nfs_share”目录文件分配了读、写和执行权限;
|
1 |
sudo chmod 777 /mnt/nfs_share/ |
第7步:授予所有节点NFS访问权限
|
1 |
sudo vim /etc/exports |
①授予对整个子网访问权限,这里写的是将允许整个子网“10.0.2.15/24”访问 NFS 共享,需要根据你的子网地址进行更改这部分;
|
1 |
/mnt/nfs_share 10.0.2.15/24(rw,sync,no_subtree_check) |
②授予单个或多个客户端的访问权限,这里写的是将单个ip“123.123.123.123”访问 NFS 共享,需要根据你的客户端ip进行更改这部分;
|
1 |
/mnt/nfs_share 123.123.123.123(rw,sync,no_subtree_check) |
vim退出编辑并且保存(关闭输入法):ESC → 按下:→ 输入wq →回车;
第8步:导出NFS目录
|
1 |
sudo exportfs -a |
第9步:重新启动NFS服务器
|
1 |
sudo systemctl restart nfs-kernel-server |
第10步:配置防火墙访问权限/此步骤可跳过按实际情况执行
第1步:授予防火墙访问权限
使用以下“ufw”命令授予防火墙对客户端系统的访问权限;
|
1 |
sudo ufw allow from 10.0.2.15/24 to any port nfs |
第2步:启用防火墙
|
1 |
sudo ufw allow from |
第3步:检查防火墙状态,查看防火墙是否配置为允许通过端口“2049”进行访问;
|
1 |
sudo ufw status |
如果你使用的是来自服务供应商的vps或者独立服务器,此步一般无需配置,但是记得要提前去安全规则放开2049端口,以便节点之间能够通过端口互相访问NFS端口,可以按照下方演示的图来设置,这样也能达到上方设置防火墙的效果;

第11步:另一个客户端nft-client系统上挂载 NSF 共享,如果命令跑不通即为服务端端口未放开
|
1 |
sudo mount 服务端IP:/mnt/nfs_share /mnt/nfs_share |
第12步:在nft-server或者nft-client上测试NFS共享
为了在客户端系统上测试 NFS共享,我们在“nft-server”NFS 服务器上的“nfs_share”目录中创建一个文件;
|
1 |
cd /mnt/nfs_share/ |
|
1 |
touch sample1.text sample2.text |
然后,切换到客户端系统并查看“/mnt/nfs_share/”目录中存在的文件列表;
|
1 |
ls -l /mnt/nfs_clientshare/ |
输出:sample1.text sample2.text
给定的输出表明文件已通过NFS服务器在“nft-server”客户端上成功访问;
|
1 2 3 4 |
在 Ubuntu 22.04 上卸载 NFS 服务器 sudo apt remove nfs-kernel-server 在 Ubuntu 22.04 上卸载 NFS 客户端 sudo apt remove nfs-common |