我正在我的機器上安裝 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
當我跑去nfsstat -c
請求有關客戶端的信息時,我確實看到了一些有關 的信息Client nfs v3
,但我不確定如何解釋它。這是否告訴我有關客戶端電腦和 NFS 伺服器之間使用的協定的任何資訊?這是否意味著我目前使用的是 NFS 協定 v3?它是否告訴我伺服器支援哪些版本的 NFS 協議,例如 NFS v4?
答案1
程式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。
答案2
根據您的作業系統和版本,可能有不同的方法來檢查它。
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
.
答案3
可以開啟/etc/nfsmount.conf
並取得預設版本和支援版本的資訊。