Kylin麒麟操作系统服务部署 | NFS服务部署
以下所使用的环境为:
虚拟化软件:VMware Workstation 17 Pro
麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64
一、 NFS服务概述
NFS(Network File System),即网络文件系统。是一种使用于分散式文件协议通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。NFS在文件传输或信息传输的过程中,依赖于RPC协议。RPC(Remote Procedure Call),即远程过程调用。是客户端能够执行其它系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,能实现基于网络的资料共享,是因为NFS使用了PRC提供的传输协议,可以说NFS是RPC的一个程序。NFS一般使用在中小型网站集群后端存储,存储一些静态的资源(如图片、附件)。如果是大型网站,则会使用mooseFS-mfs。在企业应用中,使用FastDFS-fastdfs较多。
NFS可以通过网络让不同的机器、不同的操作系统彼此分享文件。当用户想使用远程文件时,只要用mount命令就可以把远程文件系统挂载到自己的文件系统下。NFS支持的功能很多,不同的功能使用不同的程序来启动,并且会主动向RPC服务注册所采用的端口和功能信息。RCP服务使用固定端口111监听来着NFS客户端的请求。
二、RPC守护进程
NFS服务依赖于RPC服务,至少需要启动3个系统守护进程。
- **nfsd:**NFS的守护进程,主要功能是管理客户端是否能够登录服务器
- mountd:RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务后,在使用NFS服务所提供的凭证前,还必须通过文件使用权限的验证。读取NFS的配置文件/etc/exports来比对客户端的权限。
- rpcbind:进行端口映射。当客户端尝试连接并使用RPC服务器提供的服务,rpcbind 会将所管理的端口(服务对应的端口)提供给客户端,从而使客户可以通过该端口向服务器请求服务。
三、NFS软件包
1.RPC主程序:rpcbind
在启动RPC服务之前,需要做好端口的映射工作。在启动任何一个RPC服务之前,都需要启动rpcbind。
查看本机是否安装rpcbind,可以看到rpcbind是默认安装好,但是未启动、未加入开机自启

2. NFS主程序:nfs-utils
提供rpc.nfsd和rpc.mountd这两个NFS daemons 和其他相关文档、说明文件、执行文件等。
查看本机是否安装nfs-utils,默认已经安装

3. 管理NFS目录列表:exportfs
exportfs命令需要参考配置文件/etc/exports。
常用参数
| 参数 | 说明 |
|---|---|
| -a | 输出配置文件中的内容,或全选配置文件中目录 |
| -r | 重新读取配置文件中的设置,并立即生效,无需重启服务 |
| -u | 卸载某一个目录 |
| -v | 显示共享目录 |
4. 客户端查询指令:showmount
exportfs 是NFS服务端所使用的命令,而 showmount 主要用在Client端。showmount 可以用来查看 NFS 服务器共享出来的目录。
通过查询可以发现 showmount 是由 nfs-utils 软件包提供的

查询服务端的共享
showmount -e 192.168.110.1
四、NFS配置文件
NFS服务器共享目录时所使用的配置文件为 /etc/exports,文件默认不存在,需要手动创建
/share 192.168.110.0/24(ro)
/share 192.168.110.0/24(ro) 192.168.120.0/24(rw) # 存在多个客户端,以空格分隔
- /share:共享目录的绝对路径
- 192.168.110.0/24:允许访问的客户端
- ro:只读,共享选项,可设置其他文件访问权限
客户端常用配置
| 客户端配置 | 说明 |
|---|---|
| 192.168.110.1 | 指定主机 |
| 192.168.110.1/24 192.168.110.* | 指定网段 |
| www.meaauf.com | 指定域名 |
| *.meaauf.com | 指定域 |
| * | 所有主机 |
权限选项
当客户端在挂载NFS服务器共享目录时,会根据NFS服务器的权限选项来设置共享权限。
| 访问权限选项 | 说明 |
|---|---|
| ro | 只读 |
| rw | 读写 |
NFS用户映射选项
| 选项 | |
|---|---|
| all_squash | 将远程用户访问的所有普通用户和其所属用户组都映射为匿名用户或用户组(nobody) |
| no_all_squash | 不将远程访问的普通用户和其所属组映射为匿名用户或用户组【默认】 |
| root_squash | 将root用户和所属用户组映射为匿名用户或用户组【默认】 |
| no_root_squash | 不将root用户和所属用户组映射为匿名用户或用户组 |
| anonuid=xxx | 将远程访问的所有用户都映射为匿名用户,指定该匿名用户账号的UID(匿名用户为服务端的本地账户) |
| anongid=xxx | 将远程访问的所有用户组都映射为匿名组,指定该匿名组账号的UID(匿名组为服务端的本地组) |

