Linux中安装配置nfs

NFS,全称Network File System,即网络文件系统,是一种分布式文件系统协议。在网络上共享文件,就像访问本地存储一样,广泛应用于各种需要高性能文件访问的场景,可以透过网络,让不同的机器,不同的操作系统,进行实现文档的共享。NFS架构主要由三部分组成:NFS服务器、客户端和传输协议。

1、 安装nfs

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

2、创建文件夹

bash 复制代码
sudo mkdir -p /home/loongson/Documents/nfs

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

bash 复制代码
sudo chown nobody:nogroup /home/loongson/Documents/nfs #拥有最基础权限,确保文件 / 目录的属主和属组都处于无特权状态
sudo chmod 777 /home/loongson/Documents/nfs

4、 配置nfs

打开NFS服务器配置文件:

bash 复制代码
sudo vi /etc/exports

在打开的配置文件最后一行添加NFS共享目录的条目。

bash 复制代码
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)

/home/loongson/Documents/nfs *(insecure,rw,sync,no_root_squash,no_subtree_check)

insecure,rw,sync,no_root_squash,no_subtree_check 是NFS共享目录的常用选项。这些选项的含义如下:

insecure:允许非特权端口(大于1024)的客户端请求连接到NFS服务器。在某些情况下,这是必需的,但请注意这可能会降低安全性。

rw:将共享目录设置为可读写模式,客户端可以对该目录进行读写操作。

sync:启用同步写入模式,将数据同步写入服务器磁盘。这可以确保数据完整性,但也会降低性能。

no_root_squash:允许以root用户的身份访问共享目录。如果不使用此选项,则root用户将被映射为匿名用户,权限将受到限制。

no_subtree_check:禁用子树检查,防止NFS对共享目录的子目录进行权限检查。这在某些情况下可以提高性能。
:允许所有客户端访问,可以使用通配符IP地址代替

保存并关闭配置文件。

5、重启

重新加载NFS服务器配置。使用以下命令重新加载配置文件:

bash 复制代码
sudo exportfs -r #启动或重新启动NFS服务器。
sudo systemctl start nfs-server     # Ubuntu 或 Debian

检查配置是否成功

bash 复制代码
sync  //同步环境
nfs-kernel-server restart  //重启nfs服务
showmount -e //显示当前可以被挂载的目录

显示如下 ,则配置成功

bash 复制代码
loongson@ubuntu:~$showmount -e
Export list for ubuntu:
/home/loongson/Documents/nfs/rootfs *

6 、 确保允许 NFS 服务的相关端口:

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

现在,NFS服务器已经重新配置并准备好供客户端访问。确保在客户端上安装了NFS客户端软件包,并使用适当的方式将NFS共享目录挂载到客户端上。

7 、客户端挂载 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:/home/loongson/Documents/nfs/rootfs (其中 192.168.1.100 是 NFS 服务器的 IP 地址)

8 、自动挂载(可选)

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

bash 复制代码
sudo nano /etc/fstab

在文件末尾添加一行:

bash 复制代码
192.168.1.100:/home/loongson/Documents/nfs/rootfs /mnt/nfs_share nfs defaults 0 0

9 、验证共享

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

相关推荐
码农学院1 小时前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
大耳朵-小飞象10 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技11 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++11 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
生活爱好者!14 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
groundhappy15 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
尽兴-15 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
TlSfoward15 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
通信小小昕16 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu