0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Ubuntu 20.04設(shè)置NFS v4服務(wù)器

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-07 09:36 ? 次閱讀

NFS網(wǎng)絡(luò)文件系統(tǒng)是一種分布式文件系統(tǒng)協(xié)議,使您可以通過網(wǎng)絡(luò)共享遠(yuǎn)程目錄。

使用NFS,您可以在系統(tǒng)上掛載遠(yuǎn)程計(jì)算機(jī)目錄,并像對(duì)待本地文件一樣使用遠(yuǎn)程計(jì)算機(jī)文件。

NFS協(xié)議是未加密的協(xié)議,并且與Samba不同,它不提供用戶身份驗(yàn)證。使用客戶端IP地址或主機(jī)名來限制客戶端對(duì)服務(wù)器的訪問。

在本教程中,我們將介紹如何在Ubuntu 20.04設(shè)置NFS v4服務(wù)器。我們還將向您展示如何在客戶端計(jì)算機(jī)掛載NFS文件系統(tǒng)。

本教程假定您有一臺(tái)正在運(yùn)行的Ubuntu 20.04服務(wù)器,另一臺(tái)運(yùn)行著任意Linux發(fā)行版的計(jì)算機(jī)。

服務(wù)器和客戶端能夠通過網(wǎng)絡(luò)相互通信。如果您托管服務(wù)器提供商不提供私有IP地址??梢允褂霉睮P地址并設(shè)置服務(wù)器防火墻僅允許來自受信任源端口2049

本教程中的計(jì)算機(jī)的IP地址是NFS Server/服務(wù)器 IP: 192.168.33.10。NFS Clients/客戶端 IPs: 192.168.33.0/24 網(wǎng)段內(nèi)任意IP。

安裝NFS服務(wù)器

要在Ubuntu 20.04安裝NFS服務(wù)器,你只需要運(yùn)行apt命令sudo apt install nfs-kernel-server更新軟件包索引并安裝NFS服務(wù)器軟件包。

安裝完成后,NFS服務(wù)將自動(dòng)啟動(dòng)。默認(rèn)情況下,在Ubuntu 20.04,NFS版本2是禁用的。版本3和版本4已啟用。NFSv2現(xiàn)在已經(jīng)很老了,我們沒有理由再啟用它。

NFS服務(wù)器配置文件分別是etc/default/nfs-kernel-serveretc/default/nfs-common。

您可以運(yùn)行cat命令sudo cat /proc/fs/nfsd/versions來驗(yàn)證正在運(yùn)行的NFS版本。

sudo apt update
sudo apt install nfs-kernel-server
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

創(chuàng)建共享目錄

配置NFSv4服務(wù)器時(shí),一個(gè)好的做法是使用全局NFS根目錄,并將實(shí)際目錄綁定到共享掛載點(diǎn)。在本教程中,我們將使用/srv/nfs4目錄作為NFS根目錄。

我們將共享具有不同配置的兩個(gè)目錄/var/www/opt/backups,以更好地說明如何配置NFS。

/var/www/www-data用戶和組擁有和/opt/backups它的擁有者是root。

請(qǐng)運(yùn)行以下mkdir命令創(chuàng)建要共享的目錄/var/www/opt/backups。然后將目錄/var/www/opt/backups目錄綁定到/srv/nfs4根目錄。

sudo mkdir -p /var/www/
sudo mkdir -p /opt/backups
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www

sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www

要在重啟后自動(dòng)綁定目錄,請(qǐng)使用你喜歡的文本編輯器打開文件etc/fstab,在本教程中我們將使用vim打開文件。

復(fù)制粘帖以下行到文件etc/fstab,然后保存文件并退出vim編輯器。

sudo vim etc/fstab
/opt/backups /srv/nfs4/backups  none   bind   0   0
/var/www     /srv/nfs4/www      none   bind   0   0

etc/fstab

導(dǎo)出文件系統(tǒng)

下一步就是定義共享選項(xiàng)和訪問限制然后通過NFS服務(wù)器導(dǎo)出。etc/exports文件包含了描述如何導(dǎo)出目錄的說明。

在本教程中,我們需要導(dǎo)出wwwbackups目錄,并僅允許IP是192.168.33.0/24網(wǎng)段的客戶端訪問。

