nfs over ssh 和 sshfs 有什么区别?

oce*_*nBT 11 ssh nfs sshfs

我正在寻找通过互联网从我的家庭服务器 (linux) 挂载文件夹的解决方案。数据应该被加密,这样没有人可以读取我的文件内容或任何元数据。

我找到了多种解决方案:

  1. nfs4 通过 ssh 隧道,如此处所述
  2. sshfs

有人可以解释一下区别吗?哪种方式更好(更安全)?文件处理是否存在差异(例如,与服务器的连接丢失时)?

bas*_*ic6 6

顾名思义,NFS 是一个网络文件系统,即为访问文件管理器上的文件而设计的协议。由于它由多个服务组成并使用多个端口,因此它可能显得有点笨拙且难以设置(防火墙...)但 NFS 非常可靠,当您知道何时以及如何使用它时,它可能是最佳工具工作。

另一方面,SSHFS 是堆叠在 SSH 之上的(用户空间)文件系统层,它不是文件系统协议,而是远程 shell 协议。因此,它可能不如 NFS 可靠或缺乏功能。例如,每个合适的文件系统在处理文件时都会考虑元数据。至少在复制文件时始终保留“修改”日期,无论目标是 NFS 共享还是带有 NTFS 分区的 USB 驱动器。不幸的是,如果您将文件复制到 SSHFS 共享,则此信息可能会丢失。

当您只想在远程服务器上打开一些文件时,SSHFS 非常有用,仅此而已。假设您设置了无密码密钥,您需要做的就是在您最喜欢的文件管理器(如 Caja)的地址栏中输入“ssh://myserver”,然后您就可以使用了。如果您不在家但想查看家用计算机上的某些文档,这可能会很方便。但是不要以这种方式将重要文件或照片复制到您的家用计算机上,除非您不担心您将无法再按日期查找或排序这些文件。

如果您需要一个可靠的文件系统,如果您确实需要使用它并且不想丢失任何东西,请使用 NFS。请注意,NFS 旨在用于静态环境,而不是通过您可能会拔掉插头的临时连接。如果您挂载了 NFS 共享并且与服务器的连接消失,挂载将冻结(所有尝试访问该挂载的程序也是如此),直到服务器恢复以防止数据丢失。如果您在不可靠的网络(如 Internet)上使用 NFS,您可能应该使用“软”选项来告诉系统您希望在断开连接时丢失打开的文件,而不是让系统冻结。