Ubuntu 20.04 中配置NFS服務

語言: CN / TW / HK
NFS是Network File System的首字母縮寫。它是一種分散式協議,使客戶端可以訪問遠端伺服器上的共享檔案。在本文中,將在Ubuntu 20.04 LTS中安裝NFS服務。然後,演示如何從客戶端系統訪問伺服器上的檔案。
系統環境

NFS服務端:Ubuntu 20.04 LTS ,IP地址:192.168.43.174
NFS客戶端:Centos8 ,IP地址:192.168.43.131

一、安裝NFS服務端

執行下面命令安裝NFS服務端:

[email protected]:~$ sudo apt install nfs-kernel-server

使用下面命令檢查nfs-server是否已經啟動:

[email protected]:~$ sudo systemctl status nfs-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2021-04-21 10:20:29 CST; 1min 30s ago
   Main PID: 41727 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 2278)
     Memory: 0B
     CGroup: /system.slice/nfs-server.service

4月 21 10:20:28 ubuntu-20-04 systemd[1]: Starting NFS server and services...
4月 21 10:20:29 ubuntu-20-04 systemd[1]: Finished NFS server and services.

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務

二、建立NFS共享目錄

下一步將建立一個NFS共享目錄。我們將在/mnt目錄中建立,在這裡,我們的NFS共享目錄稱為ShareFolder:

[email protected]:~$ sudo mkdir -p /mnt/ShareFolder

我們希望所有客戶端都可以訪問該共享資料夾裡面的內容,因此分配最高許可權:

[email protected]:~$ sudo chown nobody:nogroup /mnt/ShareFolder
[email protected]:~$ sudo chmod -R 777 /mnt/ShareFolder/
三、編輯exports配置檔案

通過編輯/etc/exports配置檔案,來允許哪些客戶端可以訪問該共享。

下面命令開啟該配置檔案:

[email protected]:~$ sudo vim /etc/exports

下面的條目表示允許單個客戶端訪問、多個客戶端訪問、允許一個網段的客戶端訪問:

# 如果只允許一個客戶端訪問,可以只寫一個客戶端的IP地址
/mnt/ShareFolder 192.168.43.131(rw,sync,no_subtree_check)
# 如果只允許多個客戶端訪問,可以向如下一樣寫
/mnt/ShareFolder 192.168.43.131(rw,sync,no_subtree_check)
/mnt/ShareFolder 192.168.43.171(rw,sync,no_subtree_check)
/mnt/ShareFolder 192.168.43.137(rw,sync,no_subtree_check)
# 如果執行一個網段的客戶端訪問,可以這樣寫:
/mnt/ShareFolder 192.168.43.*(rw,sync,no_subtree_check)
或者
/mnt/ShareFolder 192.168.43.0/24(rw,sync,no_subtree_check)

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務
配置檔案中的許可權解釋:

  • rw 允許讀寫
  • sync 檔案同時寫入硬碟和記憶體
  • no_subtree_check 即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的許可權,這樣可以提高效率
四、export共享目錄

使用下面命令將共享資料夾啟用並生效:

[email protected]:~$ sudo exportfs -arv
exporting 192.168.43.*:/mnt/ShareFolder

使用showmount -e檢視是否可以看到共享目錄:

[email protected]:~$ showmount -e 192.168.43.174
Export list for 192.168.43.174:
/mnt/ShareFolder 192.168.43.*

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務

五、配置客戶端

安裝NFS客戶端:

# 在Ubuntu20.04中安裝客戶端:nfs-common
[email protected]:~$ sudo apt install nfs-common
# 在Centos8中安裝客戶端:nfs-utils
[[email protected] ~]# yum -y install nfs-utils

然後在/mnt目錄中建立一個ClientFolder目錄,將從該目錄中掛載伺服器上的NFS共享目錄。

[[email protected] ~]# mkdir -p /mnt/ClientFolder

最後,掛載NFS共享目錄,如下所示:

[[email protected] ~]# mount 192.168.43.174:/mnt/ShareFolder /mnt/ClientFolder/

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務

六、測試NFS共享目錄

為了測試配置是否正常,我們將在客戶端/mnt/ClientFolder資料夾中建立檔案測試一下,如下所示:

[[email protected] ClientFolder]# dd if=/dev/zero of=./test.dd bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.0540562 s, 194 MB/s
[[email protected] ClientFolder]# ll
total 10240
-rw-r--r-- 1 nobody nobody 10485760 Apr 21  2021 test.dd

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務
返回服務端,看一下/mnt/ShareFolder目錄中是否可以看到該檔案:

[email protected]:~$ ll /mnt/ShareFolder/
total 10248
drwxrwxrwx 2 nobody nogroup     4096 4月  21 10:50 ./
drwxr-xr-x 4 root   root        4096 4月  21 10:24 ../
-rw-r--r-- 1 nobody nogroup 10485760 4月  21 10:50 test.dd

Ubuntu 20.04 中配置NFS服務Ubuntu 20.04 中配置NFS服務

總結

NFS是Network File System的首字母縮寫。它是一種分散式協議,使客戶端可以訪問遠端伺服器上的共享檔案。

本文原創地址:https://www.linuxprobe.com/ubuntu-configure-nfs.html