NFS其他访问权限
| 选项 | |
|---|---|
| secure | 限制客户端只能从小于1024的TCP/IP端口连接NFS服务器【默认】 |
| insecure | 允许客户端从大于1024的TCP/IP端口连接NFS服务器 |
| sync | 将数据同步写入内存缓存区和磁盘中,效率降低,可以保证数据一致性 |
| async | 将数据先保存在内存缓冲区,必须时才写入磁盘 |
| wdelay | 检测是否存在相关的写操作,将这些写操作一起执行,提高效率【默认】 |
| no_wdelay | 有写操作则立即执行,应该与sync一起使用 |
| subtree-check | 如果输出目录是一个子目录,则NFS服务器将检查其父目录的权限【默认】 |
| no_subtree_check | 输出目录是一个子目录,NFS不会检查其父目录的权限,提高效率 |
五、NFS服务器部署
案例需求
- 将Kylin-1搭建为内网YUM服务器,为Kylin-2通软件包
- 在Kylin-1上开启NFS服务,共享路径为YUM仓库目录
- 仅允许Kylin-2访问目录,权限为读写
节点设置
| 主机 | 网络信息 | 说明 |
|---|---|---|
| Kylin-1 | 192.168.110.1/24 | NFS服务器 |
| Kylin-2 | 192.168.110.2/24 | 测试客户端 |
[Step1]: Kylin-1配置:安装所需软件
yum install -y nfs-utils rpcbind

[Step2]: Kylin-1配置:编辑配置文件
vim /etc/exports# 写入下列内容
/mnt/cdrom 192.168.110.2(rw)
[Step3]: Kylin-1配置:查看rpcbind服务状态,默认状态为关闭

[Step4]: Kylin-1配置:启动rpcbind和nfs-server,并加入开机自启,调整防火墙策略
systemctl enable --now rpcbind.service
systemctl enable --now nfs-server.service
firewall-cmd --add-service=rpc-bind --permanent # 防火墙需要放行NFS的三个组件
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --reload
[Step5]: Kylin-1验证:查看NFS的权限目录,可以看到所有默认配置
cat /var/lib/nfs/etab

[Step6]: Kylin-1验证:查看本地NFS共享目录
exportfs -a

[Step7]: Kylin-1验证:显示本地系统中注册到rpcbind协议版本2的所有RPC服务
rpcinfo -p localhost

[Step8]: Kylin-2配置:启动RPC守护进程和nfs服务
systemctl enable --now nfs-server.service
systemctl enable --now rpcbind.service
[Step9]: Kylin-2验证:查看服务端的全部共享目录
showmount -e 192.168.110.1

[Step10]: Kylin-2验证:新建目录/mnt/nfs,将目录挂载到/mnt/nfs(挂载点需要提前创建)
mkidr /mnt/nfs
mount 192.168.110.1:/mnt/cdrom /mnt/nfs

[Step11]: Kylin-2配置:配置yum仓库文件,将原有的仓库文件备份
cd /etc/yum.repos.d/
mv kylin_x86_64.repo{,.bak}
vim nfs.repo# 输入下列内容
[yum]
name=yum
baseurl=file:///mnt/nfs
enabled=1
gpgcheck=0
[Step12]: Kylin-2配置:清除YUM的缓存目录,重新创建缓存数据
yum clean all # 清除YUM的缓存目录
yum makecache # 重新创建缓存数据

[Step13]: Kylin-2验证:尝试下载vsftpd

[Step14]: Kylin-2配置:将NFS共享写入配置文件中,以实现开机自动挂载
vim /etc/fstab# 追加下列内容
192.168.110.1:/mnt/cdrom /mnt/nfs nfs4 defaults 0 0
[Step15]: Kylin-2配置:客户端卸载NFS挂载
umount /mnt/nfs # 如果显示[device is busy],可以添加 -lf 参数强制卸载
六、autofs自动挂载
autofs自动挂载文件系统服务,需要后台automount进程支持。缺省配置下,客户端的NFS访问在系统重启后就消失了;如果将挂载写入/etc/fstab文件中,会实现永久挂载,即使不访问,该挂载点仍然是存在;autofs可以实现按需挂载,当你访问该目录时会自动挂载,超时会自动卸载。挂载点也无需提前新建,autofs会自动帮我们新建该目录。
autofs服务的配置文件
-
/etc/auto.master:主配置文件
-
/etc/auto.xxx:映射文件,文件必须以auto开头,后缀无任何要求
默认情况下,麒麟操作系统的镜像中不存在autofs的安装包

