隨著智能化互聯時代的來臨,家中的智能設備越來越多:電視機、平板、游戲主機、電腦、手機等遍及家中各個角落,同時設備之間共用數據的需求變的越來越強烈。比如同步、備份手機上的照片和視頻,在電視機上觀看電腦中下載的影片、手機拍攝的視頻,存儲高清電影、音樂、VLOG 素材等。這時候在家中搭建一臺 NAS(Ne ...
隨著智能化互聯時代的來臨,家中的智能設備越來越多:電視機、平板、游戲主機、電腦、手機等遍及家中各個角落,同時設備之間共用數據的需求變的越來越強烈。比如同步、備份手機上的照片和視頻,在電視機上觀看電腦中下載的影片、手機拍攝的視頻,存儲高清電影、音樂、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 編輯遠程文檔。