SMB vs NFS协议:深入比较

分享文件能更有效和便捷地在计算机和用户之间交流和交换数据。您可以通过不同的方式在网络上分享文件,例如,在服务器和计算机上使用SMB或NFS协议。NAS(网络附加存储)设备也用于通过SMB和NFS共享文件。

阅读NFS与SMB比较以了解在您的情况下应该使用什么以及选择哪种协议。

什么是SMB协议?

SMB(服务器消息块)是一种文件共享协议,提供对网络上共享数据的访问。它广泛用于Windows环境中,用于在局域网(LAN)上访问文件。由IBM于1983年开发,微软后来接手了这个协议,现在在Windows中提供内置的SMB支持。该协议不断发展,最新的SMB版本是v.3.1.1。

有时候术语CIFS与SMB混淆。CIFS是SMB的一种方言,即微软实现的SMB v1。阅读此处的比较以了解更多信息。

什么是NFS协议?

NFS(网络文件系统)是面向基于UNIX和Linux操作系统的文件共享协议。尽管名为NFS,但它不是一个文件系统。NFS协议最初由Sun Microsystems于1984年开发。

  • NFS版本1由Sun用于内部目的,从未发布。
  • NFS v2提供了基本的文件共享功能。
  • NFS v3支持可变大小处理和改进的错误报告,但不与NFS v2客户端兼容。
  • NFS v4 是由互联网工程任务组(IETF)开发的最新 NFS 版本。 它支持并行文件访问,并且在此版本中改进了安全性。 与 NFS v2 和 NFS v3 具有向后兼容性。 NFS v4 支持 Kerberos 认证。

NFS vs Samba – 关键差异

Samba 是一个免费软件实现,在 Linux 上安装 SMB 服务器的工具。 请注意,Samba 不包括 SMB 客户端。 您应该安装 cifs-utils 软件包以在 Linux 中获得 SMB 客户端。

作为网络协议,NFS 不应与软件包(Samba)进行比较。 但是,如果我们谈论的是 Windows 的 NFS 实现,则需要在 Windows 中安装相应的 NFS 服务器和/或 NFS 客户端角色(根据我们的任务)来使用 NFS。

NFS vs SMB – 特性概述

在这个部分中,我们比较了 SMB 和 NFS 在 7 个不同类别中的特性。

1. 网络连接/使用端口

  • SMB 和 NFS 共享协议都在 OSI 模型的应用层(第 7 层)上工作,并使用客户端-服务器架构。
  • SMB 需要建立会话(NFS 不需要)。
  • SMB 还可以使用表示层进行操作(第 6 层)。
  • 这两个协议都经过优化,适用于局域网(LAN)而不是互联网。 SMB 和 NFS 共享协议不适用于网络地址转换和路由,不能在互联网上使用。
  • NFS 使用端口 2049(TCP 和 UDP)和端口 111(TCP 和 UDP)。TCP 111 由端口映射器使用。TCP 1110 和 UDP 1110 用于集群和客户端状态。NFS 锁管理器使用 TCP 4045 和 UDP 4045。
  • SMB 使用 TCP 端口 445,不使用 NetBIOS 传输,而是直接使用 TCP/IP(这是 SMB 从 Windows 2000 开始的工作方式,包括目前使用的最新 SMB 版本)。SMB 使用 TCP 139、UDP 137 和 UDP 138 端口在 NetBIOS over TCP/IP 上运行。NetBIOS 是会话层协议(在 OSI 模型的第 5 层工作),用于 Windows 2000 之前的较旧的 SMB 实现。

2. 打印机共享

SMB 支持打印机共享,允许远程用户使用连接到特定计算机的打印机在网络上打印文件。NFS 协议不提供打印机共享功能 – Linux 具有其他机制用于网络打印。

3. 认证

A major difference between the NFS vs SMB protocols is how they authenticate.

  • SMB 使用 ACL(访问控制列表)概念与用户和组。SMB 为选定的用户和组提供对共享文件的访问(基于用户的身份验证)。您可以灵活配置权限。要为允许的主机配置访问权限,您可以使用防火墙。
  • NFS 传统上提供对允许的 IP 地址的访问。NFS 使用基于主机的身份验证系统 – 您可以启用允许访问 NFS 共享的主机的 IP 地址。在这种情况下,允许机器的每个用户都可以访问 NFS 共享。

