NAS 共享訪問協議—NFS、SMB、FTP、WebDAV 各有何優勢?

隨著智能化互聯時代的來臨,家中的智能設備越來越多:電視機、平板、遊戲主機、電腦、手機等遍及家中各個角落,同時設備之間共享數據的需求變的越來越強烈。比如同步、備份手機上的照片和視頻,在電視機上觀看電腦中下載的影片、手機拍攝的視頻,存儲高清電影、音樂、VLOG 素材等。這時候在家中搭建一臺 NAS(Network Attached Storage:網絡附屬存儲)存儲服務器是不錯的選擇,在備份保障數據安全的同時給家庭娛樂帶來更多方便。在企業中,NAS 也有著廣泛的應用,其部署簡單,擴展方便,在文件共享、容災備份領域發揮了重要作用。

NAS 存儲服務器有許多專業廠商,比如群暉( Synology)、鐵威馬(TerraMaster)等,動手能力強的用戶可以 DIY 硬件開源系統自己搭建。不過這些不是今天討論的話題,今天我們來討論一下 NAS 常見的共享訪問協議:NFS、SMB、FTP、WebDav,哪些速度快,哪些兼容性好,如何選擇。

NFS

NFS(網絡文件系統 Network File System)是一種分佈式文件系統協議,力求客戶端主機可以訪問服務器端文件,並且其過程與訪問本地存儲時一樣,它由 Sun 公司(已被 Oracle 收購)開發,於 1984 年發佈,最新版本 NFSv4.2 於 2016 年發佈。NFS 基於開放網絡運算遠程過程調用(ONC RPC)協議:一個開放、標準的 RFC 協議,任何人或組織都可以依據標準實現它。

NFS 通常使用在 Unix 操作系統上(比如 Solaris、AIX 及 HP-UX)和其他類 Unix 操作系統(例如 Linux 及 FreeBSD),同時在 macOS 和 Windows 系統也提供了 NFS 實現。不過在 Windows 系統上掛載 NFS 共享目錄時,由於 Windows 自帶的 NFS 客戶端長久以來不支持 UTF-8,會致中文文件和目錄顯示為亂碼。

NFS 的優點是內核直接支持,部署簡單、運行穩定,協議簡單、傳輸效率高。

NFS 的缺點是沒有加密授權等功能,僅依靠 IP 地址或主機名來決定用戶能否掛載共享目錄,對具體目錄和文件無法進行 ACL 權限控制(NFSv4 以前)。通常的做法是通過 Kerberos 對 NFS 進行認證及加密,不過部署配置比較麻煩。

SMB / Samba

Samba 是 SMB/CIFS(Server Message Block / Common Internet File System)網絡協議的重新實現,可以在局域網不同計算機之間進行文件、打印機等資源共享,和 NFS 功能類似。

SMB 最早是微軟為自己需求設計的專用協議,用來實現微軟主機之間的文件共享與打印共享,並不支持在 Linux 上運行。著名黑客、技術大牛 Andrew Tridgell 通過逆向工程,在 Linux 上實現的 SMB / CIFS 兼容協議,命名為 Samba,通過該程序實現了 Windows 和 Linux 之間的文件共享。

SMB 協議是 C/S 類型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”,Samba 不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。

SMB 的優點之一是兼容性好,在各平臺獲得了廣泛支持,包括 Windows、Linux、macOS 等各系統掛載訪問都很方便。另外 SMB 也是各種電視、電視盒子默認支持的協議,可以通過 SMB 遠程播放電影、音樂和圖片。

另外 SMB 提供端到端加密、安全性高,配置選項豐富,支持 ACL 並支持多種用戶認證模式。

SMB 的缺點是傳輸效率稍低,速度不太穩定,會有波動。

FTP

FTP(File Transfer ProtocoL)是TCP/IP應用層中的一個基礎協議,通常使用 22 端口,負責將文件從一臺計算機傳輸到另計算機,並保證文件傳輸的可靠性。FTP 協議的歷史源遠流長,第一版 FTP 協議於 1971 年發表為 RFC 114,此後經過多年的發展和完善。通常所說的 FTP 既可指 FTP 協議,也可指 FTP 應用程序。

由於 FTP 是明文傳輸安全性不高,後來又出現了 SFTP 和 FTPS 等加密傳輸。FTP 的特點之一是獨立於系統用戶組,只要通訊端口開啟就能方便訪問,所以特別適合外網共享,一些老牌共享軟件就常常通過 FTP 發佈下載鏈接。

FTP 主要用於客戶端和服務器之間的文件上傳和下載,並不適用於服務器上文件修改。因為 FTP 通常需要先獲取遠程文件的副本,然後對副本修改,最後再將修改後的文件副本上傳服務器。

雖然 FTP 的簡單方便、容易部署,但 FTP 的傳輸效率低、安全性不佳,目前並不推薦使用。

WebDAV

基於 Web 的分佈式編寫和版本控制(WebDAV)是超文本傳輸協議(HTTP)的擴展,有利於用戶間協同編輯和管理存儲在萬維網服務器文檔。WebDAV 由互聯網工程任務組的工作組在 RFC 4918 中定義。許多現代操作系統為 WebDAV 提供了內置支持。

WebDAV 除了創建、刪除文件等基本功能,它還具備文件創建者管理、文件編輯過程中禁止其他用戶內容覆蓋的加鎖功能,以及對文件內容修改的版本控制功能。

WebDAV 為實現遠程文件管理,向 HTTP/1.1 中追加了以下這些方法。

  • PROPFIND:獲取屬性
  • PROPPATCH:修改屬性
  • MKCOL:創建集合
  • COPY:複製資源及屬性
  • MOVE:移動資源
  • LOCK:資源加鎖
  • UNLOCK:資源解鎖

為配合擴展的方法,狀態碼也隨之擴展。

  • 102 Processing:可正常處理請求, 但目前是處理中狀態
  • 207 Multi-Status:存在多種狀態
  • 422 Unprocessible Entity:格式正確, 內容有誤
  • 423 Locked:資源已被加鎖
  • 424 Failed Dependency:處理與某請求關聯的請求失敗, 因此不再維持依賴關係
  • 507 Insufficient Storage:保存空間不足

由於 WebDAV 是基於 HTTP 的,所以具有 HTTP 的所有優點,包括容易穿越防火牆、使用 HTTPS 來傳輸數據,因此在很多方面可以替代 FTP。

WebDAV 可以通過 Nginx 或 Apache 等 Web 服務器部署。在客戶端 WebDAV 也獲得了許多軟件的支持,比如 Office 就可通過 WebDAV 編輯遠程文檔。


分享到:


相關文章: