转载自: https://blog.csdn.net/allway2/article/details/107546648
安装NFS软件包
NFS
在 Debian
上安装非常简单。它已连接到内核,并且是一个通用软件包。您可以从主存储库安装所需的一切。
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
。假设您的客户端基于 Ubuntu
或 Debian
,则可以安装所需的软件包以进行连接:
sudo apt install nfs-common
这样,您就可以挂载NFS共享。因此,要进行尝试,请选择要安装的目录,然后 mount
以 root
特权运行命令以安装网络共享。
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的安全性不高,因此,如果您选择共享任何更敏感的内容,则将需要其他方法来限制对文件的访问。