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 共享是否成功挂载:

相关推荐
旖旎夜光14 小时前
Linux(13)(中)
linux·网络
威迪斯特14 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.14 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔14 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX15 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞0515 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*15 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`15 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
春日见15 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡15 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器