understanding nfs port and portmap
# nfs 端口
nfs是非常常用的服务,它的端口是什么?这个问题会困扰很多人。其实这个服务包含三个主要部分,portmap, nfsd,还有一些其他的nfs服务。
portmap是110
nfsd是2049
其他的nfs服务就是自己可以确定的了。
[Understanding Portmap with NFSv3](https://www.howtouselinux.com/post/understanding-portmap-with-examples)
[Understanding Rpcbind and RPC](https://www.howtouselinux.com/post/understanding-rpcbind-and-rpc)
[Understanding NFS Port With Examples](https://www.howtouselinux.com/post/nfs-port)
# 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](https://www.howtouselinux.com/post/understanding-portmap-with-examples)
[Understanding Rpcbind and RPC](https://www.howtouselinux.com/post/understanding-rpcbind-and-rpc)
[Understanding NFS Port With Examples](https://www.howtouselinux.com/post/nfs-port)
# 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](https://www.howtouselinux.com/post/understanding-portmap-with-examples)
[Understanding Rpcbind and RPC](https://www.howtouselinux.com/post/understanding-rpcbind-and-rpc)
[Understanding NFS Port With Examples](https://www.howtouselinux.com/post/nfs-port)