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


14

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

我可以在客户端计算机上运行任何命令来标识服务器正在使用哪个版本的NFS协议,或者它支持哪些版本?

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

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

# nfsstat -s
Server rpc stats:
calls      badcalls   badfmt     badauth    badclnt
0          0          0          0          0       

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

Answers:


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
    ...

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


1
您如何确定V4是4.2还是其他(最好不要让nfs实际运行..因为某些原因我不能从客户端挂载)?
迪伦

@Dylan为什么不问一个新问题?
roaima

5

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

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

但是你可以肯定

# 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

这显然是相同的输出。

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


2
grep nfs /proc/mounts(对于我在服务器上)仅显示nfsd /proc/nfsd nfsd rw,realtime 0 0。我没有实际安装客户端(我无法使其正常工作)。一切似乎都很好(在两者上都使用nfs4,IP地址正确,/ etc / exports很好,nfs-server已经重新启动,exportfs -rav看起来很好,showmount -e server从客户端看起来很好,等等..但是当我尝试挂载每次时 ..它挂起直到mount.nfs: Connection timed out-或- mount.nfs4: Connection timed out。真令人沮丧。对不起,我的咆哮很可能无法解决。
迪伦2015年

因此,我想..是否可以在不安装客户端的情况下获得nfs版本(如4.2或4.1或您拥有的版本)?
迪伦2015年

我一直在努力解决同一问题。一切都很好,它曾经可以工作。我重新创建了Vagrant VM,然后停止工作了。Nfsstat显示所有呼叫都是类型badauth的呼叫。
onknows

1
@Dylan,服务器配置为使用多个版本的NFS进行操作。根据服务器配置和/或客户端功能/配置,有多种可能的答案。此外,如果没有任何客户端连接到nfs服务器,则可以检查服务器配置文件和/或/proc/fs/nfsd/versions找出服务器配置为支持的版本。
ILMostro_7

-2

可以打开/etc/nfsmount.conf并获取有关默认版本和支持的版本的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.