我的 NFS 服务器使用的是哪个版本的 NFS?

D.W*_*.W. 14 version configuration nfs

我正在我的机器上安装 NFS 文件系统。如何确定服务器使用的 NFS 协议版本?我无权访问 NFS 服务器机器,但我的客户端机器上有 root 用户。

有什么我可以在我的客户端机器上运行的东西来识别服务器正在使用什么版本的 NFS 协议,或者它支持什么版本?

我无法在/var/log/messages内核调试输出 ( dmesg) 中找到任何有用的信息。

我试过 running nfsstat,但我不确定它是否给了我任何有用的信息。但是,当我运行nfsstat -s请求有关服务器的信息时,我看不到任何有用的信息:

# nfsstat -s
Server rpc stats:
calls      badcalls   badfmt     badauth    badclnt
0          0          0          0          0       
Run Code Online (Sandbox Code Playgroud)

当我运行nfsstat -c请求有关客户端的信息时,我确实看到了一些有关 的信息Client nfs v3,但我不确定如何解释它。这是否告诉我有关客户端计算机和 NFS 服务器之间使用的协议的任何信息?这是否意味着我目前使用的是 NFS 协议的 v3?它是否告诉我有关服务器支持的 NFS 协议版本(例如 NFS v4)的任何信息?

roa*_*ima 21

该nfsstat -c程序将向您显示实际使用的 NFS 版本。

如果您运行,rpcinfo -p {server}您将看到服务器支持的所有 RPC 程序的所有版本。在我的系统上,我得到这个输出:

$ rpcinfo -p localhost
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    ...
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    ...
Run Code Online (Sandbox Code Playgroud)

这表明我的 NFS 服务器(localhost在本例中)通过 UDP 和 TCP 提供 NFS 协议的第 2、3 和 4 版。

  • 您如何判断 V4 是 4.2 还是其他版本(最好没有实际运行 nfs .. 因为由于某种原因我无法从客户端挂载)? (3认同)
  • 我不明白为什么要问一个新问题才能获得有关同一答案的更多详细信息! (3认同)
  • @Madhusoodan 因为我不知道那部分的答案 (3认同)

小智 6

根据您的操作系统和版本,可能有不同的检查方法。

nfsstat:

# nfsstat -m
/mnt/share from 10.0.0.1:/mnt/share
Flags:  rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.1,mountvers=3,mountport=30924,mountproto=udp,local_lock=none,addr=10.0.0.1
Run Code Online (Sandbox Code Playgroud)

但你可以肯定

# grep nfs /proc/mounts
10.0.0.1:/mnt/share /mnt/share nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.1,mountvers=3,mountport=30924,mountproto=udp,local_lock=none,addr=10.0.0.1
Run Code Online (Sandbox Code Playgroud)

这显然是相同的输出。

它显示vers=3在服务器上,并且mountvers=3.

  • `grep nfs /proc/mounts`(对我在服务器上)只显示 `nfsd /proc/nfsd nfsd rw,realtime 0 0`。我没有实际安装客户端(我无法让它工作)。一切看起来都很好(在两者上都使用 nfs4,IP 地址正确,/etc/exports 很好,`nfs-server` 已经重新启动,`exportfs -rav` 看起来很好,来自客户端的 `showmount -e server` 看起来很好,等等...但是当我尝试挂载 *EVERY TIME* .. 它挂起直到`mount.nfs:连接超时`--或--`mount.nfs4:连接超时`。太令人沮丧了。抱歉我的咆哮可能会不固定)。 (2认同)
  • @Dylan,服务器配置为使用多个版本的 NFS 运行。根据服务器配置和/或客户端能力/配置,有多种可能的答案。此外,如果您没有任何客户端连接到 nfs 服务器,您可以检查您的服务器配置文件和/或 `/proc/fs/nfsd/versions` 以找出服务器配置为支持的版本。 (2认同)