我知道我可以使用 samba 或 nfs,但是哪个更适合两台 Linux 机器互相通信,或者有没有比这两个更好的?
答案1
它包含在带有 gvfs 的最新 Gnome 中;基本上,支持 gvfs 的应用程序将使用 gvfs,但文件系统安装在 ~/.gvfs 下,以便其他应用程序也可以访问这些文件。
特征:
- 通过ssh+sftp进行认证和加密
- 用户安装
- Unix DAC 语义
- 在 LAN 上性能良好(与 NFS 相比影响不大),并且能够很好地处理 WAN 连接,即使连接有点不稳定
- 服务器上无需配置,只要你有 ssh 账户就可以了
它不在 RHEL 中,但是 RHEL 5.4 在内核中有 fuse 模块,您只需要安装 sshfs 位。
答案2
我从 2001 年开始使用 NFS,至今仍然非常喜欢它。它就像本地文件系统一样,即使其中一个服务器停止运行,它也很可靠。但是,存在一些应用程序兼容性问题。不要在 NFS 上运行大型数据库之类的东西。GNOME 也曾经出现过问题,但似乎大部分问题都已通过 lockd 和其他锁定方法得到解决。
答案3
这在很大程度上取决于您是否控制和信任所使用的网络。如果您完全信任网络并可以控制添加到网络的机器,那么 NFS 和 CIFS 就几乎没有什么区别了。最大的问题是,如果您的任何用户在作为 NFS 客户端的机器上拥有 root 权限,那么几乎没有什么可以阻止他们更改为另一个用户并绕过您在 NFS 服务器上的访问控制。您可以停止 root,但设置 root_squash,但这仅适用于 root。(启用 root_squash 仍然是一个好主意)。CIFS 的缺点是,虽然它可以防止权限问题,但由于它以特定用户的身份安装特定共享,因此只有该用户可以访问他们的文件。显然,如果 alice 安装 CIFS 共享,并且 bob 拥有 root 权限,bob 可以通过 su 访问 alice 并访问她的文件。
如果您只信任网络上的某些计算机,您可能需要研究 NFS4 为您提供的额外保护。这需要 Kerberos 在主机挂载分区之前对其进行身份验证。
如果您想通过您不信任的公共网络连接,那么您需要具有加密功能的东西。您可以考虑通过某种 VPN 运行 CIFS 或 NFS(这可能是最简单的解决方案),或者您可以考虑使用 ssffs 之类的东西,它使用 ssh 作为传输方式。