Linux 配置NFS服务器

news2025/4/8 0:48:47

 1. 开放/nfs/shared目录,供所有用户查阅资料

服务端

(1)安装nfs服务,nfs-utils包中包含rpcbind(rpc守护进程)

[root@node1-server ~]# yum install -y nfs-utils  # nfs-utils包中包含rpcbind

[root@node1-server ~]# rpm -q rpcbind  # 检查rpcbind是否安装

(2)创建共享目录

[root@node1-server ~]# mkdir -p /nfs/shared  # -p 递归创建目录

[root@node1-server ~]# ll /nfs
total 0
drwxr-xr-x. 2 root root 6 Mar 27 10:08 shared

(3)关闭防火墙、selinux设置宽容模式、查看状态

[root@node1-server ~]# systemctl stop firewalld

[root@node1-server ~]# setenforce 0

[root@node1-server ~]# getenforce  # 查看selinux模式
Permissive  # 宽容模式

[root@node1-server ~]# systemctl status firewalld.service
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:firewalld(1)

(4)启动服务、设置开机自启、查看服务状态

[root@node1-server ~]# systemctl start nfs-server

[root@node1-server ~]# systemctl start rpcbind

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

[root@node1-server ~]# systemctl enable rpcbind

[root@node1-server ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services

[root@node1-server ~]# systemctl status rpcbind
● rpcbind.service - RPC Bind

(5)编辑/etc/exports文件

[root@node1-server ~]# vim /etc/exports  /etc/exports NFS服务的是核心配置文件,作用是对共享的目录、允许访问的客户端以及访问权限等信息进行配置
/nfs/shared *(ro)  # 将 /nfs/shared 目录共享出去,并且允许网络上的所有主机以只读权限访问该目录   *()中间没有空格

(6)重启服务

[root@node1-server ~]# exportfs -avr  # exportfs 用于管理 NFS共享目录 ; -a选项表示 “all”,即对 /etc/exports 文件中定义的所有共享目录执行相应操作 ; -v 选项代表 “verbose”,也就是详细模式 ; -r 选项意味着 “reexport”,即重新导出所有共享目录

客户端

(1)安装服务

[root@node2-client ~]# yum install -y nfs-utils

(2)启动服务

[root@node2-client ~]# systemctl start nfs-server.service

[root@node2-client ~]# systemctl start rpcbind

(3)关闭防火墙、selinux设置宽容模式、查看状态

[root@node1-client ~]# systemctl stop firewalld

[root@node1-client ~]# setenforce 0

[root@node1-client ~]# getenforce

[root@node1-client ~]# systemctl status firewalld.service

(4)查看服务端提供的nfs服务

[root@node2-client ~]# showmount -e 192.168.11.135  # 查询 IP 地址为192.168.11.135的 NFS 服务器当前共享的目录列表   showmount:获取其共享目录信息    -e:向指定的 NFS 服务器请求其当前共享的目录列表
Export list for 192.168.11.135:
/nfs/shared (everyone)

(5)创建挂载点、临时挂载、查看挂载设备

[root@node2-client ~]# mkdir -p /mnt/shared

[root@node2-client ~]# mount -t nfs 192.168.11.135:/nfs/shared /mnt/shared/  # -t:用于指定要挂载的文件系统类型  ;192.168.11.135是 NFS 服务器的 IP 地址 ;:/nfs/shared 表示该服务器上共享出来的目录路径

[root@node2-client ~]# df -h  # df:报告文件系统磁盘空间的使用情况 ; -h:将磁盘空间的容量以人类可读的格式显示出来
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    4.0M     0  4.0M   0% /dev
tmpfs                       866M     0  866M   0% /dev/shm
tmpfs                       347M  7.1M  340M   3% /run
/dev/mapper/rhel-root        15G  4.2G   11G  28% /
/dev/nvme0n1p2              960M  291M  670M  31% /boot
/dev/nvme0n1p1             1022M  7.0M 1016M   1% /boot/efi
tmpfs                       174M   52K  174M   1% /run/user/42
tmpfs                       174M   36K  174M   1% /run/user/0
192.168.11.135:/nfs/shared   15G  4.3G   11G  29% /mnt/shared

[root@node2-client ~]# ll -d /mnt/shared/  # -d:仅列出目录本身的信息,不递归列出目录内部的文件和子目录
drwxr-xr-x. 2 root root 6 Mar 27 10:08 /mnt/shared/


2. 开放/nfs/upload目录为x.x.x.0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为redhat,其UID与GID均为3000

服务端(开启服务同上,略)

(1)创建共享目录

[root@node1-server ~]# mkdir -p /nfs/upload

[root@node1-server ~]# ll /nfs/
total 0
drwxr-xr-x. 2 root root 6 Mar 27 10:08 shared
drwxr-xr-x. 2 root root 6 Mar 27 15:18 upload

(2)创建GID为3000的组redhat,创建GID和UID均为3000的用户redhat

[root@node1-server ~]# groupadd -g 3000 redhat  # 创建GID为3000的用户前必须要有一个GID为3000的组

[root@node1-server ~]# tail -1 /etc/group  # 查看最后一行组信息
redhat:x:3000:

[root@node1-server ~]# useradd -g 3000 -u 3000 redhat  # -g 指定GID   -u 指定UID

[root@node1-server ~]# tail -1 /etc/passwd  # 查看最后一行用户信息
redhat:x:3000:3000::/home/redhat:/bin/bash

[root@node1-server ~]# id redhat  # 查看redhat用户的id
uid=3000(redhat) gid=3000(redhat) groups=3000(redhat)

(3)编辑 /etc/exports 文件

[root@node1-server ~]# vim /etc/exports
/nfs/upload 192.168.11.0/24(rw,all_squash,anonuid=3000,anongid=3000)

# 将 /nfs/shared 目录共享出去,允许192.168.11.0网段中的所有主机以读写读权限访问该目录   ip网段和()中间没有空格 ;所有客户端用户(包括 root 用户)的身份都会被映射为 UID 和 GID 均为3000的匿名用户。

(4)修改共享目录 /nfs/upload 的所属组和所属用户

[root@node1-server ~]# chown -R redhat:redhat /nfs/upload/  # -R 修改一个目录及其内部所有子文件和子目录的所有者(递归修改)

[root@node1-server ~]# ll /nfs
total 0
drwxr-xr-x. 2 root   root   6 Mar 27 10:08 shared
drwxr-xr-x. 2 redhat redhat 6 Mar 27 15:18 upload

(5)重启服务

[root@node1-server ~]# exportfs -avr
exporting 192.168.11.0/24:/nfs/upload

客户端(开启服务同上,略)

(1)查看共享目录

[root@node2-client ~]# showmount -e 192.168.11.135  # 查询 IP 地址为192.168.11.135的 NFS 服务器当前共享的目录列表
Export list for 192.168.11.135:
/nfs/upload 192.168.11.0/24

(2)创建挂载点

[root@node2-client ~]# mkdir -p /mnt/upload

[root@node2-client ~]# ll /mnt
ls: cannot access '/mnt/shared': Stale file handle
total 0
drwxr-xr-x. 2 root root 6 Mar 24 17:34 hgfs
d?????????? ? ?    ?    ?            ? shared  # 由于服务端配置文件 /etc/exports 中已删除配置 /nfs/shared *(ro) ,故此处有未知信息
drwxr-xr-x. 2 root root 6 Mar 27 15:56 upload

(3)永久挂载

[root@node2-client ~]# vim /etc/fstab  # /etc/fatab 是一个非常重要的配置文件,用于定义文件系统的挂载点、挂载参数及其他相关属性;每次系统启动时,会自动读取该文件并挂载相应的文件系统

 16  192.168.11.135:/nfs/upload      /mnt/upload     nfs     defaults        0 0

# 192.168.11.135:/nfs/upload 指定了要挂载的 NFS 共享资源的位置

# /mnt/upload 本地系统上的一个挂载点,它是当前文件系统树中的一个目录

# nfs 指定了要挂载的文件系统类型

[root@node2-client ~]# mount -a  # mount -a会遍历 /etc/fstab 文件的每一行,并尝试挂载所有未被挂载的文件系统
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.

[root@node2-client ~]# df -h  # 查看挂载情况
df: /mnt/shared: Stale file handle
Filesystem                  Size  Used Avail Use% Mounted on
devtmpfs                    4.0M     0  4.0M   0% /dev
tmpfs                       866M     0  866M   0% /dev/shm
tmpfs                       347M  7.1M  340M   3% /run
/dev/mapper/rhel-root        15G  4.2G   11G  28% /
/dev/nvme0n1p2              960M  291M  670M  31% /boot
/dev/nvme0n1p1             1022M  7.0M 1016M   1% /boot/efi
tmpfs                       174M   52K  174M   1% /run/user/42
tmpfs                       174M   36K  174M   1% /run/user/0
192.168.11.135:/nfs/upload   15G  4.3G   11G  29% /mnt/upload

[root@node2-client ~]# ll -d /mnt/upload/  # 查看挂载情况 
drwxr-xr-x. 2 3000 3000 6 Mar 27 15:18 /mnt/upload/

(4)创建测试文件

[root@node2-client ~]# touch /mnt/upload/textfile.txt

[root@node2-client ~]# ll /mnt/upload/
total 0
-rw-r--r--. 1 3000 3000 0 Mar 27 16:05 textfile.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2325609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

塔能科技:用精准节能撬动社会效益的行业杠杆

在全球积极践行可持续发展理念的当下,能源高效利用与节能减排,已然成为各行各业实现高质量发展绕不开的关键命题。对企业来说,节能早已不是一道可做可不做的选择题,而是关乎生存与发展、社会责任与竞争力的必答题。塔能科技推出的…

Java 大视界 -- Java 大数据在自动驾驶高精度地图数据更新与优化中的技术应用(157)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

nginx https配置

一.https配置 HTTPS 协议是由HTTP 加上TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。 1.生成证书 openssl genrsa -des3 -out server.key 20…

每日一题洛谷P10901 [蓝桥杯 2024 省 C] 封闭图形个数c++

排序思想&#xff0c;只不过这时的排序与之前的略有不同&#xff0c;com函数中要先比较封闭图形再比较真实的大小&#xff0c;多了一步&#xff0c;但是原理还是一样的 #include<iostream> #include<algorithm> #include<vector> using namespace std; //统…

天锐蓝盾终端安全防护——企业终端设备安全管控

从办公室的台式电脑到员工手中的移动终端&#xff0c;这些设备不仅是工作的得力助手&#xff0c;更是企业数据的重要载体。然而&#xff0c;随着终端设备的广泛使用&#xff0c;安全风险也如影随形。硬件设备使用不当、数据随意传输等问题频发&#xff0c;使得企业数据面临着泄…

3.27学习总结 爬虫+二维数组+Object类常用方法

高精度&#xff1a; 一个很大的整数&#xff0c;以字符串的形式进行接收&#xff0c;并将每一位数存储在数组内&#xff0c;例如100&#xff0c;即存储为[1][0][0]。 p2437蜜蜂路线 每一个的路线数前两个数的路线数相加。 #include <stdio.h> int a[1005][1005]; int …

elementplus的el-tabs路由式

在使用 Element Plus 的 el-tabs 组件&#xff0c;实现路由式的切换&#xff08;即点击标签页来切换不同的路由页面&#xff09;。下面是一个基于 Vue 3 和 Element Plus 实现路由式 el-tabs 的基本步骤和示例。 步骤 1: 安装必要的库 在vue3项目安装 Vue Router 和 Element …

数据结构初阶:单链表

序言&#xff1a; 本篇博客主要介绍单链表的基本概念&#xff0c;包括如何定义和初始化单链表&#xff0c;以及如何进行数据的插入&#xff0c;删除和销毁等操作。 1.单链表 1.1 概念与结构 概念&#xff1a;链表是一种非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过…

RabbitMQ高级特性--TTL和死信队列

目录 1.TTL 1.1设置消息的TTL 1.1.1配置交换机&队列 1.1.2发送消息 1.1.3运行程序观察结果 1.2设置队列的TTL 1.2.1配置队列和交换机的绑定关系 1.2.2发送消息 1.2.3运行程序观察结果 1.3两者区别 2.死信队列 2.1 声名队列和交换机 2.2正常队列绑定死信交换机 …

Java后端开发: 如何安装搭建Java开发环境《安装JDK》和 检测JDK版本

文章目录 一、JDK的安装1、 打开 Oracle 官方网址2、点击产品 二、检测JDK是否安装成功以及JDK版本的查看1. 打开命令行窗口检测是否安装成功查看 JDK 版本 一、JDK的安装 1、 打开 Oracle 官方网址 Oracle官网地址:https://www.oracle.com/cn/ 2、点击产品 打开下载的JDK文件…

LabVIEW液压控制系统开发要点

液压控制系统开发需兼顾高实时性、强抗干扰性和安全性&#xff0c;尤其在重工业场景中&#xff0c;毫秒级响应延迟或数据异常都可能导致设备损坏。本文以某钢厂液压升降平台项目为例&#xff0c;从硬件选型、控制算法、安全机制三方面&#xff0c;详解LabVIEW开发中的关键问题与…

MFC添加免费版大漠3.1233

先创建一个MFC工程&#xff0c; 添加dm.dll 方法一&#xff1a;通过类向导-添加类-类型库中的MFC类-文件&#xff0c;选择dm.dll&#xff0c;如果没有"添加类型库中的MFC类"选项就用方法二添加 方法二&#xff1a;添加-新建项-MFC-Active或TypeLib-实现接口位置选…

vue 图片放大到全局

背景&#xff1a; 在vue项目中&#xff0c;el-image组件图片组件用于展示图片&#xff0c;组件自带的属性preview-teleported&#xff0c;设置为true可以控制图片放大到全局 实现效果&#xff1a; 核心代码&#xff1a; //图片地址&#xff1a;BASEUrl /file/ item.file //这…

在rockylinux9.4安装mongodb报错:缺少:libcrypto.so.10文件库

问题点&#xff1a; rockylinux9.4系统环境报错&#xff1a; ./mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory 解决方法&#xff1a; Ps&#xff1a;解压之后&#xff0c;检查mongodb的依赖环境…

【力扣hot100题】(019)旋转图像

比较考验脑子转不转得过来&#xff0c;最好先在纸上画一下图整理思路&#xff0c;不要和我一样上来就无脑套循环。 理解了思路还是好做的&#xff0c;每个小循环转一圈&#xff0c;大循环代表转的第几圈。小循环循环n-2i-1次&#xff0c;大循环循环&#xff08;n1&#xff09;…

06_约束

文章目录 一、是什么二、实体完整性约束2.1、主键约束2.2、主键自增长2.3、唯一约束 三、域完整性约束3.1、非空约束3.2、默认值 四、引用完整性约束 一、是什么 用于限制加入表的数据的类型和规范&#xff0c;约束是添加在列上的&#xff0c;用来约束列的。 分类&#xff1a; …

Seata AT模式的一些常见问题及其源码解析

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 Seata AT 基于两阶段提交协议的演变&#xff1a; 一阶段&#xff1a;业…

2025年3月29日(matlab -ss -lti)

线性时不变系统&#xff08;LTI系统&#xff09;的定义与核心特性 线性时不变系统&#xff08;Linear Time-Invariant System&#xff09;是信号与系统分析中的基础模型&#xff0c;其核心特性包括线性和时不变性。以下从定义、验证方法和应用场景展开说明&#xff1a; 1. 线性…

网络原理-TCP/IP

网络原理学习笔记&#xff1a;TCP/IP 核心概念 本文是我在学习网络原理时整理的笔记&#xff0c;主要涵盖传输层、网络层和数据链路层的核心协议和概念&#xff0c;特别是 TCP, UDP, IP, 和以太网。 一、传输层 (Transport Layer) 传输层负责提供端到端&#xff08;进程到进…

第五十三章 Spring之假如让你来写Boot——环境篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…