NFS:Linux下NFS服务器的搭建与配置

虚拟机linux配置NFS NFS  service  一、安装NFS服务端 1、安装NFS  lingd@ubuntu:~$ sudo apt-get install nfs-kernel-server 同时会有两个软件包nfs-common和portmap被安装上 2.修改NFS配置文件  lingd@ubuntu:~$ vi /etc/exports 内容为: /home/share 192.168.1 阅读详情

一、NFS服务简介

NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的。

它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案 (share files)。所以,你也可以简单的将他看做是一个文件服务器 (file server) 呢!这个 NFS 服务器可以让你的 PC 来将网络远程的 NFS 服务器分享的目录挂载到本地端的机器当中, 在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样 (partition)!使用上面相当的便利!

因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口来传输数据,因此, NFS 的功能所对应的端口才没有固定住, 而是随机取用一些未被使用的小于 1024 的埠口来作为传输之用。但如此一来又造成客户端想要连上服务器时的困扰, 因为客户端得要知道服务器端的相关埠口才能够联机吧!

此时我们就得需要远程过程调用 (RPC) 的服务啦!RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的埠口上去。 那 RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个埠口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以当然可以让 NFS 的启动更为轻松愉快了!

所以你要注意,要启动 NFS 之前,RPC 就要先启动了,否则 NFS 会无法向 RPC 注册。 另外,RPC 若重新启动时,原本注册的数据会不见,因此 RPC 重新启动后,它管理的所有服务都需要重新启动来重新向 RPC 注册。

当客户端有 NFS 档案存取需求时,他会如何向服务器端要求数据呢?

  1. 客户端会向服务器端的 RPC (port 111) 发出 NFS 档案存取功能的询问要求;
  2. 服务器端找到对应的已注册的 NFS daemon 埠口后,会回报给客户端;
  3. 客户端了解正确的埠口后,就可以直接与 NFS daemon 来联机。

由于 NFS 的各项功能都必须要向 RPC 来注册,如此一来 RPC 才能了解 NFS 这个服务的各项功能之 port number, PID, NFS 在服务器所监听的 IP 等等,而客户端才能够透过 RPC 的询问找到正确对应的埠口。 也就是说,NFS 必须要有 RPC 存在时才能成功的提供服务,因此我们称 NFS 为 RPC server 的一种。事实上,有很多这样的服务器都是向 RPC 注册的,举例来说,NIS (Network Information Service) 也是 RPC server 的一种呢!

二、所需要的软件及软件结构

1. 要设定好 NFS 服务器我们必须要有两个软件才行,分别是

  • RPC 主程序:rpcbind

    就如同刚刚提的到,我们的 NFS 其实可以被视为一个 RPC 服务,而要启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行! (在 CentOS 5.x 以前这个软件称为 portmap,在 CentOS 6.x 之后才称为 rpcbind 的!)
     
  • NFS 主程序:nfs-utils

    就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件啦!一定要有喔!

