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

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

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

Linux配置NFS文件共享詳解

馬哥Linux運維 ? 來源:51CTO ? 2023-12-27 09:53 ? 次閱讀

一、NFS簡介

NFS是Network File System的縮寫,是一種分布式文件系統(tǒng)協(xié)議,用于在計算機網(wǎng)絡(luò)上共享文件。它允許客戶端計算機通過網(wǎng)絡(luò)遠程訪問和處理遠程服務(wù)器上的文件和目錄。

NFS最初由Sun Microsystems開發(fā)并在1984年發(fā)布,被設(shè)計為可在不同操作系統(tǒng)和硬件平臺之間共享文件。它基于客戶-服務(wù)器模型,客戶端通過網(wǎng)絡(luò)連接到NFS服務(wù)器,并使用NFS協(xié)議訪問遠程文件系統(tǒng)。

使用NFS,客戶端可以像訪問本地文件一樣訪問遠程文件。這使得多個計算機之間可以方便地共享文件,并實現(xiàn)文件的統(tǒng)一管理。

NFS協(xié)議支持多種操作,包括讀取、寫入、創(chuàng)建、刪除和修改文件和目錄。它還提供了文件和目錄的權(quán)限管理機制,以確保只有具有適當(dāng)權(quán)限的用戶才能訪問和修改文件。

NFS是一個成熟、廣泛應(yīng)用的文件共享協(xié)議,被用于各種操作系統(tǒng)和應(yīng)用場景,例如Unix和Linux系統(tǒng)中的文件共享、云存儲服務(wù)和虛擬化環(huán)境中的文件傳輸?shù)取?/p>

二、NFS配置

2.1 實驗拓撲

如下圖,兩臺Linux主機通過e0網(wǎng)卡接入到同一網(wǎng)絡(luò),Net1已配置NAT服務(wù),兩臺主機之間互通且可以訪問Internet,e1網(wǎng)卡接入到Mgmt網(wǎng)絡(luò),方便遠程管理

cc511fb0-a3d8-11ee-8b88-92fbcf53809c.jpg

2.2 實驗規(guī)劃

主機-角色 主機名 操作系統(tǒng)
Rocky-Server nfs-server Rocky Linux 8.9 (Green Obsidian)
Rocky-Client nfs-client Rocky Linux 8.9 (Green Obsidian)

2.3 配置服務(wù)端

安裝NFS軟件包:

[root@nfs-server ~]# yum -y install nfs-utils    # 安裝nfs-utils軟件包
[root@nfs-server ~]# 
[root@nfs-server ~]# rpm -qa | grep nfs    # 查看nfs軟件包
libnfsidmap-2.3.3-59.el8.x86_64
nfs-utils-2.3.3-59.el8.x86_64
sssd-nfs-idmap-2.9.1-4.el8_9.x86_64
[root@nfs-server ~]# 
[root@nfs-server ~]# rpm -qc nfs-utils    # 查看nfs-utils軟件包的配置文件
/etc/gssproxy/24-nfs-server.conf
/etc/modprobe.d/lockd.conf
/etc/nfs.conf
/etc/nfsmount.conf
/etc/request-key.d/id_resolver.conf
/var/lib/nfs/etab
/var/lib/nfs/rmtab

在NFS服務(wù)器上建立用于NFS文件共享的目錄,并設(shè)置足夠的權(quán)限確保其他人也有寫入權(quán)限:

[root@nfs-server ~]# mkdir /nfsfile    # 創(chuàng)建目錄
[root@nfs-server ~]# 
[root@nfs-server ~]# chmod 777 /nfsfile    # 賦予權(quán)限
[root@nfs-server ~]# 
[root@nfs-server ~]# ls -ld /nfsfile    # 查看目錄權(quán)限
drwxrwxrwx. 2 root root 6 Dec 25 22:40 /nfsfile
[root@nfs-server ~]# 
[root@nfs-server ~]# echo 'This is a nfs shared folder.' > /nfsfile/README    # 寫入一個文本文件

NFS服務(wù)程序的配置文件為/etc/exports,默認情況下里面沒有任何內(nèi)容,我們可以通過“rpm -qf”命令查看一下該配置文件是由哪個軟件包安裝提供的:

[root@nfs-server ~]# ls -l /etc/exports
-rw-r--r--. 1 root root 0 Sep 10  2018 /etc/exports
[root@nfs-server ~]# 
[root@nfs-server ~]# rpm -qf /etc/exports
setup-2.12.2-9.el8.noarch    # 查看到“/etc/exports”文件由這個軟件包提供
[root@nfs-server ~]# 
[root@nfs-server ~]# rpm -qi setup    # 查看“setup”軟件包信息
Name        : setup
Version     : 2.12.2
Release     : 9.el8
Architecture: noarch
Install Date: Thu 14 Dec 2023 01:10:40 PM CST
Group       : System Environment/Base
Size        : 724747
License     : Public Domain
Signature   : RSA/SHA256, Thu 12 Jan 2023 10:49:46 AM CST, Key ID 15af5dac6d745a60
Source RPM  : setup-2.12.2-9.el8.src.rpm
Build Date  : Wed 30 Nov 2022 01:24:15 PM CST
Build Host  : ord1-prod-a64build002.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : infrastructure@rockylinux.org
Vendor      : Rocky
URL         : https://pagure.io/setup/
Summary     : A set of system configuration and setup files
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.

我們可以按照“共享目錄的路徑 允許訪問的NFS客戶端(共享權(quán)限參數(shù)”的格式,定義要共享的目錄與相應(yīng)的權(quán)限。

例如,如果想要把/nfsfile目錄共享給172.16.0.0/24網(wǎng)段內(nèi)的所有主機,讓這些主機都擁有讀寫權(quán)限,在將數(shù)據(jù)寫入到NFS服務(wù)器的硬盤中后才會結(jié)束操作,最大限度保證數(shù)據(jù)不丟失,以及把來訪客戶端root管理員映射為本地的匿名用戶等,則可以按照下面命令中的格式,將下表中的參數(shù)寫到NFS服務(wù)程序的配置文件中

用于配置NFS服務(wù)程序配置文件的參數(shù)

參數(shù) 作用
ro 只讀
rw 讀寫
root_squash 當(dāng)NFS客戶端以root管理員訪問時,映射為NFS服務(wù)器的匿名用戶
no_root_squash 當(dāng)NFS客戶端以root管理員訪問時,映射為NFS服務(wù)器的root管理員
all_squash 無論NFS客戶端使用什么賬戶訪問,均映射為NFS服務(wù)器的匿名用戶
sync 同時將數(shù)據(jù)寫入到內(nèi)存與硬盤中,保證不丟失數(shù)據(jù)
async 優(yōu)先將數(shù)據(jù)保存到內(nèi)存,然后再寫入硬盤;這樣效率更高,但可能會丟失數(shù)據(jù)

編輯"/etc/exports”配置文件,注意:NFS客戶端地址與權(quán)限之間沒有空格

[root@nfs-server ~]# vim /etc/exports
/nfsfile 172.16.0.*(rw,sync,root_squash)

在NFS服務(wù)的配置文件中巧用通配符能夠?qū)崿F(xiàn)很多便捷功能,就比如匹配IP地址就有三種方法——第一種是直接寫*號,代表任何主機都可以訪問;第二種則是實驗中采用的192.168.10.*通配格式,代表來自192.168.10.0/24網(wǎng)段的主機;第三種則是直接寫對方的IP地址,如192.168.10.20,代表僅允許某個主機進行訪問

啟動和啟用NFS服務(wù)程序。由于在使用NFS服務(wù)進行文件共享之前,需要使用RPC(Remote Procedure Call,遠程過程調(diào)用)服務(wù)將NFS服務(wù)器的IP地址和端口號等信息發(fā)送給客戶端。因此,在啟動NFS服務(wù)之前,還需要順帶重啟并啟用rpcbind服務(wù)程序,并將這兩個服務(wù)一并加入開機啟動項中

[root@nfs-server ~]# systemctl restart rpcbind.service 
[root@nfs-server ~]# systemctl enable rpcbind.service
[root@nfs-server ~]# systemctl enable --now nfs-server.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.

防火墻放行NFS共享相關(guān)的服務(wù):

[root@nfs-server ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@nfs-server ~]# firewall-cmd --add-service=rpc-bind --permanent 
success
[root@nfs-server ~]# firewall-cmd --add-service=mountd --permanent 
success
[root@nfs-server ~]# firewall-cmd --reload 
success

