NFS (Network File System)#

NFS 是 Linux/Unix 環境中最常用的跨網路檔案共享協定

NFS 允許不同電腦透過網路共享目錄與檔案。對使用者而言,遠端伺服器提供的目錄在掛載後,運作方式與本地磁碟幾乎無異。它主要分為「伺服器端 (Server)」提供分享路徑,以及「用戶端 (Client)」掛載使用。其核心優勢在於高效能、低延遲,特別適合用於 Linux 集群間的資料共享。

Install#

# 伺服器端安裝
$ sudo apt install nfs-kernel-server

# 用戶端安裝
$ sudo apt install nfs-common

Setting in up#

Configuration File#

NFS 的主要設定檔位於 /etc/exports,格式如下:

/shared/path client_ip(options)

範例:#

/var/nfs_share 192.168.1.100(rw,sync,no_subtree_check)


Operate#

伺服器端:匯出共享目錄#

sudo exportfs -arv

用戶端:掛載共享目錄#

sudo mount -t nfs <server_ip>:<remote_path> <local_mount_point>

參數範例 (於 /etc/exports)說明
rw/data 192.168.1.0/24(rw,...)讀寫權限。允許用戶端對該目錄進行讀取與寫入。
ro/data *(ro,...)唯讀權限。用戶端僅能讀取資料,無法修改或刪除。
sync(rw,sync,...)同步寫入。資料同步寫入磁碟後才回傳確認,安全性高但效能略低。
no_root_squash(rw,no_root_squash)保留 Root 權限。遠端 root 存取時具備伺服器 root 權限(具安全風險)。
root_squash(rw,root_squash)壓縮 Root 權限。將遠端 root 映射為匿名使用者(nobody),預設行為。
no_subtree_check(rw,no_subtree_check)禁用子樹檢查。不檢查父目錄權限,可增進大型目錄結構的效能。
指令功能詳細解釋
showmount -e <ip>查看共享清單在用戶端查詢特定伺服器開放了哪些目錄供掛載。
exportfs -v查看目前匯出在伺服器端列出當前所有已生效的共享設定。
exportfs -au停止匯出暫時停止所有目錄的網路共享,不需重啟服務。
nfsstat狀態統計顯示 NFS 運作的統計資訊,用於效能排錯與監控。

Reference#

Official docs: