在Linux中,如何配置NFS共享?

黄嘉波發表於2024-05-26

在Linux中配置NFS(Network File System)共享涉及以下幾個主要步驟,這些步驟適用於大多數基於Debian或RedHat的Linux發行版,如Ubuntu、Debian、CentOS或RHEL。

1. 安裝NFS伺服器軟體

首先,確保NFS伺服器軟體包已安裝。使用相應的包管理器進行安裝:

1.1 對於基於Debian的系統(如Ubuntu):
sudo apt update
sudo apt install nfs-kernel-server
1.2 對於基於RPM的系統(如CentOS/RHEL):
sudo yum install nfs-utils
2. 建立共享目錄

選擇一個你希望透過NFS共享的目錄,並設定適當的許可權。例如,建立一個名為“/srv/nfs/shared”的共享目錄:

sudo mkdir -p /srv/nfs/shared
sudo chmod -R 755 /srv/nfs/shared
sudo chown -R nobody:nogroup /srv/nfs/shared
3. 配置NFS共享

編輯NFS的配置檔案/etc/exports,以指定要共享的目錄及其許可權。新增如下行:

/srv/nfs/shared *(rw,sync,no_subtree_check,no_root_squash)

這裡,

  • /srv/nfs/shared 是你要共享的目錄路徑。
  • * 表示允許任何網路上的主機訪問(出於安全考慮,你可能希望替換為特定的IP地址或子網)。
  • (rw,sync,no_subtree_check,no_root_squash) 是共享選項,分別表示讀寫許可權、同步寫入、不檢查子目錄以及遠端訪問的root使用者對映為本地的nobody使用者。
4. 過載NFS配置

使更改生效,需要過載NFS配置:

sudo exportfs -arv

或者重啟NFS服務:

4.1 對於Systemd系統(如Ubuntu 16.04+,CentOS 7+):
sudo systemctl restart nfs-server
4.2 對於SysVinit系統(較舊的版本):
sudo service nfs-kernel-server restart
5. 防火牆設定

確保你的防火牆允許NFS相關的埠(通常是TCP/UDP 111埠以及NFS的埠範圍,通常是2049):

sudo ufw allow proto tcp from any to any port 111
sudo ufw allow proto udp from any to any port 111
sudo ufw allow proto tcp from any to any port 2049
sudo ufw allow proto udp from any to any port 2049
sudo ufw reload
6. 在客戶端掛載NFS共享

在另一臺Linux機器上,可以使用以下命令掛載NFS共享:

sudo mount -t nfs server_ip:/srv/nfs/shared /mnt/nfs_shared

其中server_ip是NFS伺服器的IP地址,/mnt/nfs_shared是在客戶端用於掛載的目錄。

7. 注意事項
  • 確保客戶端和服務端的NFS版本相容。
  • 考慮使用更安全的配置選項,比如限制訪問的主機範圍、使用kerberos認證等。
  • 監視NFS服務的日誌檔案(通常位於/var/log目錄下),以便於故障排查。

相關文章