所有权和 Linux 样式权限是 NFS 协议的特点。Linux 使用 UID(用户 ID)和 GID(组 ID),而 Windows 使用 SID(安全标识符)。

Kerberos 在 NFS v4 中增強了身份驗證系統(以提高為選定用戶提供訪問權限的功能)。

4. 訪問文件共享

SMB 必須使用文件鎖定,NFS 則建議使用。文件鎖定機制用於確保用戶打開的文件的一致性。有了鎖定,其他用戶在文件關閉之前無法對打開的文件寫入數據。

您可以通過以下方式在 Windows 中訪問 SMB 文件共享:

\\server\share\directory1\directory2

在 Linux 中:

smb://server/share/directory1/directory2

您可以通過 Export File System(EFS)路徑和此格式訪問 NFS 共享:

server:/directory1/directory2

5. 操作系統中的支持和集成

NFS 協議針對 Linux 進行了優化。SMB 針對 Windows 進行了優化,是 Windows 的本地文件共享協議,與 Windows 的整合性非常好。

但是,這兩種協議都可以在 Windows 和 Linux 上使用。您需要在 Linux 上安裝 SMB 客戶端(cifs-utils)或 SMB 服務器(Samba)以使用 SMB 協議。您需要在 Windows 上安裝 NFS 客戶端和/或服務器作為額外組件(角色)以使用 Windows NFS 配置。

NFS 在訪問文件時區分大小寫,而 SMB 不區分大小寫。這會影響您搜索文件的方式以及輸入文件名的方式。

NFS 協議是一個開放標準,任何人都可以實現它。

6. 安全性/加密

  • 基於請求-響應協議(RPC)的NFS通信在沒有防火牆的情況下存在風險。當NFS使用基於UDP協議的底層時,整體安全性水平會降低,因為UDP協議本身不安全。NFS支持使用TLS(基於SSL的傳輸層安全協議)進行加密。
  • SMB支持使用AES-256加密標準進行端到端加密,比NFS的Kerberos加密更強大。盡管SMB 1被認為是一種容易受到攻擊的協議,但最新的SMB 3版本是安全的,使得使用SMB的安全性優於NFS。

7. NFS vs SMB性能

NFS是在網絡上傳輸小型和中型文件(例如,大小約為1 MB或更小的文件)的更好選擇。在傳輸大文件(例如,500 MB文件)時,兩種協議的性能相似。

使用加密時,NFS比SMB更快。在SMB中,以4 MB的速率進行讀取交易更快。高流量負載可能會降低數據傳輸過程的速度。我們可以注意到,NFS v.4.2提高了最大帶寬。

SMB vs NFS:比較表

我們可以在我們的NFS vs SMB比較表中總結主要差異。

SMB NFS
環境 原生於Windows 主要在Linux系統中使用
身份驗證 使用者為基礎的便利身份驗證 主機為基礎的身份驗證為主要方法
使用的連接埠 TCP 445;TCP 139,UDP 137,138 TCP 2049,UDP 2049,TCP 111和UDP 111;TCP 1110,UDP 1110,TCP 4045,UDP 4045。
加密和安全性 是 – Kerberos,AES-256 是 – Kerberos和TLS
跨平台環境 支援 支援
檔案鎖定 強制性 諮詢性
印表機共享
存取資源 \\server\directory1\directory2 server:/directory1/directory2

結論

選擇NFS與SMB作為檔案共享協議取決於網絡中主要使用的計算機操作系統和其他因素。這兩種協議都是可靠的,可以在不同的操作系統和NAS設備中使用。無論您選擇哪種,使用網絡中的文件共享時備份數據都很重要。NAKIVO備份與複製是一款全面的數據保護解決方案,可用於保護SMB和NFS共享數據以及虛擬機器、物理服務器和Microsoft 365中的數據。

Source:
https://www.nakivo.com/blog/nfs-vs-smb/