centos9 stream安装nfs服务器并实现windows客户端挂载

2023-10-13 08:40

本文主要是介绍centos9 stream安装nfs服务器并实现windows客户端挂载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NFS是Network File System的简写,即网络文件系统. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS服务是C/S架构的服务。

以下为通用的安装步骤:

1、服务端软件安装

服务端需要nfs-utils和rpcbind两个软件

安装命令如下所示:

yum -y install nfs-utils rpcbind

对于开启了防火墙的服务器,需要开启对应的端口放行才能正常使用相关服务,可参照其他文档资料,这里不再详述。

2、检查和启动服务:

nfs服务运行需要保证rpcbind.servicenfs-server.service两个服务是正常运行状态

使用以下两条命令查看服务的运行状态

systemctl status rpcbind.service
systemctl status nfs-server.service

使用以下两条命令启动和开机启动服务

systemctl enable rpcbind && systemctl start rpcbind 
systemctl enable nfs-server && systemctl start nfs-server

3、创建共享目录并修改配置文件

以下是创建共享目录命令

mkdir -p /data/nfs
chmod 777 /data/nfs

为了避免windows系统客户端连接时出现的问题,可以给共享目录赋予777权限(在公开网络中不建议使用)

接下来编辑配置文件,加入对应共享目录等配置,命令及相关说明如下所示:

vim /etc/exports /data/nfs 172.17.111.0/24(rw,no_root_squash,no_all_squash,sync)常见的参数则有:
参数值                               内容说明
rw  ro                             该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
sync  async    sync                代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
no_root_squash  root_squash        客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
all_squash    不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
anonuid  anongid    anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。

使用下面的命令使配置生效

exportfs -r

使用下面的命令查看RPC服务的注册情况

rpcinfo -p localhost

以下是演示服务器显示内容

   program vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100005    1   udp  20048  mountd100005    1   tcp  20048  mountd100005    2   udp  20048  mountd100005    2   tcp  20048  mountd100005    3   udp  20048  mountd100005    3   tcp  20048  mountd100024    1   udp  58344  status100024    1   tcp  46691  status100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100021    1   udp  54893  nlockmgr100021    3   udp  54893  nlockmgr100021    4   udp  54893  nlockmgr100021    1   tcp  39389  nlockmgr100021    3   tcp  39389  nlockmgr100021    4   tcp  39389  nlockmgr

可以使用以下命令来查看服务是否已经正常运行

showmount -e localhost

以下是演示服务器显示内容及相关参数说明

Export list for localhost:
/data/nfsdir 10.168.186.0/24选项与参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。

4、linux客户端相关配置

安装相关客户端软件

centos系统使用如下命令:

yum -y install nfs-utils

ubuntu系统使用如下命令:

sudo apt install nfs-common

创建挂载目录、查看挂载对象、挂载共享盘

以下是对应的命令:

mkdir /data/testnfs                                   #创建挂载目录
showmount -e 10.168.188.226                           #显示可挂载的目录
mount -t nfs 10.168.188.226:/data/nfs /data/testnfs   #挂载对应目录
df -h                                                 #查看挂载结果
umount /data/testnfs                                  #卸载已经挂载的目录

以下是测试服务器的相关测试数据:

showmount -e 10.168.188.226
Export list for 10.168.188.226:
/data/nfsdir 10.168.188.0/24,10.168.186.0/24df -h
文件系统                     容量  已用  可用 已用% 挂载点
udev                         3.9G     0  3.9G    0% /dev
tmpfs                        788M  3.4M  785M    1% /run
/dev/sda1                    116G   28G   82G   26% /
tmpfs                        3.9G     0  3.9G    0% /dev/shm
tmpfs                        5.0M  4.0K  5.0M    1% /run/lock
tmpfs                        3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/loop0                   128K  128K     0  100% /snap/bare/5
/dev/loop4                    56M   56M     0  100% /snap/core18/2560
/dev/loop3                   219M  219M     0  100% /snap/gnome-3-34-1804/77
/dev/loop7                    62M   62M     0  100% /snap/core20/1611
/dev/loop8                   219M  219M     0  100% /snap/gnome-3-34-1804/72
/dev/loop9                   401M  401M     0  100% /snap/gnome-3-38-2004/112
/dev/loop10                  347M  347M     0  100% /snap/gnome-3-38-2004/115
/dev/loop12                   82M   82M     0  100% /snap/gtk-common-themes/1534
/dev/loop14                   92M   92M     0  100% /snap/gtk-common-themes/1535
tmpfs                        788M   16K  788M    1% /run/user/124
/dev/loop15                   64M   64M     0  100% /snap/core20/1623
/dev/loop5                    46M   46M     0  100% /snap/snap-store/592
/dev/loop13                   56M   56M     0  100% /snap/core18/2566
/dev/loop6                   115M  115M     0  100% /snap/core/13741
/dev/loop1                    46M   46M     0  100% /snap/snap-store/599
/dev/loop11                  115M  115M     0  100% /snap/core/13886
tmpfs                        788M  4.0K  788M    1% /run/user/1000
10.168.188.226:/data/nfsdir  9.1T  5.8T  3.4T   63% /home/fd-ubt1910/myavs/testnfs

5、windows客户端相关配置

首页安装nfs客户端,如下图所示:

 

 然后添加网盘

添加成功后在“我的电脑”中显示对应盘符

6、解决在windows中创建的文件linux服务器中显示的用户名和组名是数字的问题 

由于windows的nfs客户端的默认uid和gid为-2,而在linux系统中并不存在,所以会显示为数字,可以通过在windows系统中修改注册表的方式来解决此问题,以下是注册表文件adduid.reg内容

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default]
"AnonymousUid"=dword:00000000
"AnonymousGid"=dword:00000000

运行脚本以后,重启系统即可修复问题。

以上为Centos系统下NFS服务器的搭建过程,并已测试正常运行。

这篇关于centos9 stream安装nfs服务器并实现windows客户端挂载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202028

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

Java实现字节字符转bcd编码

《Java实现字节字符转bcd编码》BCD是一种将十进制数字编码为二进制的表示方式,常用于数字显示和存储,本文将介绍如何在Java中实现字节字符转BCD码的过程,需要的小伙伴可以了解下... 目录前言BCD码是什么Java实现字节转bcd编码方法补充总结前言BCD码(Binary-Coded Decima

SpringBoot全局域名替换的实现

《SpringBoot全局域名替换的实现》本文主要介绍了SpringBoot全局域名替换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录 项目结构⚙️ 配置文件application.yml️ 配置类AppProperties.Ja