1、概述

NFS(Network File System):是在 UNIX(Linux)系统中最流行的网络文件系统,其功能是通过网络让不同的机器(或操作系统)可以共享彼此的文件或目录。

2、相关依赖组件

在使用 NFS 之前,服务端(提供共享文件或目录的一方)和客户端(使用共享文件或目录的一方)都需要先安装 rpcbind 和 nfs-utils 依赖组件。

2.1、确认已安装rpcbind

rpm -qa | grep rpcbind

如果还没安装 rpcbind 依赖组件,请参考 CentOS-7离线安装rpcbind

2.2、确认已安装nfs-utils

rpm -qa | grep nfs-utils

如果还没安装 nfs-utils 依赖组件,请参考 CentOS-7离线安装nfs-utils

注意:在安装 nfs-utils 依赖组件之前,必须先安装 rpcbind 依赖组件;一般来说,CentOS-7 已默认安装 rpcbind 依赖组件,只需要 nfs-utils 依赖组件即可。

3、服务端操作

3.1、创建共享目录

如上图所示,(本例)在服务端(提供共享文件或目录的一方)的根目录“/”,创建了一个目录,用于和客户端共享。

mkdir 共享目录名称

3.2、编辑配置文件

vi /etc/exports

共享目录路径 *(rw,no_root_squash,insecure,sync)

注意:如果需要进行网段限制,“*”改为对应网段,例如:

共享目录路径 192.168.56.0/24(rw,no_root_squash,insecure,sync)

参数 说明
rw 共享目录的访问权限为可读可写(read-write),实际权限还和文件系统的 rwx 权限以及用户身份有关
ro 共享目录的访问权限为只读(read-only)
no_root_squash 允许客户端以 root 身份访问共享目录
root_squash 客户端的 root 身份会被切换成和 anonymous 匿名用户身份一样的权限
insecure 允许 nfs 服务使用比 1024 更大的端口号
secure nfs 服务只能使用 1024 以内的端口号
sync 数据同步写入到内存与硬盘中
async 数据先暂存在内存当中,不直接写入硬盘

3.3、确认rpcbind服务已开启

systemctl status rpcbind
命令 说明
systemctl status rpcbind 查看 rpcbind 服务运行状态
systemctl start rpcbind 启动 rpcbind 服务
systemctl restart rpcbind 重启 rpcbind 服务
systemctl enable rpcbind 设置 rpcbind 服务开机自启动

3.4、重启nfs服务

systemctl restart nfs
命令 说明
systemctl status nfs 查看 nfs 服务运行状态
systemctl start nfs 启动 nfs 服务
systemctl restart nfs 重启 nfs 服务
systemctl enable nfs 设置 nfs 服务开机自启动

3.5、开启防火墙

firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload

3.6、相关监测命令

命令 说明
nfsstat 查看NFS的运行状态
rpcinfo 查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可查看出RPC开启的端口所提供的程序

4、客户端操作

4.1、确认rpcbind服务已开启

systemctl status rpcbind
命令 说明
systemctl status rpcbind 查看 rpcbind 服务运行状态
systemctl start rpcbind 启动 rpcbind 服务
systemctl restart rpcbind 重启 rpcbind 服务
systemctl enable rpcbind 设置 rpcbind 服务开机自启动

4.2、启动nfs服务

systemctl start nfs
命令 说明
systemctl status nfs 查看 nfs 服务运行状态
systemctl start nfs 启动 nfs 服务
systemctl restart nfs 重启 nfs 服务
systemctl enable nfs 设置 nfs 服务开机自启动

4.3、创建共享目录挂载点

如上图所示,(本例)在客户端(使用共享文件或目录的一方)的“/root”目录下,创建了一个目录,用于挂载服务端的共享目录。

mkdir 共享目录挂载点名称

4.4、挂载服务端共享目录

mount -t nfs 服务端IP地址:/服务端共享目录路径 客户端挂载点路径

注意:如果(普通用户)挂载共享目录时报错“mount.nfs: failed to apply fstab options”,则需要使用 sudo 权限执行该挂载命令。

4.5、确认挂载情况

如上图所示,已实现服务器之间的文件(目录)共享。

df -h

4.6、解除挂载的命令

umount 客户端挂载点路径

本文参考

【1】【Word哥】【Linux下NFS服务的安装与配置】【CSDN】【2020-08-05】

