J.V.'s Blog

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)操作。

安装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

df.png

使用

在任意一台机器上的/nfs文件夹下进行文件操作,都会同步到其他机器上

  1. 在客户端机器172.16.126.131写入文件
echo "hello nfs" > /nfs/hello.txt
  1. 在客户端机器172.16.126.132读取文件
ls /nfs
cat /nfs/hello.txt

卸载NFS挂载

sudo umount /nfs
sudo umount -f /nfs
-f: 强制卸载

#k8s #linux #开发