Ubuntu 下搭建 NFS 服务

本文详细介绍了NFS(网络文件系统)的基本概念、安装步骤、共享目录配置及服务启动流程。通过具体实例,展示了如何在Ubuntu系统中搭建NFS服务器,并实现开发板与Ubuntu之间的文件共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、NFS 介绍

NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 C/S 架构。

2、安装 NFS 软件包

sudo apt-get install nfs-kernel-server  # 安装 NFS服务器端
sudo apt-get install nfs-common         # 安装 NFS客户端

3、添加 NFS 共享目录

sudo vim /etc/exports

若需要把 “/nfsroot” 目录设置为 NFS 共享目录,请在该文件末尾添加下面的一行:

/nfsroot *(rw,sync,no_root_squash)     # * 表示允许任何网段 IP 的系统访问该 NFS 目录

在这里插入图片描述
新建“/nfsroot”目录,并为该目录设置最宽松的权限:

sudo mkdir /nfsroot
sudo chmod -R 777 /nfsroot
sudo chown ipual:ipual /nfsroot/ -R   # ipual 为当前用户,-R 表示递归更改该目录下所有文件

4、启动 NFS 服务

sudo /etc/init.d/nfs-kernel-server start    或者  
sudo /etc/init.d/nfs-kernel-server restart

在 NFS 服务已经启动的情况下,如果修改了 “/etc/exports” 文件,需要重启 NFS 服务,以刷新 NFS 的共享目录。

5、测试 NFS 服务器

sudo mount -t nfs 192.168.12.123:/nfsroot /mnt -o nolock

192.168.12.123 为主机 ip,/nfsroot 为主机共享目录,/mnt 为设备挂载目录,如果指令运行没有出错,则 NFS 挂载成功,在主机的 /mnt 目录下应该可以看到 /nfsroot 目录下的内容(可先在 nfsroot 目录下新建测试目录),如需卸载使用

umount /mnt

6、开发板挂载 Ubuntu

① 首先确定 Ubuntu 可以上网,然后将开发板联网,使其与 Ubuntu 在同一网段下(方式有很多种这里给出参考:1.将开发板接在电脑所连的路由器或交换机上 2.将开发板连接电脑的网口,使用虚拟网卡,桥接)
② 确定开发板与Ubuntu之间可以 ping 通:

ping 192.168.12.123

③ 开发板端输入

sudo mount -t nfs 192.168.12.123:/nfsroot /mnt -o nolock

如果没有报错即为挂载成功。

注意:在 mount 与 umount(解除挂载)操作时,用户的当前路径不能是操作的目标路径。

