netstat -tlnpgrep nfs和lsof -infs都查不到nfs占用的端口号只有rpcinfo -pgrep nfs才能查到占用的端口号golang如何查询nfs的rpc端口号
可以使用Go语言中的rpcinfo包来查询NFS的RPC端口号,示例代码如下:
package main
import (
"fmt"
"log"
"net/rpc"
"net/rpc/jsonrpc"
)
func main() {
client, err := jsonrpc.Dial("tcp", "localhost:111")
if err != nil {
log.Fatal(err)
}
var programs []rpc.Program
err = client.Call("rpcinfo.ListPrograms", 0, &programs)
if err != nil {
log.Fatal(err)
}
for _, program := range programs {
if program.ProgramNumber == 100003 { // NFS program number
fmt.Printf("NFS version %d is running on port %d\n", program.VersionNumber, program.PortNumber)
break
}
}
}
该程序通过JSON-RPC协议连接到本地的RPC端口(默认为111),调用rpcinfo.ListPrograms方法获取所有正在运行的RPC程序,然后遍历程序列表,找到NFS程序(程序号为100003),输出其版本号和端口号
原文地址: https://www.cveoy.top/t/topic/fNfh 著作权归作者所有。请勿转载和采集!