Linxu實驗五——NFS服務器

一.NFS服務器介紹

NFS服務器(Network File System)是一種基于網絡的分布式文件系統協議,允許不同操作系統的主機通過網絡共享文件和目錄3。其核心作用在于實現跨平臺的資源透明訪問,例如在Linux和Unix系統之間共享靜態數據(如視頻、圖片等

核心作用

  1. 跨平臺文件共享:使不同操作系統的客戶端能像訪問本地磁盤一樣操作遠程文件。
  2. 簡化存儲管理:集中存儲數據,客戶端通過掛載點訪問,降低多節點數據冗余2
  3. 權限控制:通過RPC注冊的守護進程(daemons)管理客戶端登錄和操作權限1
  4. 擴展性支持:可結合quota等機制實現磁盤配額管理

工作原理

  1. C/S架構
    NFS采用客戶端-服務器模型,服務端配置共享目錄(如/home/public),客戶端通過掛載命令將其映射到本地文件系統(如/mnt/nfs

  2. RPC依賴

    • NFS啟動時需向RPC(Remote Procedure Call)注冊服務信息,包括端口號和功能。
    • 客戶端通過RPC查詢可用服務,再與NFS服務端建立通信5
  3. 工作流程

    客戶端請求 → RPC查詢NFS服務 → 獲取端口信息 → 建立NFS連接 → 讀寫遠程文件

  4. 權限與虛擬文件系統

    • 服務端通過/etc/exports定義共享規則(如?192.168.88.0/24(rw,sync)5
    • 客戶端掛載后,通過VFS(虛擬文件系統)層將遠程操作轉換為網絡請求3

技術特點

特性說明
RPC依賴必須運行rpcbind服務實現動態端口分配15
權限控制通過nfsdmountd守護進程分別管理訪問權限和文件操作1
配置靈活性支持IP白名單、讀寫模式(ro/rw)、數據同步策略(sync/async)5
版本兼容性主流版本包括NFSv3(廣泛兼容)和NFSv4(增強安全性)4

二.NFS服務器搭建

1.安裝NFS服務器軟件

在Ubuntu上安裝NFS服務器軟件,可以通過以下命令完成

sudo apt update
sudo apt install nfs-kernel-server  //這條命令會安裝NFS服務器的核心組件。

2. 創建共享目錄

選擇一個目錄作為共享目錄,或者創建一個新的目錄。例如,創建一個名為sudo mkdir -p /home/www/nfs/shared的目錄:

sudo mkdir -p /home/www/nfs/shared

然后,設置該目錄的權限。根據實際需求,可以將該目錄的所有者設置為nobody用戶組,并設置適當的讀寫權限:

sudo chown nobody:nogroup /home/www/nfs/shared
sudo chmod 777 /home/www/nfs/shared

3.配置NFS共享

編輯NFS配置文件/etc/exports,以定義哪些目錄需要共享以及哪些主機能夠訪問這些目錄。使用以下命令打開/etc/exports文件:

sudo vim /etc/exports

在文件末尾添加如下行,表示將/home/www/nfs/shared目錄共享給網絡中的任何主機(假設你的NFS客戶端IP范圍是192.168.168.128/24,你可以根據需要調整,我這里直接用主機的):

/home/www/nfs/shared 192.168.168.128/24(rw,sync,no_subtree_check)
  • /home/www/nfs/shared:NFS共享的目錄。
  • 192.168.168.128/24:允許訪問的客戶端IP地址范圍,也可以使用具體的IP地址或域名。
  • rw:讀寫權限。
  • sync:同步寫入數據,保證數據的安全性。確保所有寫入操作在返回前完成
  • no_subtree_check:不檢查父目錄的權限,提高效率。?

4.導出NFS共享

使配置生效,運行以下命令:

sudo exportfs -a

5.啟動NFS服務

啟動并啟用NFS服務,使其在啟動時自動運行:

sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server

6.配置防火墻(可選)

如果系統使用了防火墻,需要確保允許NFS服務的相關端口。例如,可以使用ufw命令來允許特定IP地址范圍的訪問:

sudo ufw allow from 192.168.168.128/24 to any port nfs

或者,如果希望允許所有網絡上的主機訪問NFS服務:

sudo ufw allow from any to any port nfs

7. 檢查NFS共享狀態

確認NFS服務器正在運行,并檢查共享目錄:

sudo exportfs -v

(未完待續)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82558.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82558.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82558.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

『 測試 』測試基礎

文章目錄 1. 調試與測試的區別2. 開發過程中的需求3. 開發模型3.1 軟件的生命周期3.2 瀑布模型3.2.1 瀑布模型的特點/缺點 3.3 螺旋模型3.3.1 螺旋模型的特點/缺點 3.4 增量模型與迭代模型3.5 敏捷模型3.5.1 Scrum模型3.5.2 敏捷模型中的測試 4 測試模型4.1 V模型4.2 W模型(雙V…

紅外遙控鍵

紅外 本章節旨在讓用戶自定義紅外遙控功能,需要有板載紅外接收的板卡。 12.1. 獲取紅外遙控鍵值 由于不同遙控器廠家定義的按鍵鍵值不一樣,所以配置不通用,需要獲取實際按鍵對應的鍵值。 1 2 3 4 5 6 #設置輸出等級 echo 7 4 1 7> /pr…

同一個虛擬環境中conda和pip安裝的文件存儲位置解析

文章目錄 存儲位置的基本區別conda安裝的包pip安裝的包 看似相同實則不同的機制實際路徑示例這種差異帶來的問題如何檢查包安裝來源最佳實踐建議 總結 存儲位置的基本區別 conda安裝的包 存儲在Anaconda(或Miniconda)目錄下的pkgs和envs子目錄中: ~/anaconda3/en…

機器學習極簡入門:從基礎概念到行業應用

有監督學習(supervised learning) 讓模型學習的數據包含正確答案(標簽)的方法,最終模型可以對無標簽的數據進行正確處理和預測,可以分為分類與回歸兩大類 分類問題主要是為了“盡可能分開整個數據而畫線”…

split和join的區別?

split和join是Python中用于處理字符串的兩種方法,它們的主要區別在于功能和使用場景。? split()方法 ?split()方法用于將字符串按照指定的分隔符分割成多個子串,并返回這些子串組成的列表?。如果不指定分隔符,則默認分割所有的空白字符&am…

MySQL從入門到精通(二):Windows和Mac版本MySQL安裝教程

目錄 MySQL安裝流程 (一)、進入MySQL官網 (二)、點擊下載(Download) (三)、Windows和Mac版本下載 下載Windows版本 下載Mac版本 (四)、驗證并啟動MySQL …

LeetCode 解題思路 45(分割等和子集、最長有效括號)

解題思路: dp 數組的含義: 在數組中是否存在一個子集,其和為 i。遞推公式: dp[i] | dp[i - num]。dp 數組初始化: dp[0] true。遍歷順序: 從大到小去遍歷,從 i target 開始,直到 …

電影感戶外啞光人像自拍攝影Lr調色預設,手機濾鏡PS+Lightroom預設下載!

調色詳情 電影感戶外啞光人像自拍攝影 Lr 調色,是借助 Lightroom 軟件,針對戶外環境下拍攝的人像自拍進行后期處理。旨在模擬電影畫面的氛圍與質感,通過調色賦予照片獨特的藝術氣息。強調打造啞光效果,使畫面色彩不過于濃烈刺眼&a…

使用 NV?Ingest、Unstructured 和 Elasticsearch 處理非結構化數據

作者:來自 Elastic Ajay Krishnan Gopalan 了解如何使用 NV-Ingest、Unstructured Platform 和 Elasticsearch 為 RAG 應用構建可擴展的非結構化文檔數據管道。 Elasticsearch 原生集成了行業領先的生成式 AI 工具和提供商。查看我們的網絡研討會,了解如…

Android 13 使能user版本進recovery

在 debug 版本上,可以在關機狀態下,同時按 電源鍵 和 音量加鍵 進 recovery 。 user 版本上不行。 參考 使用 build 變體 debug 版本和 user 版本的差別之一就是 ro.debuggable 屬性不同。 順著這個思路追蹤,找到 bootable/recovery/reco…

每日算法刷題計劃

這是我每天堅持刷算法題的倉庫,每天刷1-3道,時間30-40min,加油! 目前考慮leetcode洛谷形式,c和python3語言,leetcode主要學核心思想,洛谷學會輸入輸出格式 每日打卡:markdowncsdn打卡 刷題策略: 按分類刷…

紅黑樹():

1. 紅黑樹: 紅黑樹從根節點開始的最長的路徑不會超過最短路徑的2倍。 紅黑樹的話,他的結點的分布沒有我們的AVL樹的結點的分布均衡,但是效率也不錯,AVL樹的結點分布的那么均勻,其實也是在進行了旋轉,付出了…

【AI智能推薦系統】第六篇:隱私保護與聯邦學習在推薦系統中的平衡之道

第六篇:隱私保護與聯邦學習在推薦系統中的平衡之道 提示語:?? “數據不出域,推薦更精準!深度揭秘騰訊、螞蟻集團如何用聯邦學習打造合規推薦系統,隱私計算技術全景解析與工業級實現方案!” 目錄 隱私保護的行業挑戰隱私計算技術體系 2.1 聯邦學習基礎架構2.2 差分隱私…

【Qt/C++】深入理解 Lambda 表達式與 `mutable` 關鍵字的使用

【Qt/C】深入理解 Lambda 表達式與 mutable 關鍵字的使用 在 Qt 開發中,我們常常會用到 lambda 表達式來編寫簡潔的槽函數。今天通過一個實際代碼示例,詳細講解 lambda 的語法、變量捕獲方式,特別是 mutable 的作用。 示例代碼 QPushButto…

記錄 ubuntu 安裝中文語言出現 software database is broken

搜索出來的結果是 sudo apt-get install language-pack-zh-han* 然而,無效,最后手動安裝如下 apt install language-pack-zh-hans apt install language-pack-zh-hans-base apt install language-pack-gnome-zh-hans apt install fonts-arphic-uming apt install libreoffic…

[虛幻官方教程學習筆記]深入理解實時渲染(An In-Depth Look at Real-Time Rendering)

原英文教程地址深入理解實時渲染(An In-Depth Look at Real-Time Rendering) 文章目錄 1.Intro to An In-Depth Look at Real-Time RenderingCPU VS GPUDeferred VS Forward 2. Before Rendering and OcclusionCulling計算的步驟使用console command:fre…

Linux進程間信號

目錄 信號入門 生活角度中的信號 技術應用角度的信號 信號的發送與記錄 信號處理常見方式概述 產生信號 通過終端按鍵產生 通過系統函數向進程發信號 由軟件條件產生信號 由硬件異常產生信號 阻塞信號 信號其他相關常見概念 在內核中的表示 sigset_t 信號集操作…

Git簡介和發展

Git 簡介 Git是一個開源的分布式版本控制系統,跨平臺,支持Windows、Linux、MacOS。主要是用于項目的版本管理,是由林納斯托瓦茲(Linux Torvalds)在2005年為Linux內核開發而創建。 起因 在2002年至2005年間,Linux內核開發團隊使…

Perspective,數據可視化的超級引擎!

Perspective 是一個強大的交互式數據分析和可視化庫,它允許你創建高度可配置的報告、儀表板、筆記本和應用程序。給用戶提供了一個新的視角來看待數據。 Stars 數9125Forks 數1217 主要特點 高效流式查詢引擎:Perspective使用C編寫,并編譯為…

MySQL COUNT(*) 查詢優化詳解!

目錄 前言1. COUNT(*) 為什么慢?—— InnoDB 的“計數煩惱” 🤔2. MySQL 執行 COUNT(*) 的方式 (InnoDB)3. COUNT(*) 優化策略:快!準!狠!策略一:利用索引優化帶 WHERE 子句的 COUNT(*) (最常見且…