nfs over ssh 和 sshfs 有什么区别?

nfs over ssh 和 sshfs 有什么区别?

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

我找到了多种解决方案:

  1. 通过 ssh 隧道的 nfs4正如这里解释的那样
  2. SSHFS

有人能解释一下区别吗?哪种方式更好(更安全)?文件处理方面有区别吗(例如,当失去与服务器的连接时)?

答案1

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

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

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

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

答案2

SSHFS 使用 SFTP 协议,它是 SSH 服务器的子系统。该技术还使用 FUSE 使文件系统可从用户空间程序访问。

NFS4 over SSH 通过 SSH 隧道使用本机 NFS 协议转发器。

对于用户来说,这听起来很相似,但不同之处在于为您处理 IO 的主协议(SFTP x NFS)。

相关内容