2.4 配置客戶端

先使用showmount命令查詢NFS服務(wù)器的遠程共享信息,必要的參數(shù)下表,其輸出格式為“共享的目錄名稱 允許使用客戶端地址”

showmount命令中可用的參數(shù)以及作用

參數(shù) 作用
-e 顯示NFS服務(wù)器的共享列表
-a 顯示本機掛載的文件資源的情況NFS資源的情況
-v 顯示版本號

[root@nfs-client ~]# yum provides showmount    # 查找showmount命令是由哪個軟件包提供的
Last metadata expiration check: 0:45:12 ago on Mon 25 Dec 2023 10:25:00 PM CST.
nfs-utils-1:2.3.3-59.el8.x86_64 : NFS utilities and supporting clients and daemons for the kernel NFS server
Repo        : baseos
Matched from:
Provide    : showmount = 1:2.3.3-59.el8
[root@nfs-client ~]# yum -y install nfs-utils    # 安裝nfs-utils軟件包
[root@nfs-client ~]# showmount -e 172.16.0.100  # 顯示nfs服務(wù)器的共享列表
Export list for 172.16.0.100:
/nfsfile 172.16.0.*

在NFS客戶端創(chuàng)建一個掛載目錄。使用mount命令并結(jié)合-t參數(shù),指定要掛載的文件系統(tǒng)的類型,并在命令后面寫上服務(wù)器的IP地址、服務(wù)器上的共享目錄以及要掛載到本地系統(tǒng)(即客戶端)的目錄