主配置文件的编写方式:
/misc /etc/auto.misc # autofs提供给我们的示例文件
- /misc:挂载点的父目录
- /etc/auto.misc:挂载点的映射文件
查看挂载点的映射文件 /etc/auto.misc

[Step1]: 为了方便后续实验,此处重新设置一个NFS共享
mkdir /share
vim /etc/exports# 写入下列内容,经过测试好像[192.168.110.*]无法匹配该网段
/share 192.168.110.0/24(rw)
[Step2]: 重新读取配置文件
exportfs -r

七、Kylin桌面版autofs配置
麒麟操作系统桌面版基于Ubuntu,包管理工具使用的是apt。
案例需求
- 在Kylin-1上存在1个NFS共享,共享的目录为 /mnt/cdrom
- 将共享的目录挂载到 Desktop 上的 /mnt/nfsshare
- 共享权限为读写
节点设置
| 主机 | 网络信息 | 说明 |
|---|---|---|
| Kylin-1 | 192.168.110.1/24 | NFS服务器 |
| Desktop | 192.168.110.4/24;外网网卡(访问外网) | Kylin V10桌面版 |
[Step1]: 安装nfs-common
sudo apt install -y nfs-common
> 输入当前用户密码

[Step2]: 启动rpc守护进程和NFS服务
sudo systemctl start rpcbind
sudo systemctl start nfs-client.target
[Step3]: 显示NFS服务器的共享信息
showmount -e 192.168.110.1
[Step4]: 安装autofs服务
sudo apt-get install autofs
[Step5]: 编辑autofs主配置文件
sudo vim /etc/auto.master# 写入下列内容,/mnt为挂载点的父目录
/mnt /etc/auto.mnt
[Step6]: 将示例文件拷贝为映射文件,编辑映射文件
sudo cp /etc/auto.misc /etc/auto.mnt
sudo vim /etc/auto.mnt# 写入下列内容
nfsshare -fstype=nfs,rw 192.168.110.1:/share

[Step7]: 查看/mnt目录,可以看到此时不存在任何目录。启动autofs服务后,会自动创建该目录
sudo systemctl start autofs

八、Kylin服务器版autofs配置
麒麟操作系统服务器版的的镜像源中默认不存在autofs安装包,需要连接互联网使用第三方源。
案例需求
- 在Kylin-1上存在1个NFS共享,共享的目录为 /mnt/cdrom
- 将共享的目录挂载到 Desktop 上的 /mnt/nfsshare
- 共享权限为读写
节点设置
| 主机 | 网络信息 | 说明 |
|---|---|---|
| Kylin-1 | 192.168.110.1/24 | NFS服务器 |
| Kylin-3 | 192.168.110.3/24;外网网卡(访问外网) | Kylin服务器版 |
[Step1]: 安装rpcbind和nfs-utils
yum install -y rpcbind nfs-utils
[Step2]: 启动rpc守护进程和nfs服务
systemctl start rpcbind.service
systemctl start nfs.service
[Step3]: 查看NFS服务器的共享
showmount -e 192.168.110.1

[Step4]: 安装autofs服务
yum install -y autofs
[Step5]: 编辑autofs主配置文件
vim /etc/auto.master# 写入下列内容
/mnt /etc/auto.mnt
[Step6]: 编辑autofs映射文件
cp /etc/auto.misc /etc/auto.mnt
vim /etc/auto.mnt# 修改内容如下
nfsshare -fstype=nfs,rw 192.168.110.1:/share

[Step7]: 查看mnt目录内容,可以看到为空。启动autofs服务并加入到开机自启,然后访问挂载点目录,此时mnt目录下会自动创建挂载点
ll /mnt/
systemctl enable --now autofs.service
ll /mnt/nfsshare