2. NFS配置文件简介

  • 主要配置文件:/etc/exports
    这个档案就是 NFS 的主要配置文件了!不过,系统并没有默认值,所以这个档案『 不一定会存在』,你可能必须要使用 vim 主动的建立起这个档案喔!
     
  • NFS 文件系统维护指令:/usr/sbin/exportfs
    这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,这个指令是 NFS 系统里面相当重要的一个喔!
     
  • 分享资源的登录档:/var/lib/nfs/*tab
    在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
     
  • 客户端查询服务器分享资源的指令:/usr/sbin/showmount
    这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源喔!

三、系统环境

系统CentOS7   IP 192.168.216.137

四、安装NFS服务

1、查看系统是否已安装NFS

rpm -qa | grep nfs

rpm -qa | grep rpcbind

2、安装NFS 、RPC

yum -y install nfs-utils rpcbind

3. 启动服务

systemctl start nfs rpcbind

 五、服务端配置

1. 在NFS服务端上创建共享目录/data/lys并设置权限

mkdir -p /data/lys

chmod 666 /data/lys/ 

【提示】666 具有读写权限,没有执行权限!

2. 编辑export文件

vim /etc/exports 

/data/lys 192.168.216.137/24(rw,no_root_squash,no_all_squash,sync)
/data/lys 192.168.216.135/24(rw,no_root_squash,no_all_squash,sync)

【提示】上面的IP是客户端的!

常见参数说明:

rw  read-write
ro    read-only
sync  代表数据会同步写入到内存与硬盘中
async 代表数据会先暂存于内存当中,而非直接写入硬盘!

no_root_squash 开放客户端使用 root 身份来操作服务器的文件系统
root_squash    

all_squash    不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
no_all_squash

3. 配置生效

exportfs -r

4. 启动rpcbind、nfs服务

systemctl restart rpcbind

systemctl restart nfs

5. 在你的 NFS 服务器设定妥当之后,我们可以在 server 端先自我测试一下是否可以联机喔!就是利用 showmount 这个指令来查阅!

showmount -e localhost

六、客户端配置

1. 创建挂载目录

[root@localhost~]# mkdir /lys

2. 为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议

[root@localhost~]# mount -t nfs nfs服务器的IP:/data/lys /lys -o proto=tcp -o nolock

七、测试结果

1. 查看挂载结果

【提示】注意最后一行

2. 服务端

cd /root/lys

echo "test" > test.txt

【注意】在服务器端的共享目录里面创建文件

3. 客户端

[root@localhost~]# cat /lys/test.txt 
test
[root@localhost~]# echo "204" >> /lys/test.txt 

【提示】> 与 >> ,第一个是覆盖,第二个是追加!

4. 服务端

[root@localhost lys]# cat /data/lys/test.txt 
test
204

5. 卸载已挂载的NFS

umount /lys/

df -h

 结束!

我在虚拟机CentOS7中搭建NFS,按照上述步骤完成了! 在真实的生产环境中,在阿里云上搭建NFS就是不成功!客户端挂载不到服务器上!而且我个人打开不了阿里云的24端口,安全组配置显示24端口打开了,但是在xshell中使用netstat -nptl的命令查看不到24端口号!我个人的感觉可能是24端口没打开,导致挂载不上吧!

请大佬多多指教,真实生产环境中我没做出来!

 

客户端挂载服务器时提示的错误

 

Linux下NFS服务器的搭建与配置 这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个埠口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以当然可以让 NFS 的启动更为轻松愉快了!因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口来传输数据,因此, NFS 的功能所对应的端口才没有固定住, 而是随机取用一些未被使用的小于 1024 的埠口来作为传输之用。 阅读详情

相关推荐

Linux云计算架构师:搭建FTP服务器实现文件共享和NFS服务器配置

全套学习资料移步至公众号【学神来啦】更多学习资料添加扣扣资源群:661308959 本节所讲内容: 4.1 VSFTP服务器概述 4.2 安装配置VSFTP 4.3 实战:匿名访问VSFTP 4.4 实战:用户名密码方式访问VSFTP 4.5 NFS概述-配置NFS服务器并实现开机自动挂载 服务器信息: FTP服务端:xuegod63 IP:192.168.1.63 FTP客户端:xuegod64IP:192.168.1.64 4.1 VSFT...

Xiadaoanquan123的博客 1139

linux虚拟机克隆及配置

                         linux虚拟机克隆及配置 一、克隆虚拟机 二、配置克隆虚拟机 1、修改主机名 hostname 查看主机名 1 vi /etc/sysconfig/network 修改主机名 vim /etc/hosts 主机域名解析 <li style="color: rgb(153, ...

qq_42809504的博客 441

【目标检测】yoloV5算法详解

一、与yoloV4相比,yoloV5的改进 输入端:在模型训练阶段,使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放 基准网络:使用了FOCUS结构和CSP结构 Neck网络:在Backbone和最后的Head输出层之间插入FPN_PAN结构 Head输出层:训练时的损失函数GIOU_Loss,预测筛选框的DIOU_nns 二、yoloV5结构框架 CBL:CBL模块是由Conv+BN+Leaky_relu激活函数组成 Res unit:借鉴ResNet中的残差结构,用来构建深层网络,CBM是

qq_40373651的博客 2万+

“chmod 666” 什么意思?

今天看android源码中的串口部分,有一个命令是chmod 666 ,之前知道777是全部授权,666用的还真不多 /* Missing read/write permission, trying to chmod the file */ Process su; su = Runtime.getRuntime().exec("/system/bin/su"); String cmd = "chm...

