NFS(Network File System,網絡文件系統)的共享配置項,用於定義服務器上的目錄如何被客户端訪問。我會逐部分拆解這個配置的含義,讓你清晰理解每個參數的作用。
一、配置項整體結構
/shared/data 192.168.42.0/24(rw,sync,no_root_squash)
這個配置分為三個核心部分:
- 共享目錄:
/shared/data(NFS 服務器上要共享的本地目錄) - 授權客户端範圍:
192.168.42.0/24(允許訪問該共享的客户端 IP 段) - 訪問權限參數:
(rw,sync,no_root_squash)(客户端訪問該共享的具體規則)
二、逐部分詳細解釋
1. 共享目錄:/shared/data
這是 NFS 服務器上的本地絕對路徑,表示服務器將這個目錄共享給授權的客户端。客户端掛載後,就可以像訪問本地目錄一樣操作這個路徑下的文件。
- 注意:該目錄必須提前在 NFS 服務器上創建,且 NFS 服務進程(如
nfs-server)對該目錄有讀寫權限。
2. 授權客户端範圍:192.168.42.0/24
這是允許訪問該共享的客户端地址限制,這裏表示:
192.168.42.0/24:整個 192.168.42 網段的所有主機(從 192.168.42.1 到 192.168.42.254)都可以掛載這個共享目錄。- 常見的客户端範圍寫法還有:
- 單個 IP:
192.168.42.10(僅允許這台主機訪問) - 主機名:
client01(需 DNS 解析或/etc/hosts配置) - 所有主機:
*(不推薦,安全性低,允許任何客户端訪問)
- 單個 IP:
3. 訪問權限參數:(rw,sync,no_root_squash)
這是括號內的參數是 NFS 共享的核心規則,多個參數用逗號分隔,以下是每個參數的含義:
| 參數 | 全稱 | 含義 | 作用/注意事項 |
|---|---|---|---|
rw |
Read/Write | 讀寫權限 | 客户端可以對共享目錄進行讀、寫、修改、刪除等操作(對應 ro 是隻讀權限) |
sync |
Synchronous | 同步寫入 | 客户端對共享目錄的寫操作,會立即同步到 NFS 服務器的磁盤後才返回成功,保證數據一致性(但性能略低) |
no_root_squash |
No Root Squash | 不壓縮 root 權限 | 客户端的 root 用户訪問共享目錄時,保留 root 權限(即客户端 root 可以操作共享目錄中的所有文件,風險較高) |
補充:常見的其他參數(拓展)
ro:只讀權限(客户端只能看,不能改),與rw互斥。async:異步寫入(客户端寫操作先寫入內存,再由服務器異步刷到磁盤,性能高但可能丟失數據),與sync互斥。root_squash(默認值):壓縮 root 權限,客户端的root用户會被映射為 NFS 服務器的nfsnobody普通用户(提高安全性)。all_squash:所有客户端用户都被映射為nfsnobody(適用於公共共享目錄)。anonuid/anongid:指定映射的普通用户 UID/GID(如anonuid=1000,anongid=1000)。
三、配置文件位置與生效方式
1. 配置文件位置
這行配置需要寫入 NFS 服務器的主配置文件:/etc/exports(該文件默認是空的,需手動添加)。
2. 生效命令
添加配置後,需要執行以下命令讓配置生效(無需重啓 NFS 服務):
# 重新加載 exports 配置(推薦)
exportfs -rv
# 或重啓 NFS 服務(CentOS/RHEL 7+)
systemctl restart nfs-server
3. 客户端掛載示例
授權的客户端(如 192.168.42.10)可以通過以下命令掛載該共享目錄:
# 創建本地掛載點
mkdir -p /mnt/nfs_data
# 掛載 NFS 共享(假設 NFS 服務器 IP 是 192.168.42.1)
mount -t nfs 192.168.42.1:/shared/data /mnt/nfs_data
掛載後,客户端操作 /mnt/nfs_data 就等同於操作 NFS 服務器的 /shared/data。
總結
這行 NFS 配置的核心含義可以概括為:
- NFS 服務器將本地目錄
/shared/data共享出去; - 僅允許 192.168.42.0/24 網段的客户端訪問;
- 客户端對該共享擁有讀寫權限,寫操作同步刷盤,且客户端的
root用户保留最高權限。
關鍵點回顧
rw是讀寫權限,sync保證數據安全但性能略低,no_root_squash是高權限配置(生產環境需謹慎使用);- 配置寫在
/etc/exports後,需執行exportfs -rv生效; - 客户端通過
mount -t nfs命令掛載共享目錄。