Debian12上安装NFS服务器和客户端
网络文件系统NFS可以让机器像在本地挂载磁盘分区一样挂载远程机器上的磁盘分区。它可以通过网络快速、无缝地共享文件。本文介绍在Debian12系统上安装、配置NFS服务器与客户端的完整步骤。
什么是NFS?
网络文件系统NFS可以让机器像在本地挂载磁盘分区一样挂载远程机器上的磁盘分区。它可以通过网络快速、无缝地共享文件。
准备工作
准备3台虚拟机
| 操作系统 | IP | 角色 |
|---|---|---|
| Debian12 | 172.16.126.130 | 服务端 |
| Debian12 | 172.16.126.131 | 客户端 |
| Debian12 | 172.16.126.132 | 客户端 |
服务端
注意⚠️: 以下安装NFC服务器操作,只需要在服务端服务器(172.16.126.130)操作。
安装
更新软件包列表
apt update
安装NFS服务器包和客户端软件包
apt install nfs-kernel-server nfs-common -y
检查NFS服务器状态
执行以下 systemctl 命令来验证 nfs-server 服务并确保该服务已启用并正在运行
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
管理
之后,您可以使用以下命令来启动、重新启动和停止 nf-server 服务
sudo systemctl start nfs-server
sudo systemctl restart nfs-server
sudo systemctl stop nfs-server
配置NFS
配置NFS服务器
sudo vim /etc/default/nfs-common
修改内容
NEED_STATD="no"
NEED_IDMAPD="yes"
禁用 NFSv2 和 NFSv3
sudo vim /etc/default/nfs-kernel-server
# 添加
RPCNFSDOPTS="-N 2 -N 3"
# 修改
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"
重启NFS服务
sudo systemctl restart nfs-server
配置防火墙
sudo ufw allow from 172.16.126.0/24 to any port nfs
sudo ufw reload
sudo ufw status
导出文件系统
创建共享目录
sudo mkdir -p /nfs
sudo chmod 777 /nfs
配置NFS导出
sudo vim /etc/exports
# 允许访问该共享的客户端 IP 范围(这里表示 172.16.126.0 网段的所有主机)
/nfs 172.16.126.0/24(rw,sync,fsid=0,root_squash,no_subtree_check)
导出共享目录
sudo exportfs -ra
重启并查看
sudo systemctl restart nfs-server
sudo systemctl status nfs-server
sudo showmount --exports
客户端
注意⚠️: 以下设置客户端操作,只需要在客户端服务器(172.16.126.131,172.16.126.132)操作。
- 在 Debian 和 Ubuntu 上安装 NFS 客户端 在基于 Debian 的发行版中,包含挂载 NFS 文件系统的软件包名是:
nfs-common。 - 在 CentOS 和 Fedora 上安装 NFS 客户端 在 Red Hat 和它的衍生版本上安装
nfs-utils包: sudo yum install nfs-utils
安装NFS客户端包
sudo apt update
sudo apt install nfs-common -y
创建目标挂载目录
sudo mkdir -p /nfs
手动挂载共享目录
这个命令会将172.16.126.130上的/nfs目录挂载到本地的/nfs目录
sudo mount -t nfs 172.16.126.130:/nfs /nfs
验证挂载 执行以下命令来验证挂载是否成功
df -Th
以上手动挂载的方式,重启后会失效,下面通过/etc/fstab设置永久挂载。
设置永久挂载
sudo vim /etc/fstab
在文件最后添加一行
172.16.126.130:/nfs /nfs nfs defaults 0 0
重新挂载
sudo systemctl daemon-reload
sudo mount -a
此时可以尝试重启客户端机器看看是否可以自动挂载成功
验证
sudo df -Th

使用
在任意一台机器上的/nfs文件夹下进行文件操作,都会同步到其他机器上
- 在客户端机器172.16.126.131写入文件
echo "hello nfs" > /nfs/hello.txt
- 在客户端机器172.16.126.132读取文件
ls /nfs
cat /nfs/hello.txt
卸载NFS挂载
sudo umount /nfs
sudo umount -f /nfs
-f: 强制卸载