繼續(xù)使用你喜歡的文本編輯器打開文件etc/exports,在本教程中我們將使用vim打開文件。

sudo vim etc/exports
/srv/nfs4  192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.110(rw,sync,no_subtree_check)

etc/exports

第一行包含fsid=0定義NFS根目錄/srv/nfs4。僅允許來自192.168.33.0/24子網(wǎng)的客戶端對(duì)此NFS訪問權(quán)限。crossmnt選項(xiàng)是必需的,它用于共享目錄和導(dǎo)出子目錄。

第二行顯示如何為一個(gè)文件系統(tǒng)指定多個(gè)導(dǎo)出規(guī)則。它導(dǎo)出/srv/nfs4/backups目錄,只允許192.168.33.0/24網(wǎng)段的客戶端有讀的權(quán)限,并且僅允許IP地址是192.168.33.3的客戶端具有讀和寫權(quán)限。sync選項(xiàng)告訴NFS在恢復(fù)之前將更改寫入磁盤。

最后一行應(yīng)該是不言自明的了。所有可用選項(xiàng)的更多信息,請(qǐng)?jiān)诮K端中輸入man exports查看手冊(cè)。

保存文件并退出vim編輯器,然后運(yùn)行命令導(dǎo)出目錄sudo exportfs -ra。

sudo exportfs -ra

每次修改etc/exports文件時(shí),都需要運(yùn)行命令sudo exportfs -ra。如果有任何錯(cuò)誤或警告,錯(cuò)誤消息將打印在終端。

要查看當(dāng)前活動(dòng)的export及其狀態(tài),請(qǐng)運(yùn)行命令sudo exportfs -v。輸出將包含所有共享目錄及其選項(xiàng)。

如您所見,還有一些我們尚未在etc/exports文件中定義的選項(xiàng)。這些是默認(rèn)選項(xiàng),如果要更改它們,則需要顯式設(shè)置這些選項(xiàng)。

sudo exportfs -v
/srv/nfs4/backups
		192.168.33.3(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 	192.168.33.110(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4     	192.168.33.0/24(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
		192.168.33.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

在Ubuntu 20.04,root_squash默認(rèn)情況下是啟用的。這是NFS安全性的最重要的選擇之一。

這樣可以防止從客戶端對(duì)已掛載的共享具有root權(quán)限。它將映射rootUIDGIDnobody/nogroup UID/GID。

為了使客戶端計(jì)算機(jī)能夠訪問,NFS希望客戶端的用戶和組ID與服務(wù)器的用戶和組ID匹配。另一種選擇是使用NFSv4 idmapping功能,將用戶和組ID轉(zhuǎn)換為名稱。

至此,您已經(jīng)在Ubuntu 20.04安裝配置NFS服務(wù)器?,F(xiàn)在,您可以轉(zhuǎn)到下一步配置客戶端并連接到NFS服務(wù)器。

防火墻配置

如果您的服務(wù)器正在運(yùn)行著防火墻,則需要添加一條規(guī)則,允許NFS端口連接。

假設(shè)您正在UFW命令用來管理防火墻。為了僅允許來自192.168.33.0/24子網(wǎng)進(jìn)行訪問,請(qǐng)運(yùn)行命令sudo ufw allow from 192.168.33.0/24 to any port nfs

要驗(yàn)證防火墻規(guī)則的更改,請(qǐng)運(yùn)行命令sudo ufw status。輸出將會(huì)顯示允許端口2049的連接。sudo ufw allow nfs命令將會(huì)允許任何源IP地址。

sudo ufw allow from 192.168.33.0/24 to any port nfs
sudo ufw allow nfs
sudo ufw status
To                         Action      From
--                         ------      ----
2049                       ALLOW       192.168.33.0/24           
22/tcp                     ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)

安裝設(shè)置NFS客戶端

現(xiàn)在我們已經(jīng)設(shè)置NFS服務(wù)器并導(dǎo)出了共享,則下一步將配置客戶端并掛載NFS文件系統(tǒng)。

您也可以在macOS和Windows計(jì)算機(jī)掛載NFS共享目錄,但是我們將重點(diǎn)關(guān)注Linux系統(tǒng)。

在客戶端計(jì)算機(jī),我們僅需要安裝掛載遠(yuǎn)程N(yùn)FS文件系統(tǒng)所需的軟件工具。

如果你的計(jì)算機(jī)運(yùn)行的是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint。請(qǐng)運(yùn)行命令sudo apt update && sudo apt install nfs-common安裝NFS文件系統(tǒng)掛載軟件。

如果你的計(jì)算機(jī)運(yùn)行的是基于RedHat的Linux發(fā)行版,例如CentOS,F(xiàn)edora。請(qǐng)運(yùn)行命令sudo yum install nfs-utils安裝NFS文件系統(tǒng)掛載軟件。

sudo apt update && sudo apt install nfs-common
sudo yum install nfs-utils

掛載NFS文件系統(tǒng)

我們將在IP地址是192.168.33.110客戶端計(jì)算機(jī)掛載NFS共享,該IP具有對(duì)/srv/nfs4/www目錄的讀寫權(quán)限和對(duì)/srv/nfs4/backups的只讀權(quán)限。

為掛載兩個(gè)目錄,我們將創(chuàng)建兩個(gè)目錄作為掛載點(diǎn)。您可以在你所需的任何目錄創(chuàng)建此掛載點(diǎn)目錄。

然后運(yùn)行mount命令掛載NFS共享文件系統(tǒng),vers=4表示使用V4版本的NFS,192.168.33.10:/backupsNFS服務(wù)器共享目錄。/backups掛載點(diǎn)。

sudo mkdir -p /backups
sudo mkdir -p /srv/www

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

您也可以使用主機(jī)名代替NFS服務(wù)器IP地址192.168.33.10。但是客戶端計(jì)算機(jī)必須可以將主機(jī)名解析為IP地址。

你可以在etc/hosts文件添加主機(jī)名與IP的映射來完成,這是hosts文件格式127.0.1.1 ubuntu,第一列是IP地址,第二列是主機(jī)名稱,可以是任何名稱。

掛載NFS v4版本的文件系統(tǒng)時(shí),可以省略NFS根目錄,因此你可以使用/backups,而不是/srv/nfs4/backups掛載NFS共享目錄。

最后使用mount或df命令驗(yàn)證是否成功掛載NFS共享目錄,df命令將打印所有已掛載的文件系統(tǒng)。最后兩行是已掛載的共享目錄。

df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00   38G  1.7G   36G   5% /
devtmpfs                         236M     0  236M   0% /dev
tmpfs                            244M     0  244M   0% /dev/shm
tmpfs                            244M  4.5M  240M   2% /run
tmpfs                            244M     0  244M   0% /sys/fs/cgroup
/dev/sda2                       1014M   87M  928M   9% /boot
tmpfs                             49M     0   49M   0% /run/user/1000
192.168.33.10:/backups           9.7G  1.2G  8.5G  13% /backups
192.168.33.10:/www               9.7G  1.2G  8.5G  13% /srv/www

要自動(dòng)掛載NFS共享目錄,請(qǐng)你喜歡的編輯器打開etc/fstab文件。復(fù)制粘帖以下行到文件etc/fstab。

etc/fstab文件包含一個(gè)掛載點(diǎn)列表,這些條目定義在系統(tǒng)啟動(dòng)時(shí)將在何處以及如何掛載文件系統(tǒng)。

要查找掛載NFS文件系統(tǒng)可用選項(xiàng)的更多信息,請(qǐng)?jiān)诮K端中鍵入man nfs。掛載共享目錄的另一種選擇是使用autofs工具或創(chuàng)建一個(gè)systemd服務(wù)文件。

sudo vim etc/fstab
192.168.33.10:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev	0 0
192.168.33.10:/www /srv/www       nfs   defaults,timeo=900,retrans=5,_netdev	0 0

etc/fstab

測(cè)試NFS訪問

讓我們?yōu)槊總€(gè)共享目錄創(chuàng)建一個(gè)文件來測(cè)試對(duì)NFS共享目錄的訪問。首先,嘗試/backups掛載點(diǎn)運(yùn)行touch命令創(chuàng)建文件。

/backup文件系統(tǒng)被設(shè)置為只讀權(quán)限,因此你會(huì)看到一個(gè)權(quán)限拒絕錯(cuò)誤消息touch: cannot touch ‘/backups/test’: Permission denied。

sudo touch /backups/test.txt
touch: cannot touch ‘/backups/test’: Permission denied

接下來,嘗試在/srv/www目錄,運(yùn)行命令sudo touch /srv/www/test.txt創(chuàng)建測(cè)試文件。

同樣,您將看到錯(cuò)誤消息touch: cannot touch ‘/srv/www’: Permission denied,也就是權(quán)限拒絕錯(cuò)誤。

sudo touch /srv/www/test.txt
touch: cannot touch ‘/srv/www’: Permission denied

您可能還記得/var/www目錄所有者是www-data用戶。此共享設(shè)置root_squash選項(xiàng)。

root_squash選項(xiàng)將root用戶映射到遠(yuǎn)程服務(wù)器nobody用戶和nogroup組。nobody用戶和nogroup組是沒有寫權(quán)限讀寫導(dǎo)出的共享目錄。

假設(shè)在客戶端計(jì)算機(jī)存在用戶www-data,在服務(wù)器端也有用戶www-data且相同的UIDGID。

則可以運(yùn)行命令sudo -u www-data touch /srv/www/test.txt/srv/www/共享目錄中創(chuàng)建文件。

該命令將不顯示任何輸出,表示文件已成功創(chuàng)建。要驗(yàn)證它可以運(yùn)行l(wèi)s命令列出/srv/www目錄文件。

sudo -u www-data touch /srv/www/test.txt
ls -la /srv/www
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18 .
drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
-rw-r--r-- 1 www-data www-data    0 Jun 23 21:58 index.html
-rw-r--r-- 1 www-data www-data    0 Jun 23 22:18 test.txt

卸載NFS文件系統(tǒng)

如果不再需要遠(yuǎn)程N(yùn)FS共享,則可以使用umount命令將其卸載已掛載的任何目錄。

例如要卸載/backupNFS共享,請(qǐng)運(yùn)行命令sudo umount /backups

如果在etc/fstab文件中定義了掛載記錄,請(qǐng)確保刪除包含掛載點(diǎn)的行或者在該行的開頭添加#注釋掉。

sudo umount /backups

結(jié)論

在本教程中,我們向您展示了如何在Ubuntu 20.04設(shè)置NFS服務(wù)器以及如何在客戶端計(jì)算機(jī)掛載NFS文件系統(tǒng)。

如果要在生產(chǎn)中實(shí)施NFS并共享敏感數(shù)據(jù),建議啟用kerberos身份驗(yàn)證。作為NFS的安全替代方案,您可以使用SSHFS通過SSH連接掛載NFS共享。

SSHFS默認(rèn)是加密的協(xié)議,并且更易于配置和使用。如有任何疑問,請(qǐng)隨時(shí)發(fā)表評(píng)論。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84553
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    280

    瀏覽量

    19831
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    553

    瀏覽量

    29301
  • NFS
    NFS
    +關(guān)注

    關(guān)注

    1

    文章

    52

    瀏覽量

    26051
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在Ubuntu 22.04上搭建ftp服務(wù)器

    本文將在Ubuntu 22.04上搭建ftp服務(wù)器,對(duì)于其他版本Ubuntu系統(tǒng)或者其他系列的Linux發(fā)行版,配置都差不多。
    發(fā)表于 08-21 09:18 ?1221次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Ubuntu</b> 22.04上搭建ftp<b class='flag-5'>服務(wù)器</b>

    【AWorks試用體驗(yàn)】+NFS服務(wù)器搭建

    本帖最后由 youzizhile 于 2015-8-18 15:53 編輯 6.4 NFS服務(wù)器搭建6.4.1 NFS能做什么?在嵌入式Linux開發(fā)中,需要在Linux主機(jī)為目標(biāo)機(jī)編寫程序
    發(fā)表于 08-18 15:51

    【OK210試用體驗(yàn)】之(4)——NFS服務(wù)器的搭建

    。$ sudoapt-get install nfs-kernel-server2.設(shè)置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS
    發(fā)表于 09-09 00:34

    TQ210 NFS服務(wù)器的配置和使用

      這一講將介紹怎么在虛擬機(jī)的Linux系統(tǒng)上安裝NFS服務(wù)器,然后在TQ210v6開發(fā)板上的Linux上掛載nfs共享文件夾,實(shí)現(xiàn)虛擬機(jī)和開發(fā)板的文件共享,方便把編譯好的程序復(fù)制到開
    發(fā)表于 11-23 15:35

    ubuntu下搭建NFS服務(wù)器

    ubuntu下搭建NFS服務(wù)器何在ubuntu下搭建NFS
    發(fā)表于 11-02 16:08

    迅為龍芯2K1000開發(fā)板虛擬機(jī)ubuntu安裝nfs服務(wù)器

    , 使用有線連接到和開發(fā)板連接的同一個(gè)路由上。(4) 保證虛擬機(jī) ubuntu,Windows, 開發(fā)板在同一個(gè)網(wǎng)段。4、nfs
    發(fā)表于 11-23 10:06

    嵌入式開發(fā)在ubuntu設(shè)置nfs服務(wù)的步驟

    嵌入式開發(fā)在ubuntu設(shè)置nfs服務(wù)1 ubuntu設(shè)置1、下載
    發(fā)表于 12-27 06:07

    潤(rùn)和Hi3559A開發(fā)板和ubuntu服務(wù)器如何配置網(wǎng)絡(luò)?

    本帖最后由 TruAnT 于 2022-3-15 16:17 編輯 要在板子上跑例程,ubuntu服務(wù)器中安裝好了NFS文件系統(tǒng),要把ubuntu
    發(fā)表于 03-15 15:15

    [RK3399] [Firefly-Ubuntu] 搭建NFS服務(wù)實(shí)現(xiàn)共享目錄

    1、搭建NFS服務(wù)實(shí)現(xiàn)共享目錄服務(wù)器端(PC 機(jī))我的 PC 機(jī)使用的是 Ubuntu 20.04,其他 Linux 系統(tǒng)方法也是類似的!安
    發(fā)表于 04-12 18:07

    AIO-3399J NFS服務(wù)器實(shí)現(xiàn)掛載

    mkdir nfs3. 設(shè)置sudo mount -t nfs 172.17.32.168:/home/sljt/data /home/gavin/nfs172.17.32.168為
    發(fā)表于 06-10 15:02

    何在Win 2003環(huán)境中設(shè)置一個(gè)Web服務(wù)器

    何在Win 2003環(huán)境中設(shè)置一個(gè)Web服務(wù)器   本文介紹了如何在 Windows Server 2003 環(huán)境中設(shè)置一個(gè)用于匿名訪問
    發(fā)表于 01-29 11:35 ?553次閱讀

    嵌入式linux實(shí)現(xiàn)mount掛載nfs服務(wù)器拷貝文件

    nfs服務(wù)器一般在本地虛擬機(jī)ubuntu搭建nfs服務(wù)器就行,具體流程,可以查看我的博客ubuntu
    發(fā)表于 11-01 17:07 ?1次下載
    嵌入式linux實(shí)現(xiàn)mount掛載<b class='flag-5'>nfs</b><b class='flag-5'>服務(wù)器</b>拷貝文件

    Core 3399 JD4 V2固件Ubuntu18.04/20.04(GPT)

    電子發(fā)燒友網(wǎng)站提供《Core 3399 JD4 V2固件Ubuntu18.04/20.04(GPT).txt》資料免費(fèi)下載
    發(fā)表于 09-16 10:00 ?0次下載
    Core 3399 JD<b class='flag-5'>4</b> <b class='flag-5'>V</b>2固件<b class='flag-5'>Ubuntu</b>18.04/<b class='flag-5'>20.04</b>(GPT)

    何在Ubuntu 20.04安裝和配置FTP服務(wù)器

    本教程介紹如何在Ubuntu 20.04安裝和配置,用于在設(shè)備之間共享文件的FTP服務(wù)器。
    的頭像 發(fā)表于 12-05 16:04 ?4473次閱讀

    何在CentOS 8設(shè)置NFS v4服務(wù)器

    NFS網(wǎng)絡(luò)文件系統(tǒng)是一種分布式文件系統(tǒng)協(xié)議,使您可以通過網(wǎng)絡(luò)共享遠(yuǎn)程目錄。
    的頭像 發(fā)表于 01-04 17:13 ?3115次閱讀