portmap的原理

nfs 端口

nfs是非常常用的服务,它的端口是什么?这个问题会困扰很多人。其实这个服务包含三个主要部分,portmap, nfsd,还有一些其他的nfs服务。

portmap是110

nfsd是2049

其他的nfs服务就是自己可以确定的了。

Understanding Portmap with NFSv3
Understanding Rpcbind and RPC
Understanding NFS Port With Examples

rpcbind是什么

  • rpcbind工具可以将RPC程序号码和通用地址互相转换。要让某主机能向远程主机的服务发起RPC调用, 则该主机上的rpcbind必须处于已运行状态。
  • 当RPC服务启动后,它会告诉rpcbind它监听在哪个地址上,还会告诉它为服务准备好提供的PRC程序 号码。当客户端要向某个给定的程序号码发起RPC调用时,它首先会联系服务端的rpcbind以确定RPC 请求应该发送到哪个地址上。
  • rpcbind工具应该在所有RPC管理的服务(rpc service)启动之前启动。一般来说,标准的rpc服务由端 口监视器来启动,因此rpcbind必须在端口监视器被调用之前已经启动完成。
  • 当rpcbind工具已经启动后,它会检查特定的name-to-address的转换调用功能是否正确执行。如果失 败,则网络配置数据库会被认为过期,由于RPC管理的服务在这种情况下无法正确运行,rpcbind会输 出这些信息并终止。
    另外,rpcbind工具只能由super-user启动

Understanding Portmap with NFSv3
Understanding Rpcbind and RPC
Understanding NFS Port With Examples

portmap是什么

  • 当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能
  • 如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。
  • portmap进程一般使用TCP/UDP的111端口。
    Understanding Portmap with NFSv3
    Understanding Rpcbind and RPC
    Understanding NFS Port With Examples
上一篇:CentOS/Ubuntu/Debian/Fedora google chrome提示--no-sandbox


下一篇:[Misc] Understanding CIDRs Subnet Masks