NFS或網(wǎng)絡(luò)文件系統(tǒng)是一種分布式文件系統(tǒng)協(xié)議,最初是由Sun Microsystems構(gòu)建的。通過NFS,您可以允許系統(tǒng)通過網(wǎng)絡(luò)與其他人共享目錄和文件。在NFS文件共享中,用戶甚至程序可以訪問遠(yuǎn)程系統(tǒng)上的信息,就像它們駐留在本地計算機上一樣。
NFS在客戶端 – 服務(wù)器環(huán)境中運行,其中服務(wù)器負(fù)責(zé)管理客戶端的身份驗證,授權(quán)和管理,以及特定文件系統(tǒng)內(nèi)共享的所有數(shù)據(jù)。授權(quán)后,任意數(shù)量的客戶端都可以訪問共享數(shù)據(jù),就好像它們存在于其內(nèi)部存儲中一樣。在Ubuntu系統(tǒng)上設(shè)置NFS服務(wù)器非常簡單。您需要做的就是在服務(wù)器和客戶端計算機上進(jìn)行一些必要的安裝和配置,這樣你就可以了。
在本文中,我們將逐步說明如何設(shè)置NFS服務(wù)器和客戶端,使您能夠?qū)⑽募囊粋€Ubuntu系統(tǒng)共享到另一個Ubuntu系統(tǒng)。
我們在Ubuntu 18.04 LTS系統(tǒng)上運行了本文中描述的命令和過程。由于我們使用Ubuntu命令行,終端,來執(zhí)行所有操作,您可以通過Ctrl + Alt + T快捷方式打開它。
設(shè)置主機服務(wù)器
為了設(shè)置主機系統(tǒng)以共享目錄,我們需要在其上安裝NFS內(nèi)核服務(wù)器,然后創(chuàng)建并導(dǎo)出我們希望客戶端系統(tǒng)訪問的目錄。請按照以下步驟順利設(shè)置主機端:
第1步:安裝NFS服務(wù)器
在安裝NFS內(nèi)核服務(wù)器之前,我們需要通過以下apt命令以sudo的形式將系統(tǒng)的存儲庫索引更新為Internet的存儲庫索引:
linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get update
上面的命令允許我們通過Ubuntu存儲庫安裝最新的軟件版本。
現(xiàn)在,運行以下命令以在系統(tǒng)上安裝NFS內(nèi)核服務(wù)器:
linuxidc@linuxidc:~/linuxidc.com$ sudo apt install nfs-kernel-server
系統(tǒng)將提示您使用Y/n選項確認(rèn)是否要繼續(xù)安裝。 請輸入Y然后按Enter繼續(xù),之后軟件將成功安裝在您的系統(tǒng)上。
第2步:創(chuàng)建導(dǎo)出目錄
我們要與客戶端系統(tǒng)共享的目錄稱為導(dǎo)出目錄。 你可以根據(jù)自己的選擇來命名; 在這里,我們在系統(tǒng)的mnt(mount)目錄中創(chuàng)建一個名為“linuxidc”的導(dǎo)出目錄。
使用以下命令,根據(jù)需要通過以下命令指定安裝文件夾名稱:
linuxidc@linuxidc:~/linuxidc.com$ sudo mkdir -p /mnt/linuxidc
因為我們希望所有客戶端都能訪問該目錄,我們將通過以下命令刪除文件夾的限制權(quán)限:
linuxidc@linuxidc:~/linuxidc.com$ sudo chown nobody:nogroup /mnt/linuxidc
linuxidc@linuxidc:~/linuxidc.com$ sudo chmod 777 /mnt/linuxidc
現(xiàn)在,客戶端系統(tǒng)上所有組的所有用戶都可以訪問我們的“共享文件夾”。
您可以根據(jù)需要在導(dǎo)出文件夾中創(chuàng)建任意數(shù)量的子文件夾,供客戶端訪問。
步驟3:通過NFS導(dǎo)出文件為客戶端分配服務(wù)器訪問權(quán)限
創(chuàng)建導(dǎo)出文件夾后,我們需要為客戶端提供訪問主機服務(wù)器計算機的權(quán)限。 此權(quán)限是通過位于系統(tǒng)的/etc文件夾中的exports文件定義的。 請使用以下命令通過Nano編輯器打開此文件:
linuxidc@linuxidc:~/linuxidc.com$ sudo nano /etc/exports
編輯此文件需要root訪問權(quán)限; 因此,您需要在命令中使用sudo。 您也可以在任何您喜歡的個人文本編輯器中打開該文件。
打開文件后,您可以允許訪問:
- 單個客戶端通過在文件中添加以下行:
/mnt/linuxidc clientIP(rw,sync,no_subtree_check)
- 通過在文件中添加以下行來多個客戶端:
/mnt/linuxidc client1IP(rw,sync,no_subtree_check)
/mnt/linuxidc client2IP(rw,sync,no_subtree_check)
- 多個客戶端,通過指定客戶端所屬的整個子網(wǎng):
/mnt/linuxidc 192.168.182.0/24(rw,sync,no_subtree_check)
/mnt/linuxidc 192.168.182.0/24(rw,sync,no_subtree_check)
在此示例中,我們指定了要為我們的主目錄文件夾(linuxidc)授予訪問權(quán)限的所有客戶端的整個子網(wǎng):
將所需的行添加到導(dǎo)出文件中,然后按Ctrl + X,輸入Y,然后按Enter鍵保存。
此文件中定義的權(quán)限“rw,sync,no_subtree_check”表示客戶端可以執(zhí)行以下操作:
- rw:讀寫操作
- sync: 在應(yīng)用之前將任何更改寫入光盤
- no_subtree_check:阻止子樹檢查
第4步:導(dǎo)出共享目錄
在主機系統(tǒng)中完成上述所有配置后,現(xiàn)在可以通過以下命令將共享目錄導(dǎo)出:
linuxidc@linuxidc:~/linuxidc.com$ sudo exportfs -a
最后,為了使所有配置生效,請按如下方式重新啟動NFS服務(wù)器:
linuxidc@linuxidc:~/linuxidc.com$ sudo systemctl restart nfs-kernel-server
第5步:為客戶端打開防火墻
重要的一步是驗證服務(wù)器的防火墻是否對客戶端開放,以便他們可以訪問共享內(nèi)容。 以下命令將配置防火墻以通過NFS授予客戶端訪問權(quán)限:
sudo ufw allow from [clientIP or clientSubnetIP] to any port nfs
在我們的示例中,我們通過以下命令訪問客戶端計算機的整個子網(wǎng):
linuxidc@linuxidc:~/linuxidc.com$ sudo ufw allow from 192.168.182.0/24 to any port nfs
現(xiàn)在,當(dāng)您通過以下命令檢查Ubuntu防火墻的狀態(tài)時,您將能夠?qū)⒉僮鳡顟B(tài)視為客戶端IP的“允許”。
linuxidc@linuxidc:~/linuxidc.com$ sudo ufw status
您的主機服務(wù)器現(xiàn)在已準(zhǔn)備好通過NFS服務(wù)器將共享文件夾導(dǎo)出到指定的客戶端。
配置客戶端計算機
現(xiàn)在是時候?qū)蛻魴C進(jìn)行一些簡單的配置,這樣主機的共享文件夾就可以掛載到客戶端,然后順利訪問。
測試的客戶端服務(wù)器是Ubuntu 18.10
第1步:安裝NFS Common
在安裝NFS Common應(yīng)用程序之前,我們需要通過以下apt命令以sudo的形式更新我們系統(tǒng)的存儲庫索引和Internet的索引:
linuxidc@linuxidc:~$ sudo apt-get update
上面的命令允許我們通過Ubuntu存儲庫安裝最新的軟件版本。
現(xiàn)在,運行以下命令以在系統(tǒng)上安裝NFS Common客戶端:
linuxidc@linuxidc:~$ sudo apt-get install nfs-common
系統(tǒng)將提示您使用Y/n選項確認(rèn)是否要繼續(xù)安裝。 請輸入Y然后按Enter繼續(xù),之后軟件將成功安裝在您的系統(tǒng)上。
第2步:為NFS主機的共享文件夾創(chuàng)建安裝點
您的客戶端系統(tǒng)需要一個目錄,可以訪問導(dǎo)出文件夾中主機服務(wù)器共享的所有內(nèi)容。 您可以在系統(tǒng)的任何位置創(chuàng)建此文件夾。 我們在客戶端機器的mnt目錄中創(chuàng)建一個mount文件夾:
linuxidc@linuxidc:~$ sudo mkdir -p /mnt/linuxidc_client
第3步:在客戶端上掛載共享目錄
您在上述步驟中創(chuàng)建的文件夾與系統(tǒng)上的任何其他文件夾類似,除非您將共享目錄從主機安裝到此新創(chuàng)建的文件夾。
使用以下命令將共享文件夾從主機安裝到客戶端上的裝入文件夾:
sudo mount serverIP:/shareFolder_server /mnt/mountfolder_client
在我們的示例中,我們運行以下命令將“linuxidc”從服務(wù)器導(dǎo)出到客戶端計算機上的mount文件夾“linuxidc_client”:
linuxidc@linuxidc:~$ sudo mount 192.168.182.172:/mnt/linuxidc /mnt/linuxidc_client
第4步:測試連接
請在NFS主機服務(wù)器的導(dǎo)出文件夾中創(chuàng)建或保存文件。 現(xiàn)在,打開客戶端計算機上的mount文件夾; 您應(yīng)該能夠在此文件夾中查看共享和訪問的同一文件。
總結(jié)
在Ubuntu系統(tǒng)上設(shè)置NFS客戶端 – 服務(wù)器環(huán)境是一項簡單的任務(wù)。 通過本文,您學(xué)習(xí)了如何在服務(wù)器和客戶端上安裝所需的NFS包。 您還學(xué)習(xí)了如何配置NFS服務(wù)器和客戶端計算機,以便可以共享文件夾,然后在沒有任何防火墻或權(quán)限相關(guān)故障的情況下順利訪問文件夾。 現(xiàn)在,您可以使用NFS協(xié)議輕松地將內(nèi)容從一個Ubuntu系統(tǒng)共享到另一個系統(tǒng)。
如果你還有什么疑問,請在下面的留言框里寫下你寶貴的建議,謝謝閱讀。