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

来源:https://www.cnblogs.com/jmcui/archive/2020/06/24/13188882.html
-Advertisement-
Play Games

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 在2.2里程碑中我們增加了一些新的功能,正如標題所寫通過請求頭進行導出我們不同格式的文件.下麵我們來看一下如何使用.通過這種方式無論是對我們的數據多用途,還是說對我們的數據校驗都做到了輕鬆易配。 同時我們也將在本周發佈2.3版本,另外3.0版本我們將進行一次大的性能提升。3.0版本我們將對Ra ...
  • 我們利用IIS建立網站的時候,一般都是設定好網站名稱和物理地址,直接下一步建立完成了。正常訪問都沒問題,但如果我們這時候想要更改訪問的IP或者埠號,打開了很多設置項就是沒找到設置的地方。原來它一直在右邊的那個“連接”或者叫“綁定”那裡。 ...
  • 前言 RSA加密演算法是一種非對稱加密演算法,簡單來說,就是加密時使用一個鑰匙,解密時使用另一個鑰匙。 因為加密的鑰匙是公開的,所又稱公鑰,解密的鑰匙是不公開的,所以稱為私鑰。 密鑰 關於RSA加密有很多文章,但幾乎都只介紹了RSACryptoServiceProvider類的使用方法,如果只是走走看看 ...
  • 前言 上一篇【.Net Core微服務入門全紀錄(五)——Ocelot-API網關(下)】中已經完成了Ocelot + Consul的搭建,這一篇簡單說一下EventBus。 EventBus-事件匯流排 首先,什麼是事件匯流排呢? 貼一段引用: 事件匯流排是對觀察者(發佈-訂閱)模式的一種實現。它是一種 ...
  • 如果要支持Blazor WebAssembly的本地化,應該如何實現呢?下麵,我們就按照本地化問題操作中所涉及的所有主要問題以提問的方式進行說明。 1.本地化的核心原理是什麼? 答:就是顯式地在Program.Main方法中設置 CultureInfo.DefaultThreadCurrentCul ...
  • 大家好,我是良許。 在我們編寫代碼的時候,我們經常需要知道兩個文件之間,或者同一個文件不同版本之間有什麼差異性。在 Windows 下有個很強大的工具叫作 BeyondCompare ,那在 Linux 下需要用到什麼工具呢? 本文介紹 9 種 Linux 下常用的 9 種代碼比對工具,不僅有命令行 ...
  • 利用數組實現 1 #include<stdio.h> 2 #include<string.h> 3 4 void copy_string(char str1[],char str2[]) 5 { 6 int i = 0; 7 while(str2[i] != '\0') 8 { 9 str1[i] ...
  • 1. 概念 原子操作是指不被打斷的操作,即它是最小的執行單位。最簡單的原子操作就是一條條的彙編指令(不包括一些偽指令,偽指令會被彙編器解釋成多條彙編指令)。在 linux 中原子操作對應的數據結構為 atomic_t,定義如下: typedef struct { int counter; } ato ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...