可以使用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),输出其版本号和端口号

netstat -tlnpgrep nfs和lsof -infs都查不到nfs占用的端口号只有rpcinfo -pgrep nfs才能查到占用的端口号golang如何查询nfs的rpc端口号

原文地址: https://www.cveoy.top/t/topic/fNfh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录