相关文章:
Kylin麒麟操作系统服务部署 | NFS服务部署
以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、 NFS服务概述 NFS(Network File System),即网络文件系统。是一种使用于…...
如何配置虚拟机IP?
以下是在虚拟机中配置IP地址的一般步骤,以常见的Linux虚拟机为例: 查看当前网络配置 使用命令 ifconfig 或 ip addr show 查看当前虚拟机的网络接口及相关配置信息,确定要配置IP的网络接口名称,如 eth0 或 ens33 等。 编辑网…...
十一、Spring Boot:使用JWT实现用户认证深度解析
Spring Boot JWT(JSON Web Token):无状态认证 在现代 Web 开发中,无状态认证是一种重要的安全机制,它允许服务器在不存储会话信息的情况下验证用户身份。JSON Web Token(JWT)是一种常用的无状态…...
涨薪技术|持续集成Git使用详解
Git介绍 Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 的特点: 分支更快、更容易。 支持离线工作;本地提交可以稍后提交到服务器上。 Git 提交都是原子的,且是整个项目范围的,…...
批量对 Word 优化与压缩,减少 Word 文件大小
在编辑 Word 文档的时候,我们通常会插入一些图片或者一些样式,这可能会导致 Word 文档的体积变得非常的庞大,不利于我们对 Word 文档进行分享、传输或者存档等操作,因此我们通常会碰到需要优化或者压缩 Word 文档的需求。那如何才…...
CSS定位详解上
1. 相对定位 1.1 如何设置相对定位? 给元素设置 position:relative 即可实现相对定位。 可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。 1.2 相对定位的参考点在哪里? 相对自己原来的位置 1.3 相对定位的特点࿱…...
DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨
文章目录 一、DeepSeek:知识图谱与高效信息检索1. 核心技术2. 主要特点3. 应用场景4. 实际案例 二、Grok:通用人工智能框架1. 核心技术2. 主要特点3. 应用场景4. 实际案例 三、ChatGPT:聊天机器人与通用对话系统1. 核心技术2. 主要特点3. 应用…...
Unix Domain Socket和eventfd
在Linux开发中,Unix Domain Socket和eventfd是两种不同的通信机制,它们的设计目标和适用场景有显著差异。以下分点解释并配合示例说明: 一、Unix Domain Socket(UDS) 1. 是什么? 一种**本地进程间通信&am…...
【万字长文】基于大模型的数据合成(增强)及标注
写在前面 由于合成数据目前是一个热门的研究方向,越来越多的研究者开始通过大模型合成数据来丰富训练集,为了能够从一个系统的角度去理解这个方向和目前的研究方法便写了这篇播客,希望能对这个领域感兴趣的同学有帮助! 欢迎点赞&…...
2025年能源工作指导意见
2025年是“十四五”规划收官之年,做好全年能源工作意义重大。为深入贯彻落实党中央、国务院决策部署,以能源高质量发展和高水平安全助力我国经济持续回升向好,满足人民群众日益增长的美好生活用能需求,制定本意见。 一、总体要求…...
【Elasticsearch】Elasticsearch 中使用 HDFS 存储快照
在 Elasticsearch 中使用 HDFS 存储快照的步骤如下: 1.安装 HDFS 插件 要使用 HDFS 存储 Elasticsearch 的索引快照,需要在 Elasticsearch 集群的所有节点上安装 HDFS 插件。 • 在线安装:适用于网络环境良好的场景,执行以下命…...
Oracle 数据库基础入门(四):分组与联表查询的深度探索(下)
在 Oracle 数据库的操作中,联合查询与子查询是获取复杂数据的关键手段。当单表数据无法满足业务需求时,联合查询允许我们从多张表中提取关联信息,而子查询则能以嵌套的方式实现更灵活的数据筛选。对于 Java 全栈开发者而言,掌握这…...
深搜专题6:迷宫问题
描述 设有一个N*N方格的迷宫,入口和出口分别在左上角和右上角。 迷宫格子中分别放有0和1,0表示可通,1表示不能,迷宫走的规则如下: 即从某点开始,有八个方向可走,前进方格中数字为0时表示可通过…...
【每日学点HarmonyOS Next知识】web滚动、事件回调、selectable属性、监听H5内部router、Grid嵌套时高度设置
【每日学点HarmonyOS Next知识】web滚动、事件回调、selectable属性、监听H5内部router、Grid嵌套时高度设置 1、HarmonyOS WebView加载url无法滚动? scroll 里面嵌套webView,demo参考: // xxx.ets import web_webview from ohos.web.webv…...
MacBook上API调⽤⼯具推荐
在当今的软件开发中,API调用工具已经成为了开发者不可或缺的助手。无论是前端、后端还是全栈开发,API的调试、测试和管理都是日常工作中的重要环节。想象一下,如果没有这些工具,开发者可能需要手动编写复杂的CURL命令,…...
如何构建一个 Docker 镜像?
1. 创建 Dockerfile 文件 (1)选择工作目录 首先,创建一个项目目录,并进入该目录: mkdir my-docker-project cd my-docker-project(2)创建 Dockerfile 使用任何文本编辑器(如 nano、…...
【数据结构】LRUCache|并查集
目录 一、LRUCache 1.概念 2.实现:哈希表双向链表 3.JDK中类似LRUCahe的数据结构LinkedHashMap 🔥4.OJ练习 二、并查集 1. 并查集原理 2.并查集代码实现 3.并查集OJ 一、LRUCache 1.概念 最近最少使用的,一直Cache替换算法 LRU是Least Recent…...
go数组的声明和初始化
1.数组简介 数组是可以存放多个同一类型的数据。数组也是一种数据类型,在go中,数组是值类型。数组的长度也是数组类型的一部分,所以[2]int和[3]int属于不同的数据类型。 2.数组的长度也是类型的一部分 var arr1 [2]intvar arr2 [3]intfmt.P…...
基于STM32的智能家居中控系统
基于STM32的智能家居中控系统 下载源文件 链接:博客 第1章 绪论 1.1 研究背景与意义(扩增至1500字) • 市场数据支撑:引用IDC报告数据显示,中国智能家居设备市场年增长率达25%(2022年市场规模超6500亿元) …...
初识Qt · 信号与槽 · 基础知识
目录 前言: 信号和槽初识 两个问题 前言: 本文我们正式开始介绍信号与槽这个概念,在谈及Qt中的信号与槽这个概念之前,我们不妨回顾一下Linux中的信号,比如发生了除0错误,OS就会给该进程发送一个信号&am…...
Java高频面试之集合-03
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:说说ArrayList和LinkedList的区别 ArrayList 与 LinkedList 的详细对比 一、底层数据结构 特性ArrayListLinkedList存…...
常用的分布式ID设计方案
常用的分布式ID设计方案 在分布式系统中,生成全局唯一的ID是一个常见的需求。无论是数据库表中的主键,还是消息队列的消息ID,都需要一个高效且可靠的唯一标识符。本文将探讨几种常用的分布式ID设计方案,并分析它们的优缺点。 1. …...
宇树科技再落一子!天羿科技落地深圳,加速机器人创世纪
2025年3月5日,机器人行业龙头宇树科技(Unitree)在深圳再添新动作——全资子公司深圳天羿科技有限公司正式成立。这家注册资本10万元、法定代表人周昌慧的新公司,聚焦智能机器人研发与销售,标志着宇树科技在华南市场的战…...
【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)
背景: 已经用这个脚本的记得设置Wifi时候,关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开,一天要重新连接,点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本,那样我就可以解放双手&…...
基于遗传算法的无人机三维路径规划仿真步骤详解
基于遗传算法的无人机三维路径规划仿真步骤详解 一、问题定义 目标:在三维空间内,寻找从起点到终点的最优路径,需满足: 避障:避开所有障碍物。路径最短:总飞行距离尽可能短。平滑性:转折角度不宜过大,降低机动能耗。输入: 三维地图(含障碍物,如立方体、圆柱体)。起…...
【Elasticsearch】索引生命周期管理相关的操作(Index Lifecycle Actions)
Elasticsearch 的Index Lifecycle Management(ILM)是一种用于管理索引生命周期的工具,它允许用户根据索引的使用阶段(如热、温、冷、冻结)自动执行一系列操作。以下是详细解释 Elasticsearch 中的索引生命周期操作(Index Lifecycl…...
计算机毕业设计SpringBoot+Vue.js电商平台(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理
华为w515麒麟芯片版,还有非麒麟芯片版本,是一款信创电脑,一般安装的UOS系统。 准备一个空U盘,先下载镜像文件及启动盘制作工具,连接如下: 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…...
初始提示词(Prompting)
理解LLM架构 在自然语言处理领域,LLM(Large Memory Language Model,大型记忆语言模型)架构代表了最前沿的技术。它结合了存储和检索外部知识的能力以及大规模语言模型的强大实力。 LLM架构由外部记忆模块、注意力机制和语…...
Vue+el-upload配置minIO实现大文件的切片并发上传、上传进度展示、失败重试功能
vue3el-upload实现切片上传 效果图 初始界面 上传中的界面 上传完成的界面 上传失败的界面 <template><div><el-uploadclass"BigFileUpload"ref"uploadRef"action"#"drag:show-file-list"false":on-change"…...
