NFS (Network File System)#
NFS 是 Linux/Unix 環境中最常用的跨網路檔案共享協定
NFS 允許不同電腦透過網路共享目錄與檔案。對使用者而言,遠端伺服器提供的目錄在掛載後,運作方式與本地磁碟幾乎無異。它主要分為「伺服器端 (Server)」提供分享路徑,以及「用戶端 (Client)」掛載使用。其核心優勢在於高效能、低延遲,特別適合用於 Linux 集群間的資料共享。
Install#
# 伺服器端安裝
$ sudo apt install nfs-kernel-server
# 用戶端安裝
$ sudo apt install nfs-commonSetting 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: