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

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

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

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

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2023-01-04 17:13 ? 次閱讀

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ù)器的訪問。

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

本教程假定您有一臺(tái)正在運(yùn)行的CentOS 8服務(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ù)器

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

安裝完成后,運(yùn)行systemctl命令啟用并自動(dòng)啟動(dòng)NFS服務(wù)在重啟時(shí)。

默認(rèn)情況下,在CentOS 8,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 dnf install nfs-utils
sudo systemctl enable --now nfs-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)

在CentOS 8,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)在CentOS 8安裝配置NFS服務(wù)器?,F(xiàn)在,您可以轉(zhuǎn)到下一步配置客戶端并連接到NFS服務(wù)器。

NFS 防火墻配置

如果您在計(jì)算機(jī)上運(yùn)行著FirewallD防火墻,則需要打開端口2049,允許NFS端口的連接。假設(shè)您正在使用FirewallD用來管理iptables防火墻。

為了僅允許來自192.168.33.0/24子網(wǎng)的計(jì)算機(jī)訪問NFS服務(wù)器。請(qǐng)運(yùn)行命令sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent。

sudo firewall-cmd --zone=nfs --add-service=nfs --permanent命令將會(huì)允許任何源IP地址。

要驗(yàn)證防火墻規(guī)則的更改,請(qǐng)運(yùn)行命令sudo firewall-cmd --reload。輸出將會(huì)顯示允許端口2049的連接。。

sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload

安裝設(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

測試NFS訪問

讓我們?yōu)槊總€(gè)共享目錄創(chuàng)建一個(gè)文件來測試對(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)建測試文件。

同樣,您將看到錯(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é)論

在本教程中,我們向您展示了如何在CentOS 8設(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é)議,并且更易于配置和使用。

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

    關(guān)注

    12

    文章

    8701

    瀏覽量

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

    關(guān)注

    0

    文章

    280

    瀏覽量

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

    關(guān)注

    1

    文章

    52

    瀏覽量

    26051
  • CentOS
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    13688
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux開發(fā)_CentOS7.4服務(wù)器搭建NFS、NGINX服務(wù)器,安裝ffmpeg、Qt環(huán)境

    CentOS7.4服務(wù)器版本的環(huán)境下搭建NFS服務(wù)器、安裝ffmpeg、安裝nginx服務(wù)器、部署Qt編譯環(huán)境。
    的頭像 發(fā)表于 07-14 13:45 ?1418次閱讀
    Linux開發(fā)_<b class='flag-5'>CentOS</b>7.4<b class='flag-5'>服務(wù)器</b>搭建<b class='flag-5'>NFS</b>、NGINX<b class='flag-5'>服務(wù)器</b>,安裝ffmpeg、Qt環(huán)境

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

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

    第四課:NFS服務(wù)器的配置

    NFS的客戶端應(yīng)用可以透明地讀寫位于遠(yuǎn)端NFS服務(wù)器上的文件,就像訪問本地文件一樣。介紹NFS安裝步驟1、執(zhí)行命令:sudo apt-get installnfs-kernel-ser
    發(fā)表于 09-07 07:18

    【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

    4412開發(fā)板學(xué)習(xí)筆記-NFS服務(wù)器的搭建

    /exports,使用 vi 命令打開/etc/exports在其中增加NFS服務(wù)器目錄。 一個(gè)NFS服務(wù)器可以共享多個(gè)NFS目錄,在/et
    發(fā)表于 06-20 14:29

    Linux 配置 NFS進(jìn)行服務(wù)器端配置,重啟NFS時(shí)報(bào)錯(cuò),請(qǐng)問這是為什么?

    -utils rpcbind 完成了nfs-utills 和 rpcbind(Centos5版本下是portmap)完成了相關(guān)的安裝。2、接下來進(jìn)行服務(wù)器端配置,重啟NFS時(shí)報(bào)錯(cuò):重啟
    發(fā)表于 06-21 20:00

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

    ubuntu下搭建NFS服務(wù)器何在ubuntu下搭建NFS服務(wù)器,是困擾很多人的一個(gè)問題,下面是ubuntu下搭建
    發(fā)表于 11-02 16:08

    CentOS的ntp服務(wù)器搭建

    【ntp】CentOS上搭建ntp服務(wù)器,并實(shí)現(xiàn)時(shí)間同步
    發(fā)表于 03-20 11:18

    如何使用Xmanager遠(yuǎn)程CentOS 7服務(wù)器

    【Xmanager】如何使用Xmanager遠(yuǎn)程CentOS 7服務(wù)器
    發(fā)表于 04-09 13:16

    如何配置NFS文件存儲(chǔ)服務(wù)器

    配置NFS文件存儲(chǔ)服務(wù)器的方法步驟
    發(fā)表于 11-05 06:10

    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次閱讀

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

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

    centos7如何設(shè)置靜態(tài)IP

    CentOS 7上設(shè)置靜態(tài)IP是一個(gè)簡單而重要的任務(wù),尤其對(duì)于服務(wù)器管理員來說。在本文中,我們將詳細(xì)介紹如何在CentOS 7上
    的頭像 發(fā)表于 11-17 11:06 ?1275次閱讀