隨著智能化互聯時代的來臨,家中的智能設備越來越多:電視機、平板、游戲主機、電腦、手機等遍及家中各個角落,同時設備之間共享資料的需求變的越來越強烈,比如同步、備份手機上的照片和視頻,在電視機上觀看電腦中下載的影片、手機拍攝的視頻,存盤高清電影、音樂、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 編輯遠程檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/47046.html
標籤:Linux
下一篇:原子性操作原理分析