【2】【Jason_huawen】【NFS文件共享时报错的解决方法】【博客园】【2022-11-09】

【3】【我真的啥也不会】【NFS配置及开机自动挂载】【博客园】【2022-03-06】

CentOS-7 通过 NFS 实现服务器之间的文件(目录)共享的更多相关文章

  1. 如何在Linux上使用scp命令进行服务器之间的文件/目录传输

    1. 本地上传文件到远程: scp [local_file_path] [username]@[server_ip]:[remote_dir] 2. 本地上传目录到远程: scp -r [local_ ...

  2. Linux命令(20)linux服务器之间复制文件和目录

    linux的scp命令: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上 ...

  3. Linux 两台服务器之间传输文件和文件夹

    今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...

  4. 在linux服务器之间复制文件和目录命令scp

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  5. linux的scp命令可以在linux服务器之间复制文件和目录

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  6. Linux scp命令详解(服务器之间复制文件或目录)

    scp:服务器之间复制文件或目录 一.命令格式: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] ...

  7. linux服务器之间传输文件的四种方式

    linux文件传输在内网渗透中至关重要,所以我在此总结一下几种Linux服务器之间传输文件的四种方式 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法]scp就是se ...

  8. vm虚拟机Kali2.0实现与物理机之间的文件拖动共享

    MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...

  9. CentOS 下实现两台服务器之间的共享NFS

    NFS的安装配置:centos 5 :yum install nfs-utils portmapcentos 6 :yum install nfs-utils rpcbind yum install ...

  10. 阿里云两台服务器之间拷贝文件命令scp

    参考:云栖社区 不同的Linux之间copy文件通常有4种方法 1.ftp 2.samba服务 3.sftp 4.scp 最简单的方法就是scp,可以理解为ssh管道下的cp命令 把当前一个文件cop ...

随机推荐

  1. glib-2.60在win64,msys2下编译

    前阵子,工作原因,需要在win7 64下的msys2来编译glib,下面是一些踩过的坑: 事先声明一下,这些个解决方式及纯粹是为了编译通过,可能有些做法不太适合一些需要正常使用的场合,烦请各位注意下. ...

  2. centos安装php环境

    安装 PHP 所需扩展 yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcur ...

  3. bee must have one register DataBase alias named `default`

    bee must have one register DataBase alias named default 在你初始化db,注册默认数据库时,看看你是否import初始化注册数据库驱动driver ...

  4. 当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系

    <当Kafka化身抽水马桶:论组件并发提升与系统可用性的量子纠缠关系> 引言:一场OOM引发的血案 某个月黑风高的夜晚,监控系统突然发出刺耳的警报--我们的数据发现流水线集体扑街.事后复盘 ...

  5. [每日算法 - 华为机试] 剑指 Offer 57 - II. 和为s的连续正数序列 「滑动窗口」

    入口 力扣https://leetcode.cn/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/ 题目描述 输入一个正整数 target ,输出所 ...

  6. 区块链特辑——solidity语言基础(一)

    Solidity语法基础学习 一.智能合约的结构: 首先以上是智能合约的结构,包含版权宣告.编译指示.Using for 宣告.错误定义.输入.列举与枚举.常数.合约.函数.注释.第一个注释不同于其他 ...

  7. FDMemtable如何增加一条自身复制的记录

    procedure TFrame_Bill.CopyARecord; var lAFDmemtable : TFDMemTable; begin {$REGION '增加一条复制的记录'} try l ...

  8. go: no such tool "compile"(记录)

    这是一次离谱问题和胡搞一通莫名解决的记录 背景:win11系统下,原有的go1.18更新到go1.19后出现了莫名的go: no sucn tool "compile"的情况. 当 ...

  9. Rocketmq 如何保证消息的可用性/可靠性/不丢失呢 ?

    如何保证消息的可用性/可靠性/不丢失呢 ? 消息可能在哪些阶段丢失呢?可能会在这三个阶段发生丢失:生产阶段.存储阶段.消费阶段 生产阶段 在生产阶段,主要通过请求确认机制,来保证消息的可靠传递 1.同 ...

  10. python调用百度ocr接口,实现图片内文字识别

    第一步,到百度智能云申请接口资源 打开地址:https://cloud.baidu.com/?from=console,点击产品下的通用场景文字识别 立即使用,跳转页领取免费资源(土豪可直接购买) 选 ...