ubuntu18.04.4 配置 NFS 伺服器

来源:https://www.cnblogs.com/Yee-Q/archive/2020/05/31/12997353.html
-Advertisement-
Play Games

NFS 概述 NFS(Network File System)是一種能使伺服器上的信息被其他電腦掛載而達到資源共用的網路文件系統。一個客戶機可以把遠程文件系統掛載到本地文件系統的某個目錄下,作為本地系統的一部分來使用。NFS 有屬於自己的協議和埠號,但在傳送資料或其他相關信息時,NFS 伺服器需 ...



NFS 概述

NFS(Network File System)是一種能使伺服器上的信息被其他電腦掛載而達到資源共用的網路文件系統。一個客戶機可以把遠程文件系統掛載到本地文件系統的某個目錄下,作為本地系統的一部分來使用。NFS 有屬於自己的協議和埠號,但在傳送資料或其他相關信息時,NFS 伺服器需要使用 RPC 協議來協助運行。


RPC

因為 NFS 支持的功能很多,每當啟動一個功能就要啟用一些埠來傳輸數據,因此 NFS 的功能所對應的埠是不固定的,通常是隨機取用一些未被使用的小於 1024 的埠作為傳輸之用,而客戶端必須知道伺服器相關埠才能連接,此時需要 RPC 服務。

RPC(遠程過程調用協議)的功能是制定每個 NFS 功能對應的埠號,並且回送給客戶端,讓客戶端連接到正確的埠上。NFS 伺服器啟動時會隨機啟用數個埠號,並主動向 RPC 註冊,RPC 固定使用 111 號埠監聽客戶機的請求並回應正確的埠號。因此,啟動 NFS 之前,要先啟動 RPC。


NFS 文件系統配置

Ubuntu 系統所使用的軟體包為 nfs-kernel-server,當然還需要其他包支持,比如 rpcbind 作埠映射工作,這些支持包在安裝 NFS 時會自動安裝。

sudo apt install nfs-kernel-server

NFS 的服務是 nfs-server.service,可以使用服務管理的辦法進行管理

sudo systemctl enable/disable nfs-server.service	# 啟用/禁用
systemctl status nfs-server.service	# 檢查狀態
systemctl start/stop/restart/reload nfs-server.service	# 啟動/停止/重啟/重載

NFS 配置文件為 /etc/exports,每一行描述一個共用目錄,並且說明該目錄如何被共用,每一有效行的格式為:共用目錄 訪問者(選項) 訪問者(選項)

訪問者為主機或 IP 地址,括弧內的選項只對括弧前的訪問者有效,訪問者格式可以為:

  • 指定 IP 地址
  • 指定網段中所有主機,如 192.168.137.0/24
  • 單台主機名,如 pc001
  • 含有通配符的主機名,如 proj*.local.domain,表示 local.domain 域的所有以 proj 開業的主機

常用選項及說明如表所示

選項 說明
ro/rw 只讀/讀寫
sync/async 同步/非同步寫入
secure 只允許 NFS 通過 1024 以前埠連接(預設)
insecure 允許 NFS 通過 1024 及以上的埠連接,此選項關閉 secure
secure_locks 使用安全的文件鎖
insecure_looks/no_auth_nlm 允許使用不安全的文件鎖,此選項關閉 secure_locks
wdelay 延遲寫,如果多個用戶要寫入 NFS 目錄,則歸組寫入(預設)
no_wdelay 同步寫入。當使用 async 時,無須此設置
hide 不共用子目錄或隱藏子目錄
no_hide 共用 NFS 目錄的子目錄
subtree_check 共用目錄樹,如果共用目錄是一個子目錄,將強制檢查父目錄許可權(預設)
no_subtree_check 與 subtree_check 相對應,不檢查父目錄許可權
root_squash 客戶機用 root 用戶訪問共用文件夾時,將 root 映射為匿名用戶
no_root_squash 客戶機用 root 用戶訪問共用文件夾時,不做映射
all_squash 客戶機所有用戶映射為匿名用戶
anonuid=xxx,anongid=xxx 使用 all_squash 選項時,指定 NFS 伺服器 /etc/passwd 文件中用戶的 UID 和 GID
no_all_squash 保留共用文件的 UID 和 GID(預設)

