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