Debian(Linux)局域网共享文件-NFS

NFS (Network File system) 是一种客户端-服务器文件系统协议,允许多个系统或用户访问相同的共享文件夹或文件。最新版本是 NFS-V4,共享文件就像存储在本地一样。它提供了中央管理,可以使用防火墙和 Kerberos 身份验证进行保护。

本文将指导您在 Debian 10 中安装 NFS 服务器,并将其挂载到客户机上。

实验准备

  • NFS server : 192.168.122.126 (Debian 10)
  • NFS Client : 192.168.122.173 (Any Linux system)

安装 NFS Server

更新系统

$ sudo apt-get update

安装 nfs 软件包

$ sudo apt install nfs-kernel-server

创建一个目录,通过 NFS 服务器共享文件和文件夹

$ sudo mkdir --p /mnt/nfsshare

由于共享将被客户端中的任何用户使用,因此权限设置为 nobody 用户和 nogroup 组

$ sudo chown nobody:nogroup /mnt/nfsshare

使用户共享文件夹具有足够的读写权限,您也可以根据自己的需要设置

$ sudo chmod 755 /mnt/nfsshare

编辑 /etc/exports 配置文件

$ sudo vi /etc/exports

在文件末尾添加以下内容

/mnt/nfsshare 192.168.122.173(rw,sync,no_subtree_check)

参数说明:

* rw: 读写操作
* sync: 在应用更改之前,将更改写入磁盘
* no_subtree_check: 禁用子树检查

最终 /etc/export 文件内容如下

导出共享目录,如果没有显示任何错误,说明您的配置正确

$ sudo exportfs --a

如果您在 Debian 上运行防火墙,请允许客户端连接到 NFS

$ sudo ufw allow from 192.168.122.173/32 to any port nfs

挂载 NFS Client

现在,让我们在客户机上挂载 NFS 共享,先安装 nfs-common 包

For Ubuntu Debian / Ubuntu

$ sudo apt install nfs-common

创建一个从服务器访问共享文件夹的目录

$ sudo mkdir -p /mnt/shared_nfs

对于永久挂载,请在 /etc/fstab 文件中添加以下内容

$ sudo vi /etc/fstab

在文件末尾添加以下内容

192.168.122.126:/mnt/nfsshare  /mnt/shared_nfs  nfs4 defaults,user,exec  0 0

参数说明:

  • 192.168.122.126:/mnt/nfsshare = 来自 NFS 服务器的共享文件夹
  • /mnt/shared_nfs = 在客户端机器上挂载的目录
  • nfs4 = nfs version 4
  • defaults,user,exec = 允许任何用户挂载文件系统,也允许他们执行二进制文件

使用 mount 命令挂载 NFS 文件系统

$ sudo mount -a

使用 df -h 命令查看挂载点,如下所示

让我们尝试在 NFS 共享上创建一个目录

$ cd /mnt/shared_nfs
$ mkdir test_dir

让我们尝试在 NFS 共享上创建一个文件

$ cd /mnt/shared_nfs
$ touch test_file.txt

如果没有显示任何错误,说明您的配置是正确的,您可以使用 NFS 共享系统。

相关推荐
补三补四20 分钟前
Django与视图
数据库·python·django·sqlite
Charary40 分钟前
字符设备驱动开发与杂项开发
linux·驱动开发
程序员总部1 小时前
如何应对Maven中的依赖导入挑战?
数据库·sql·maven
孤寂大仙v1 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
钢板兽2 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
byxdaz2 小时前
NVIDIA显卡驱动、CUDA、cuDNN 和 TensorRT 版本匹配指南
linux·人工智能·深度学习
赵渝强老师2 小时前
【赵渝强老师】管理MongoDB的运行
数据库·mongodb
A仔不会笑2 小时前
MySQL面试篇——性能优化
java·数据库·mysql·面试·性能优化
梦幻编织者3 小时前
python使用django搭建图书管理系统
数据库·python·django
大白的编程日记.3 小时前
【Linux学习笔记】Linux基本指令分析和权限的概念
linux·笔记·学习