[root@nfs-client ~]# mkdir /nfsfile
[root@nfs-client ~]# mount -t nfs 172.16.0.100:/nfsfile /nfsfile
[root@nfs-client ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs                 tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs                 tmpfs     3.9G  8.5M  3.9G   1% /run
tmpfs                 tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root   xfs        37G  2.2G   35G   6% /
/dev/mapper/rl-home   xfs        19G  162M   18G   1% /home
/dev/vda1             xfs      1014M  172M  843M  17% /boot
tmpfs                 tmpfs     794M     0  794M   0% /run/user/0
172.16.0.100:/nfsfile nfs4       37G  2.2G   35G   6% /nfsfile

掛載成功后就應(yīng)該能夠順利地看到在執(zhí)行前面的操作時寫入的文件內(nèi)容了。如果希望NFS文件共享服務(wù)能一直有效,則需要將其寫入到fstab文件中:

[root@nfs-client ~]# cat /nfsfile/README 
This is a nfs shared folder.
[root@nfs-client ~]# 
[root@nfs-client ~]# vim /etc/fstab


# 
# /etc/fstab
# Created by anaconda on Thu Dec 14 0552 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=e629f80e-7773-478a-90bb-2071e248cf79 /boot                   xfs     defaults        0 0
/dev/mapper/rl-home     /home                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0
172.16.0.100:/nfsfile   /nfsfile                nfs     defaults        0 0      # 添加這一行
[root@nfs-client ~]# 
[root@nfs-client ~]# mount -a

鏈接:https://blog.51cto.com/min2000/8973419








審核編輯:劉清

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

    關(guān)注

    19

    文章

    7286

    瀏覽量

    87516
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    588

    瀏覽量

    27262
  • RPC
    RPC
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

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

    關(guān)注

    1

    文章

    52

    瀏覽量

    26063

原文標(biāo)題:一文精通Linux配置NFS文件共享

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    詳細說明如何配置嵌入式linuxnfs開發(fā)環(huán)境

    對于嵌入式開發(fā)者而言開發(fā)效率非常重要,nfs的是嵌入式linux 開發(fā)的一個重要的組成部分,本部分內(nèi)容將詳細說明如何配置嵌入式linuxnfs
    發(fā)表于 07-28 16:14 ?2302次閱讀

    linux驅(qū)動開發(fā)_文件系統(tǒng)本地掛載

    介紹Linux開發(fā)根文件系統(tǒng)掛載、NFS文件系統(tǒng)配置,UBOOT環(huán)境變量配置,完成文件系統(tǒng)啟動。
    的頭像 發(fā)表于 09-17 15:52 ?1378次閱讀
    <b class='flag-5'>linux</b>驅(qū)動開發(fā)_<b class='flag-5'>文件</b>系統(tǒng)本地掛載

    【AWorks試用體驗】搭建 nfs 文件系統(tǒng) 和 運行 hello world

    -kernel-server.sudo apt-get install nfs-kernel-server編輯配置文件,指定共享目錄. 我就直接共享整個 /home 目錄.sudo v
    發(fā)表于 08-10 22:04

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

      這一講將介紹怎么在虛擬機的Linux系統(tǒng)上安裝NFS服務(wù)器,然后在TQ210v6開發(fā)板上的Linux上掛載nfs共享
    發(fā)表于 11-23 15:35

    Ubuntu 15下NFS安裝配置

    Ubuntu 15.10下NFS安裝配置參考:http://www.linuxidc.com/Linux/2013-08/89154.htm1、執(zhí)行命令:sudo apt-get install
    發(fā)表于 12-30 08:59

    【NanoPi NEO2試用體驗】nfs文件系統(tǒng)

    極大地方便開發(fā)。1. nfs文件系統(tǒng)nfs需要主機端以及板端的nfs服務(wù)支持。1.1. 主機端nfs配置
    發(fā)表于 07-04 14:11

    【米爾王牌產(chǎn)品MYD-Y6ULX-V2開發(fā)板試用體驗】掛載NFS網(wǎng)絡(luò)文件系統(tǒng)

    測試。搭建NFS環(huán)境如何利用NFS搭建NFS環(huán)境。主要包含連接網(wǎng)絡(luò)、主機開啟NFS服務(wù) 以及開發(fā)板掛載文件系統(tǒng)三個步驟。在虛擬機上創(chuàng)建
    發(fā)表于 12-04 22:28

    嵌入式LINUX下的簡述步驟

    看了linux 編程書,了解他的程序用方法,做好了NFS 環(huán)境,步聚是:安裝(現(xiàn)在好多linux都默認安裝的),確定它能正常工作-->創(chuàng)建共享目錄(mkdir /mnt/
    發(fā)表于 01-09 11:30 ?912次閱讀

    linux下網(wǎng)卡配置詳解

    linux下網(wǎng)卡配置詳解
    發(fā)表于 12-15 22:38 ?0次下載

    Linux設(shè)備驅(qū)動開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)

    Linux設(shè)備驅(qū)動開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)
    發(fā)表于 10-27 14:13 ?0次下載
    《<b class='flag-5'>Linux</b>設(shè)備驅(qū)動開發(fā)<b class='flag-5'>詳解</b>》第5章、<b class='flag-5'>Linux</b><b class='flag-5'>文件</b>系統(tǒng)與設(shè)備<b class='flag-5'>文件</b>系統(tǒng)

    嵌入式Linux NFS掛載

    nfs-kernel-server2、打開配置vi /etc/exports在最后一行增加以下命令,將/mnt/nfs設(shè)置為共享目錄/mnt/nf
    發(fā)表于 10-20 15:06 ?2次下載
    嵌入式<b class='flag-5'>Linux</b> <b class='flag-5'>NFS</b>掛載

    如何在Linux卸載NFS共享目錄

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

    如何在Linux掛載NFS共享

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

    Linux下部署NFS服務(wù)

    NFS是 Network File System的縮寫,即網(wǎng)絡(luò)文件存儲系統(tǒng),最早是由Sun 公司發(fā)展出來的,它最大的功能就是可以通過網(wǎng)絡(luò),讓不同的機器、不同的操作系統(tǒng)可以共享彼此的文件
    的頭像 發(fā)表于 04-17 14:58 ?1091次閱讀
    <b class='flag-5'>Linux</b>下部署<b class='flag-5'>NFS</b>服務(wù)

    NFS服務(wù)器搭建與配置步驟

    NFS就是Network File System的縮寫,它最大的功能就是可以通過網(wǎng)絡(luò),讓不同的機器、不同的操作系統(tǒng)可以共享彼此的文件。
    的頭像 發(fā)表于 05-26 10:10 ?5317次閱讀
    <b class='flag-5'>NFS</b>服務(wù)器搭建與<b class='flag-5'>配置</b>步驟