TaoYuan 1万+

逆向实战:拼多多anti-content加密参数的全链路解析与动态对抗策略

本文深入解析了拼多多anti-content加密参数的全链路生成逻辑与动态对抗策略。通过逆向工程实战,详细拆解了包含设备指纹、用户行为采集和动态密钥生成在内的12个关键环节,并提供了可持续对抗的精准模拟方案和自动化更新机制,帮助开发者有效应对拼多多的反爬体系。

weixin_30687051的博客 161

扫码器USB键盘报告描述符数据格式解析

Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。

m0_65548585的博客 1142

CMD命令 chmod 666/777/744 的含义

参考链接:http://superuser.com/questions/295591/what-is-the-meaning-of-chmod-666 Chmod change attributes from a file/folder chmod 666 means that all users can read and write but cannot executechmod 7

迷彩狼的博客 1万+

8台 × 8卡 910B NPU之顶尖大模型选型分析

本文对比了2026年主流大语言模型在昇腾910B NPU集群上的部署方案。重点评估了GLM5、MiniMax M2.5、Kimi K2.5、DeepSeek V3.2和Qwen 3.5旗舰版等候选模型,从部署需求(显存占用)、能力表现(基准测试、多模态支持)和NPU生态适配度三个维度进行分析。结果显示DeepSeek V3.2综合表现最优:支持BF16/W8A8/INT4量化,在4TB显存环境下可实现2000+ TPS,首token延迟<100ms,且具备官方NPU支持。备选方案Qwen 3.5旗舰版

FeelTouch Labs 763

使用 Linux 搭建并配置一个 NFS 服务器

使用 Linux 搭建并配置一个 NFS 服务器,并详细介绍了相关配置参数,方便后续 NFS 的维护。

一只奋斗的猪 4722

SAP 关于WPS上传文件提示“文档中不包含数据“ 和“程序正在运行中“处理办法

最近这一周经常有用户反馈,使用WPS上传文件系统报错,一直提示“程序正在运行中”,另外在导入数据的时候提示"文档中不包含数据",跟进运维过程中遇到的这两种情况,分享一下处理的办法,如果各位更好的办法也可以给我留言分享。

我小时候很黑的博客 2856

Visual studio 2013 配置 Halcon 13 (非抄袭)

Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系...

huyanjackson的专栏 1042

【Linux】NFS服务器搭建配置挂载

一、服务端配置 1、创建目录 mkdir /app/nas 2、安装nfs、rpc [root@localhost ~]# yum install -y nfs-utils [root@localhost ~]# yum install -y rpcbind 3、启动服务 启动rpc并设置rpc为开机启动 启动nfs服务和nfs安全传输服务 systemctl start nfs-server nfs-secure-server 这里发现nfs-secure-server报错了 .

AnRanGeSi的博客 5573

PMP--工件

合同是指对双方都有约束力的协议,强制卖方提供规定的产品、服务或结果,以及强制买方支付相应的费用。它还可能包括处于中间状态的特性,例如已设计但尚未构建的特性、质量保证中的特性或测试中的特性。RACI 矩阵是一种常见的方法,用于显示执行、担责、咨询或知情,且与项目活动、决策和可交付物有关的干系人。计划是提议的实现某种目标的方式。在项目开始前或开始时创建的文件,涉及与项目有关的战略、商业或高层级的信息。或 © 它们是用特定方法创建的结果,例如,虽然成本估算结果是一个重要工件,它们是用不同估算方法得出的结果。

stqer的博客 1666

linux上 NFS服务器搭建与配置

linux上 NFS服务器搭建与配置

acc123123的博客 1172

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 568

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 【Nginx学子总结】4. Nginx负载均衡
下一篇: 【Nginx学习总结】5. Nginx+Tomcat 的动静分离
Rita楠神
博客等级 码龄9年 27粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值