0%

Debian 搭建 NFS 服务器

转载自: https://blog.csdn.net/allway2/article/details/107546648

安装NFS软件包

NFSDebian 上安装非常简单。它已连接到内核,并且是一个通用软件包。您可以从主存储库安装所需的一切。

sudo apt install nfs-kernel-server

配置您的共享

首先创建要共享的目录或选择一个现有目录。确保您选择的目录没有仅root用户权限。

接下来,/etc/exports 使用您喜欢的文本编辑器打开。这是您用来设置共享的文件。在这里,您可以配置要共享的目录以及谁可以访问它们。您还可以为共享设置特定权限,以进一步限制访问。

在文件中,每个共享都有自己的行。该行从共享在服务器计算机上的位置开始。除此之外,您可以列出接受的客户端的主机名(如果在服务器的主机文件中可用),IP或IP范围。将共享规则直接放在IP地址后面的一组括号中。总共应该看起来像这样:

/media/nfs    192.168.1.0/24(rw,sync,no_subtree_check)

您可以根据需要添加任意数量的共享,前提是每个共享都有自己的行。您还可以在每一行中包含多个主机名或IP,并为它们分配不同的权限。例如:

/media/nfs    192.168.1.112(rw,sync,no_subtree_check) 192.168.1.121(ro,sync,no_subtree_check)

在这种情况下,每台计算机都可以查看共享并从中读取内容,但是只有 192.168.1.112 该处的计算机可以对其进行写入。

您可以选择很多其他选项,以配置服务器处理每个来宾共享的方式。这是可用功能的完整细分:

  • ro:指定目录只能以只读方式挂载
  • rw:授予对目录的读写权限
  • no_root_squash:这是一个非常危险的选项,它允许远程 root 用户与主机的 root 用户享有相同的特权
  • subtree_check:指定在导出目录而不是整个文件系统的情况下,主机应验证主机文件系统上文件和目录的位置
  • no_subtree_check:指定主机不应检查通过主机文件系统访问的文件的位置
  • sync:这只是确保主机使上传到共享目录的所有更改保持同步
  • async:忽略同步检查以提高速度

完成所需设置后,保存并退出文件。然后,重新加载您的新 exports 配置。

sudo exportfs -ar

NFS 版本

默认情况,NFS 支持 ≥3 的协议版本。在某些场合,需要开启 NFS V2 版本的协议。

使用以下命令可以查看当前服务器开启的协议版本:

sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

说明支持v3、v4、v4.1、v4.2,不支持v2;

创建 NFS 配置文件:

sudo tee /etc/nfs.conf.d/uboot.conf <<EOF
[nfsd]
udp=y
tcp=y
vers2=y
vers3=y
vers4=y
EOF

修改之后重启服务:

sudo systemctl restart nfs-server.service

再次查看支持的协议版本:

sudo cat /proc/fs/nfsd/versions
+2 +3 +4 +4.1 +4.2

可以看到已经全部支持了;

网上流传的改法都不生效,最终在国外找到一篇帖子:
How can I make the nfs server support protocol version 2 in Ubuntu 17.10? - Ask Ubuntu

连接到共享

现在可以从在中配置的客户端计算机访问共享 exports。假设您的客户端基于 UbuntuDebian,则可以安装所需的软件包以进行连接:

sudo apt install nfs-common

这样,您就可以挂载NFS共享。因此,要进行尝试,请选择要安装的目录,然后 mountroot 特权运行命令以安装网络共享。

sudo mount -t nfs4 192.168.1.110:/media/nfs /media/share

如果安装成功,您将可以在安装共享文件的目录中访问共享文件。

要获得更永久的解决方案,可以将共享添加到客户的 /etc/fstab 文件中。整体语法看起来很像刚用来挂载共享的命令。从网络上共享的位置开始。然后,在其中安装共享。这里的文件系统类型是 nfs4。选项由您决定,但是对于不敏感的共享,使用默认设置并允许用户访问是很常见的。最终结果应类似于以下示例。

192.168.1.110:/media/nfs      /media/share nfs4 defaults,user,exec  0 0

如果不确定共享在客户端上是否始终可用,请添加noauto到选项列表中以防止系统尝试自动挂载它。

192.168.1.110:/media/nfs      /media/share nfs4 defaults,user,exec,noauto     0 0

尝试使用安装在客户端上/etc/fstab。

sudo mount -a

您的共享应该完全安装在您指定的位置。

结论

现在,您的 Debian 服务器已准备就绪,可以开始提供文件了,并且设置其余客户端计算机应该没有任何问题。请记住,NFS的安全性不高,因此,如果您选择共享任何更敏感的内容,则将需要其他方法来限制对文件的访问。