เซิร์ฟเวอร์ NFS ของฉันรุ่นใดที่ใช้งานอยู่


14

ฉันกำลังติดตั้งระบบไฟล์ NFS บนเครื่องของฉัน ฉันจะทราบได้อย่างไรว่าโปรโตคอล NFS รุ่นใดที่เซิร์ฟเวอร์ใช้ ฉันไม่สามารถเข้าถึงเครื่องเซิร์ฟเวอร์ NFS แต่ฉันมีรูทบนเครื่องไคลเอนต์ของฉัน

มีสิ่งใดบ้างที่ฉันสามารถเรียกใช้บนเครื่องไคลเอนต์ของฉันเพื่อระบุเวอร์ชันของโพรโทคอล 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 หรือไม่? มันหมายความว่าฉันกำลังใช้ v3 ของโปรโตคอล NFS อยู่หรือเปล่า? มันบอกอะไรฉันเกี่ยวกับโพรโทคอล NFS เวอร์ชันใดที่เซิร์ฟเวอร์รองรับเช่น NFS v4

คำตอบ:


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ในตัวอย่างนี้) ให้บริการรุ่น 2, 3 และ 4 ของโปรโตคอล NFS ทั่ว UDP และ TCP


1
คุณจะบอกได้อย่างไรว่า V4 เป็น 4.2 หรืออย่างอื่น (โดยไม่ต้องใช้ nfs จริง ๆ .. เพราะฉันไม่สามารถเมานต์จากไคลเอ็นต์ได้ด้วยเหตุผลบางอย่าง)?
Dylan

@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=3mountvers=3


2
grep nfs /proc/mounts(สำหรับฉันในเซิร์ฟเวอร์) nfsd /proc/nfsd nfsd rw,realtime 0 0แสดงเฉพาะ ฉันไม่ได้ติดตั้งไคลเอ็นต์ (ฉันไม่สามารถใช้งานได้) ทุกอย่างดูดี (ใช้ nfs4 ทั้งสองที่อยู่ IP ถูกต้อง / etc / export ไม่ดีnfs-serverถูกรีสตาร์ทexportfs -ravดูดีshowmount -e serverจากไคลเอนต์หน้าตาดี ฯลฯ .. แต่เมื่อฉันพยายามเมาทุกครั้ง .. มันค้างจนกว่าmount.nfs: Connection timed out- หรือ - mount.nfs4: Connection timed out. น่าหงุดหงิด. ขอโทษสำหรับการคุยโวของฉันที่อาจจะไม่มีการผสม)
Dylan

ดังนั้นฉันเดา .. มีวิธีรับรุ่น nfs (เช่น 4.2 หรือ 4.1 หรือคุณมีอะไร) โดยไม่ต้องติดตั้งไคลเอนต์?
Dylan

ฉันทำงานหนักในเรื่องเดียวกัน ทั้งหมดเป็นเรื่องปกติและใช้ในการทำงาน ฉันสร้าง Vagrant VM ขึ้นใหม่จากนั้นหยุดทำงาน Nfsstat แสดงให้เห็นว่าการโทรทั้งหมดเป็น badcalls ของพิมพ์ badauth
onknows

1
@Dylan เซิร์ฟเวอร์ถูกกำหนดค่าให้ทำงานกับ NFS หลายเวอร์ชัน ขึ้นอยู่กับการกำหนดค่าเซิร์ฟเวอร์และ / หรือความสามารถ / กำหนดค่าไคลเอนต์ นอกจากนี้หากคุณไม่มีไคลเอนต์ใด ๆ ที่เชื่อมต่อกับเซิร์ฟเวอร์ nfs คุณสามารถตรวจสอบไฟล์/proc/fs/nfsd/versionsกำหนดค่าเซิร์ฟเวอร์ของคุณและ / หรือค้นหารุ่นที่เซิร์ฟเวอร์กำหนดค่าให้รองรับ
ILMostro_7

-2

หนึ่งสามารถเปิด/etc/nfsmount.confและรับข้อมูลเกี่ยวกับรุ่นเริ่มต้นและรุ่นที่รองรับ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.