因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些 port 来传输数据,因此, NFS 的功能所对应的 port 才没有固定住, 而是采用随机取用一些未被使用的小于 1024 的端口来作为传输之用。
RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的埠口上去。 那 RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个埠口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口。
NFS 启动的 RPC daemons
我们现在知道 NFS 服务器在启动的时候就得要向 RPC 注册,所以 NFS 服务器也被称为 RPC server 之一。 那么 NFS 服务器主要的任务是进行文件系统的分享,文件系统的分享则与权限有关。 所以 NFS 服务器启动时至少需要两个 daemons ,一个管理 client 端是否能够登入的问题, 一个管理 client 端能够取得的权限。如果你还想要管理 quota 的话,那么 NFS 还得要再加载其他的 RPC 程序就是了。我们以较单纯的 NFS 主机来说:
rpc.nfsd:
这个 daemon 主要的功能就是在管理 Client 是否能够登入主机的权限啦,其中还包含这个登入者的 ID 的判别喔!
rpc.mountd
这个 daemon 主要的功能,则是在管理 NFS 的文件系统哩!当 Client 端顺利的通过 rpc.nfsd 而登入主机之后,在他可以使用 NFS 服务器提供的档案之前,还会经过档案权限 (就是那个 -rwxrwxrwx 与 owner, group 那几个权限啦) 的认证程序!他会去读 NFS 的配置文件 /etc/exports 来比对 Client 的权限,当通过这一关之后 Client 就可以取得使用 NFS 档案的权限啦! (注:这个也是我们用来管理 NFS 分享之目录的权限与安全设定的地方哩!)
rpc.lockd (非必要)
这个玩意儿可以用在管理档案的锁定 (lock) 用途。为何档案需要『锁定』呢? 因为既然分享的 NFS 档案可以让客户端使用,那么当多个客户端同时尝试写入某个档案时, 就可能对于该档案造成一些问题啦!这个 rpc.lockd 则可以用来克服这个问题。 但 rpc.lockd 必须要同时在客户端与服务器端都开启才行喔!此外, rpc.lockd 也常与 rpc.statd 同时启用。
rpc.statd (非必要)
可以用来检查档案的一致性,与 rpc.lockd 有关!若发生因为客户端同时使用同一档案造成档案可能有所损毁时, rpc.statd 可以用来检测并尝试回复该档案。与 rpc.lockd 同样的,这个功能必须要在服务器端与客户端都启动才会生效。
注意:要是在没有使用NFS的时候,请关闭RPC或者做一些安装实施,防止安全漏洞。111端口,protmap服务
分享到:
相关推荐
在这个“rpc-Remote Procedure Call源码1”的压缩包中,包含了多个示例项目,它们可以帮助我们深入理解RPC的工作原理。 1. RPC基本概念: - 远程调用:RPC使得开发者可以像调用本地函数一样调用远程服务器上的函数...
RPC,即Remote Procedure Call Protocol,远程过程调用协议,是一种在分布式系统中实现客户端与服务器端通信的技术。这种协议允许一个程序(客户端)在不理解底层网络细节的情况下,调用运行在另一台计算机(服务器...
本文将详细介绍 RPC 服务属性按钮全部都是灰色的原因和解决方案,包括手动启动“远程过程调用”服务时出现的错误信息“Could not start the Remote Procedure Call (RPC) Service. Error 1058”、使用注册表编辑器...
RPC(Remote Procedure Call)是一种进程间通信(IPC)技术,允许程序在不同的计算机上通过网络进行通信,就像调用本地函数一样调用远程系统上的函数。这种技术在分布式系统和网络编程中扮演着重要角色,简化了...
远程过程调用(RPC,Remote Procedure Call)是分布式计算领域中的一个重要概念,它允许一个程序在不理解底层网络实现的情况下,能够调用另一个网络上的程序的功能,就像它们在同一台计算机上执行一样。RPC大大简化...
RPC,即Remote Procedure Call(远程过程调用),是计算机网络编程中的一个重要概念,它允许一个程序在不理解底层网络协议的情况下,调用另一个网络上不同机器上的程序。在这个"RPC.rar"压缩包中,主要围绕C++语言在...
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个程序请求另一个地址空间(通常是远程计算机上的程序)执行代码,并等待结果返回。RPC使得程序能够像调用本地函数一样调用位于远程...
RPC(Remote Procedure Call)是一种计算机通信协议,它允许程序在分布式环境中的一个系统上执行另一系统上的函数或方法,就像是本地调用一样。这个过程涉及到了客户端、服务器端和服务调用的封装,使得开发者无需...
远程过程调用(RPC, Remote Procedure Call)是一种通信协议,它允许在一台计算机上的程序调用另一台计算机上的子程序或函数,而无需程序员明确了解底层通信网络细节。通过RPC机制将本地调用转换为远程调用的能力极...
首先,让我们深入了解一下什么是RPC(Remote Procedure Call):RPC是一种协议,使得一个程序可以在执行过程中无感知地调用另一个位于不同地址空间的程序,通常是网络上的另一台计算机上的程序。RPC简化了分布式系统...
远程过程调用(RPC,Remote Procedure Call)是一种在分布式系统中实现客户端与服务器间通信的技术。RPC使得客户端能够像调用本地函数一样调用远端服务器上的服务,大大简化了跨网络的服务交互。本主题主要关注使用...
Remote Procedure Call over DDS(DDS-RPC)是一种技术,它允许通过DDS(数据分发服务)进行远程调用,这是在分布式系统中实现组件间通信的一种方法。DDS是一种标准的中间件,专注于实时数据共享和发布订阅模型,...
服务器开发中会使用RPC(Remote Procedure Call,远程过程调用)简化进程间通信的过程。RPC能有效地封装通信过程。RPC能有效地封装通信过程,让远程的数据收发通信过程看起来就像本地的函数调用一样。 本例中,...
Java RPC(Remote Procedure Call)是一种让程序在不同的网络计算机之间调用对方方法的技术。这个例子是用纯Java编写的,不依赖任何JDK之外的第三方库,因此非常适合初学者理解和学习。RPC的核心思想是透明性,即...
常见的远程过程调用中间件包括 RPC(Remote Procedure Call)和 RMI(Remote Method Invocation)。 1. RPC(Remote Procedure Call) RPC 是一种远程过程调用协议,允许不同的应用程序之间进行通信和交互。RPC ...
PHPRPC(PHP Remote Procedure Call)是一种轻量级的、基于PHP实现的远程过程调用协议,它允许在不同的PHP应用程序之间进行通信和数据交换。远程过程调用(RPC)是一种计算机程序设计技术,使得一个程序可以调用另一...
RPC(Remote Procedure Call)远程过程调用是一种计算机通信协议,允许一个程序在某处执行,通过网络调用另一台计算机上的程序,就像它是一个本地函数一样。这种技术在分布式系统和微服务架构中广泛使用,简化了不同...
远程过程调用(RPC)是一种计算通信协议,允许客户端向服务器发送请求,请求执行一个特定的过程,并获取结果,就好比是调用本地方法一样。用户不需要关心网络通信的细节,因为这些细节是抽象的。这种机制通常用于...
PHPRPC(PHP Remote Procedure Call)是一种轻量级的、基于HTTP协议的远程过程调用协议,主要用于在不同服务器之间实现跨平台、跨语言的通信。在这个特定的压缩包文件"PHPRPC远程过程调用协议(ASP).7z"中,我们可以...