什么是最好的协议来使用在另一台Linux机器上挂载远程linux驱动器/path

我知道我可以使用samba或者nfs,但是哪个更适合两台linux机器互相交stream,还是比这两台机器更好?

保险丝sshfs的

它包含在gvfs最新的Gnome中; 基本上gvfs感知的应用程序将使用gvfs,但文件系统挂载在〜/ .gvfs下,以便其他应用程序也可以访问这些文件。

特征:

  • 通过ssh + sftp进行身份validation和encryption
  • 用户装
  • Unix DAC语义
  • 在局域网上性能不错(与NFS相比并不算什么),并且它处理广域网连接的效果很好,即使连接有点狡猾
  • 服务器上不需要configuration,如果你有一个SSH帐户,你很好去

它不在RHEL中,但是RHEL5.4在内核中有熔丝模块,你只需要安装sshfs位。

我自2001年以来使用NFS,仍然非常喜欢它。 它的行为就像本地文件系统一样,如果其中一台服务器消失,就可靠。 有一些应用程序兼容性问题。 不要在NFS上运行大型数据库。 GNOME也曾经有过问题,但似乎大部分都是通过locking和其他locking方法来修复的。

这很大程度上取决于您是否控制和信任您正在使用的networking。 如果您完全信任networking,并且可以控制将哪些机器添加到networking中,那么NFS和CIFS几乎无法将它们分开。 最大的问题是,如果你的任何一个用户在一个NFS客户端的机器上拥有root权限,那么就很难阻止他们改变到另一个用户,而绕过你在NFS服务器上的访问控制。 您可以停止root,但设置root_squash,但只适用于root。 (使root_squash仍然是一个好主意)。 CIFS的不足之处在于,它阻止了权限问题,因为它将特定共享作为特定用户进行安装,只有该用户才能访问其文件。 显然,如果爱丽丝登上CIFS份额,并且bob拥有root权限,那么bob可以login并访问她的文件。

如果您只信任networking中的某些计算机,则可能需要查看NFS4为您提供的额外保护。 这需要Kerberos在可以装载分区之前对主机进行身份validation。

如果你想连接你不信任的公共networking,那么你需要一些有encryption的东西。 你可以看一下在某种VPN上运行CIFS或者NFS(这可能是最简单的解决scheme,或者你可以看一下使用ssh作为传输的ssffs)。