<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Linux配置NFS文件共享詳解

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

一、NFS簡介

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

NFS最初由Sun Microsystems開發并在1984年發布,被設計為可在不同操作系統和硬件平臺之間共享文件。它基于客戶-服務器模型,客戶端通過網絡連接到NFS服務器,并使用NFS協議訪問遠程文件系統。

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

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

NFS是一個成熟、廣泛應用的文件共享協議,被用于各種操作系統和應用場景,例如Unix和Linux系統中的文件共享、云存儲服務和虛擬化環境中的文件傳輸等。

二、NFS配置

2.1 實驗拓撲

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

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

2.2 實驗規劃

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

2.3 配置服務端

安裝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服務器上建立用于NFS文件共享的目錄,并設置足夠的權限確保其他人也有寫入權限:

[root@nfs-server ~]# mkdir /nfsfile    # 創建目錄
[root@nfs-server ~]# 
[root@nfs-server ~]# chmod 777 /nfsfile    # 賦予權限
[root@nfs-server ~]# 
[root@nfs-server ~]# ls -ld /nfsfile    # 查看目錄權限
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服務程序的配置文件為/etc/exports,默認情況下里面沒有任何內容,我們可以通過“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客戶端(共享權限參數”的格式,定義要共享的目錄與相應的權限。

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

用于配置NFS服務程序配置文件的參數

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

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

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

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

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

[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共享相關的服務:

[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服務器的遠程共享信息,必要的參數下表,其輸出格式為“共享的目錄名稱 允許使用客戶端地址”

showmount命令中可用的參數以及作用

參數 作用
-e 顯示NFS服務器的共享列表
-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服務器的共享列表
Export list for 172.16.0.100:
/nfsfile 172.16.0.*

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

[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

掛載成功后就應該能夠順利地看到在執行前面的操作時寫入的文件內容了。如果希望NFS文件共享服務能一直有效,則需要將其寫入到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








審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    6814

    瀏覽量

    85472
  • Linux系統
    +關注

    關注

    4

    文章

    573

    瀏覽量

    27004
  • RPC
    RPC
    +關注

    關注

    0

    文章

    102

    瀏覽量

    11449
  • NFS
    NFS
    +關注

    關注

    1

    文章

    52

    瀏覽量

    26002

原文標題:一文精通Linux配置NFS文件共享

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

收藏 人收藏

    評論

    相關推薦

    詳細說明如何配置嵌入式linuxnfs開發環境

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

    【AWorks試用體驗】搭建 nfs 文件系統 和 運行 hello world

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

    TQ210 NFS服務器的配置和使用

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

    Ubuntu 15下NFS安裝配置

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

    【NanoPi NEO2試用體驗】nfs文件系統

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

    [RK3399] [Firefly-Ubuntu] 搭建NFS服務實現共享目錄

    1、搭建NFS服務實現共享目錄服務器端(PC 機)我的 PC 機使用的是 Ubuntu 20.04,其他 Linux 系統方法也是類似的!安裝nfs-kernel-server創建
    發表于 04-12 18:07

    【米爾王牌產品MYD-Y6ULX-V2開發板試用體驗】掛載NFS網絡文件系統

    測試。搭建NFS環境如何利用NFS搭建NFS環境。主要包含連接網絡、主機開啟NFS服務 以及開發板掛載文件系統三個步驟。在虛擬機上創建
    發表于 12-04 22:28

    嵌入式LINUX的編程操作步驟

    做好了NFS 環境,步聚是:安裝(現在好多linux都默認安裝的),確定它能正常工作-->創建共享目錄(mkdir /mnt/nfs)-->編輯共享
    發表于 07-10 09:55 ?1496次閱讀

    嵌入式LINUX下的簡述步驟

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

    linux下網卡配置詳解

    linux下網卡配置詳解
    發表于 12-15 22:38 ?0次下載

    嵌入式Linux NFS掛載

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

    嵌入式開發板掛載linux文件

    install nfs-kernel-server2.再進行配置共享文件夾sudo vim /etc/exports 或sudo gedit /etc/exports 我更喜歡后者,
    發表于 11-02 19:21 ?20次下載
    嵌入式開發板掛載<b class='flag-5'>linux</b>上<b class='flag-5'>文件</b>夾

    如何在Linux卸載NFS共享目錄

    NFS網絡文件系統是一種分布式文件系統協議,使您可以通過網絡共享遠程目錄。
    的頭像 發表于 12-07 09:38 ?9743次閱讀

    如何在Linux掛載NFS共享

    NFS網絡文件系統是一種分布式文件系統協議,使您可以通過網絡共享遠程目錄。
    的頭像 發表于 12-07 09:39 ?3026次閱讀

    Linux下部署NFS服務

    NFS是 Network File System的縮寫,即網絡文件存儲系統,最早是由Sun 公司發展出來的,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享彼此的文件
    的頭像 發表于 04-17 14:58 ?867次閱讀
    <b class='flag-5'>Linux</b>下部署<b class='flag-5'>NFS</b>服務
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>