<think>好的,我现在需要帮助用户解决在Ubuntu上安装和配置NFS服务器及客户端的问题。首先,我得回忆一下NFS的基本概念和安装步骤。NFS是网络文件系统,允许不同计算机之间共享目录。根据用户提供的引用内容,安装过程包括安装服务、配置共享目录、启动服务、客户端挂载等步骤。 首先,安装NFS服务器。用户提到的引用[2]指出,安装命令是sudo apt install nfs-kernel-server。这一步应该是正确的,因为Ubuntu通常使用apt来安装软件包。接下来需要创建共享目录,比如/home/nfs_share,并设置权限,引用[2]和[3]都提到了创建目录和配置/etc/exports文件。记得用exportfs -a更新配置,这应该来自引用[3]。 然后是客户端安装nfs-common包,使用sudo apt install nfs-common,这样客户端才能挂载NFS共享。挂载命令是mount -t nfs server_ip:/shared_dir /mount_point,如引用[4]所描述的。验证挂载是否成功可以用df -h或者访问目录,引用[1]提到了验证步骤。 用户可能需要持久化挂载,所以需要编辑/etc/fstab,添加服务器IP和挂载点,这样重启后依然有效。引用[1]中的第6步提到了这一点。另外,防火墙设置可能也是必要的,允许NFS端口,引用中没有详细说明,但根据经验,可能需要配置UFW或iptables。 现在需要检查是否有遗漏的步骤,比如配置/etc/exports时的参数是否正确,例如rw,sync,no_subtree_check等选项,引用[3]提到该文件的重要性。另外,客户端安装后是否需要重启服务?可能不需要,但确保服务正常运行是关键,比如用systemctl status nfs-server查看状态。 用户的问题还涉及客户端安装,所以需要明确区分服务器和客户端的步骤。引用[4]解释了NFS的基本原理,帮助理解为什么需要这些步骤。可能还需要注意版本兼容性,比如使用nfs-common支持不同版本的NFS。 最后,生成相关问题时,要考虑用户可能遇到的后续问题,比如权限问题、性能优化、故障排除等。例如,如何设置访问权限,如何调试挂载失败,或者如何提高NFS传输速度等。 确保回答结构清晰,分步骤说明,并正确引用提供的资料。同时,按照系统级指令使用正确的中文和LaTeX格式,但用户的问题中没有涉及数学公式,所以可能不需要使用太多LaTeX,但如果有变量或路径,可能需要用行内格式,比如$...$,不过这里可能用代码块更合适。 总结步骤:安装服务器软件、配置共享目录、编辑exports文件、启动服务、客户端安装软件、挂载共享目录、验证和持久化。引用对应的引用编号,确保用户能参考到详细步骤。</think>### 如何在 Ubuntu 系统中安装和配置 NFS 服务器及客户端 #### **NFS 服务器安装与配置** 1. **安装 NFS 服务** 在 Ubuntu 服务器端执行以下命令安装 NFS 核心软件包: ```bash sudo apt install nfs-kernel-server # 安装 NFS 服务器 [^2] ``` 2. **创建共享目录** 新建一个用于共享的目录(例如 `/home/nfs_share`)并设置权限: ```bash sudo mkdir -p /home/nfs_share sudo chown nobody:nogroup /home/nfs_share # 设置匿名访问权限(可选) ``` 3. **配置 NFS 共享规则** 编辑配置文件 `/etc/exports`,添加共享目录和访问权限: ```bash /home/nfs_share *(rw,sync,no_subtree_check,no_root_squash) # 允许所有IP读写访问 [^3] ``` - `rw`:读写权限 - `sync`:同步写入 - `no_subtree_check`:禁用子目录检查以提升性能 4. **应用配置并启动服务** ```bash sudo exportfs -a # 重新加载配置 sudo systemctl restart nfs-kernel-server # 重启服务 [^1] ``` 5. **防火墙配置(可选)** 若启用防火墙,需开放 NFS 相关端口(如 2049、111): ```bash sudo ufw allow from 192.168.1.0/24 to any port nfs # 限制访问IP段 ``` --- #### **NFS 客户端配置** 1. **安装客户端工具** 在客户端执行以下命令安装 NFS 客户端软件包: ```bash sudo apt install nfs-common # 安装客户端依赖 [^1] ``` 2. **挂载 NFS 共享目录** 创建本地挂载点并挂载远程目录: ```bash sudo mkdir /mnt/nfs_client sudo mount -t nfs <服务器IP>:/home/nfs_share /mnt/nfs_client # 手动挂载 [^4] ``` 3. **验证挂载** 使用 `df -h` 查看挂载结果,或在挂载点创建测试文件: ```bash touch /mnt/nfs_client/test.txt # 验证读写权限 ``` 4. **持久化挂载(可选)** 编辑 `/etc/fstab` 实现开机自动挂载: ```bash <服务器IP>:/home/nfs_share /mnt/nfs_client nfs defaults 0 0 # 添加此行 ``` --- #### **关键原理说明** - NFS 依赖 **RPC(远程过程调用)** 机制协调客户端与服务器的通信。 - 共享目录通过 `/etc/exports` 定义规则,客户端需通过 `mount` 命令挂载到本地文件系统。 ---
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值