Ubuntu NFS 搭建及配置

在 Ubuntu 上搭建和配置 NFS(Network File System)服务器,可以让其他设备通过网络访问共享的文件夹。以下是步骤指南:

1. 安装 NFS 服务器

首先,安装 NFS 服务器软件包:

bash 复制代码
sudo apt update
sudo apt install nfs-kernel-server

2. 创建共享目录

创建一个目录作为共享文件夹,例如 /srv/nfs:

bash 复制代码
sudo mkdir -p /srv/nfs

设置目录权限(根据需求可以进行更改):

bash 复制代码
sudo chown nobody:nogroup /srv/nfs
sudo chmod 777 /srv/nfs

3. 配置 NFS 导出目录

编辑 NFS 导出的配置文件 /etc/exports,添加共享目录和权限配置。例如,允许局域网内 IP 地址范围为 192.168.1.0/24 的客户端访问 /srv/nfs 目录:

bash 复制代码
sudo nano /etc/exports

在文件中添加如下内容:

复制代码
/srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check)

参数解释:

  • rw:读写权限
  • sync:同步写入数据(更安全)
  • no_subtree_check:防止子目录检查,提升性能

保存文件并退出编辑器。

4. 应用配置并启动 NFS 服务

执行以下命令使配置生效,并启动 NFS 服务:

bash 复制代码
sudo exportfs -a
sudo systemctl restart nfs-kernel-server

5. 配置防火墙(可选)

如果使用了防火墙,确保允许 NFS 服务的相关端口:

bash 复制代码
sudo ufw allow from 192.168.1.0/24 to any port nfs

6. 客户端挂载 NFS 共享

在客户端机器上,安装 NFS 客户端:

bash 复制代码
sudo apt install nfs-common

然后,创建一个挂载点并挂载 NFS 共享。例如挂载到 /mnt/nfs_share 目录:

bash 复制代码
sudo mkdir -p /mnt/nfs_share
sudo mount 192.168.1.100:/srv/nfs /mnt/nfs_share

(其中 192.168.1.100 是 NFS 服务器的 IP 地址)

7. 自动挂载(可选)

如果希望在系统启动时自动挂载 NFS 共享,可以将其添加到 /etc/fstab 文件中:

bash 复制代码
sudo nano /etc/fstab

在文件末尾添加一行:

复制代码
192.168.1.100:/srv/nfs /mnt/nfs_share nfs defaults 0 0

8. 验证共享

在客户端上,可以通过 df -h 命令验证 NFS 共享是否成功挂载:

bash 复制代码
df -h

9. 常见问题排查

  • 无法访问共享目录:检查防火墙配置,确保 NFS 所需的端口是开放的。
  • 挂载失败 :检查服务器上的 /etc/exports 文件是否正确配置,并确认 NFS 服务是否运行正常。

这样你就成功地在 Ubuntu 上搭建了 NFS 服务,并且客户端也可以访问共享的文件夹了。

相关推荐
wuminyu6 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
IMPYLH7 小时前
Linux 的时间为什么会被拨回去
linux·运维·服务器
2601_963282777 小时前
寒地窄带通信工程实践:黑龙江哈尔滨对讲机选型、组网与合规运维总结
运维·服务器·网络
叼烟扛炮8 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
xbzb9 小时前
OpenStack 网络管理(理论):Linux 网络虚拟化是 Neutron 的地基
linux·服务器·网络·openstack·network·neutron
Android系统攻城狮10 小时前
Linux FFmpeg深度解析之avcodec_flush_buffers调用流程与实战(十九)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频进阶
水饺编程11 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Y38153266211 小时前
用 httpx 写 SerpBase 异步客户端:连接池与超时配置
运维·服务器·数据库
Zevalin爱灰灰11 小时前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
倔强的石头10611 小时前
【Linux指南】进程通信系列(七):System V 信号量 —— 同步互斥的内核原语
linux·运维·服务器