在客戶端使用 NFS,需要安裝支持包

sudo apt-get install nfs-common

使用 mount 命令來將伺服器上的共用目錄安裝到本地

mount -t nfs [options] server:dir mount_point

其意義是將 server 伺服器上的 dir 目錄安裝在本地的 mount_point 安裝點上,文件系統類型為 nfs


NFS 系統的使用

首先建立一個共用目錄,然後向其中添加一些用於共用的文件

sudo mkdir -p /var/nfs_share
sudo /etc/init.d /var/nfs_share

編輯 /etc/exports 文件,加入如下行

/var/nfs_share *(rw,no_root_squash,insecure)

重載 NFS 服務

sudo systemctl reload nfs-server.service

在任意一臺可以 ping 通伺服器的主機上安裝共用目錄,這裡以 Ubuntu 客戶端為例

sudo mkdir -p /mnt/nfs
sudo mount -t nfs 192.168.1.105:/var/nfs_share /mnt/nfs

將 192.168.1.105 上的 /var/nfs_share 目錄掛載到本機的 /mnt/nfs 目錄下。到此,在客戶端可以通過命令查看其中內容了

ls -l /mnt/nfs

NFS 文件系統的拆卸與普通文件的拆卸方法相同

sudo umount /mnt/nfs


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

-Advertisement-
Play Games
更多相關文章
  • 上一篇(https://www.cnblogs.com/meowv/p/12971041.html)使用HtmlAgilityPack抓取壁紙數據成功將圖片存入資料庫,本篇繼續來完成一個全網各大平臺的熱點新聞數據的抓取。 同樣的,可以先預覽一下我個人博客中的成品:https://meowv.com/ ...
  • 《ASP.NET MVC 企業級實戰》 [作者] (中) 鄒瓊俊[出版] 清華大學出版社[版次] 2017年04月 第1版[印次] 2019年08月 第6次 印刷[定價] 89.00元 【第01章】 (P021) 只有在 Lambda 有一個輸入參數時,括弧才是可選的,否則括弧是必需的。 使用空括弧 ...
  • CentOS7修改主機名 查看當前的主機名 第一種方法 [root@localhost ~]# hostname localhost.localdomain 第二種方法 [root@localhost ~]# hostnamectl Static hostname: localhost.locald ...
  • 如何通過Xshell遠程連接Linux伺服器,以及如何配置xshell各項參數。 ...
  • 作為公司的公共產品,經常有這樣的需求:就是新建一個本地服務,產品線作為客戶端通過 tcp 接入本地服務,來獲取想要的業務能力。 與印象中動輒處理成千上萬連接的 tcp 網路服務不同,這個本地服務是跑在客戶機器上的,Win32 上作為開機自啟動的 windows 服務運行; Linux 上作為 dae ...
  • dockerfile的格式,dockerfile是一個純文本文件,我們可以理解為構建鏡像的源碼;不同於其他編程語言,dockerfile里沒有if else 沒有迴圈,它裡面僅僅有註釋和構建鏡像的指令;對於dockerfile註釋就是以井號開頭的行為註釋,這個和shell和其他配置文件的語法一樣;... ...
  • 眾所周知,Azure平臺支持Linux。因為我對Linux完全不熟悉,所以最近開始自學Linux。我起初借了一本名聲很響亮的書《鳥哥的Linux私房菜》。讀了幾章後,我覺得這本書寫得的確非常詳細,但是一頁紙上洋洋灑灑寫滿了字,讓人很難有讀下去的欲望,感覺就像在啃一本字典。這本書倒是很適合閑暇時刻翻上 ...
  • 一 Rancher概述1.1 什麼是RancherRancher 是為使用容器的公司打造的容器管理平臺。Rancher 簡化了使用 Kubernetes 的流程,方便開發者可以隨處運行 Kubernetes(Run Kubernetes Everywhere),以便於滿足 IT 需求規範,賦能 De ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...