NFS是基於UDP/IP協議的應用,其實現主要是采用遠程過程調用RPC機制,RPC提供了一組與機器、操作系統以及低層傳送協議無關的存取遠程文件的操作。RPC采用了XDR的支持。XDR是一種與機器無關的數據描述編碼的協議,他以獨立與任意機器體系結構的格式對網上傳送的數據進行編碼和解碼,支持在異構系統之間數據的傳送。
1、設置主機服務器
(1)安裝NFS服務器
root@ubuntu:~# apt-get update
root@ubuntu:~# apt install nfs-kernel-server
(2)創建導出目錄
與客戶端系統共享的目錄稱為導出目錄。
可以根據自己的選擇來確定導出目錄的路徑及命名。
root@ubuntu:~# mkdir -p /home/rabbit/NFS_SHARE
刪除文件夾的限制權限
root@ubuntu:~# chown nobody:nogroup /home/rabbit/NFS_SHARE
root@ubuntu:~# chmod 777 /home/rabbit/NFS_SHARE
現在,客戶端系統上的所有組的所有用戶都可以訪問導出目錄。
(3)通過NFS導出文件為客戶端分配服務器訪問權限
創建出導出目錄后,需要為客戶端提供訪問主機服務器的權限。
此權限通過位於系統的 /etc/exports 文件定義。
root@ubuntu:~# vim /etc/exports
- 單個客戶端 /home/rabbit/NFS_SHARE clientIP(rw,sync,no_subtree_check)
- 多個客戶端(按IP) /home/rabbit/NFS_SHARE clientIP_1(rw,sync,no_subtree_check)
-
/home/rabbit/NFS_SHARE clientIP_2(rw,sync,no_subtree_check)
- 多個客戶端(整個子網) /home/rabbit/NFS_SHARE 192.168.8.0/24(rw,sync,no_subtree_check)
-
rw: 讀寫操作
-
sync:
-
no_subtree_check: 阻止子樹檢查
(4)導出共享目錄
在主機系統中完成上述配置后,可以通過以下命令將共享目錄導出:
root@ubuntu:~# exportfs -a
為了使所有配置生效,重啟NFS服務器:
root@ubuntu:~# systemctl restart nfs-kernel-server
(5)為客戶端打開防火牆
ufw allow from [clientIP or clientSubnetIP] to any port nfs
使用以下命令,訪問客戶端計算機的整個子網:
root@ubuntu:~# ufw allow from 192.168.8.0/24 to any port nfs
root@ubuntu:~# ufw status
2、設置客戶端計算機
(1)安裝 NFS Common
更新系統的存儲庫索引和Internet的索引:
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get install nfs-common
(2)為NFS主機的共享文件夾創建安裝點
root@ubuntu:~# mkdir -p /home/rabbit/NFS_CLIENT
(3)在客戶機上掛載共享目錄
mount serverIP:/shareFolder_server /home/rabbit/mountFolder_client
root@ubuntu:~# mount 192.168.8.245:/home/rabbit/NFS_SHARE /home/rabbit/NFS_CLIENT
(4)測試連接
在NFS主機服務器的導出目錄中創建或保存文件。
現在,打開客戶端計算機上的 NFS_CLIENT 文件夾,可以在此文件夾中查看共享和訪問的同一文件。
3、總結
在 Ubuntu 系統上設置 NFS 服務器 - 客戶端 環境已完成。
學習了如何配置NFS服務器和客戶端,以便可以共享文件夾,然后在沒有任何防火牆或權限相關鼓掌的情況下順利訪問文件夾。
現在,可以使用 NFS 協議輕松地將內容從一個 Ubuntu 系統共享到另一個系統。