ฉันมีปัญหาในการติดตั้งการแชร์ NFS ที่ฉันไม่สามารถแก้ไขได้นั่นคือการทำให้ฉันบ้า นี่คือสถานการณ์:
สามเครื่องที่เกี่ยวข้อง:
โฮสต์ A: mandrake, IP 192.168.1.4, เซิร์ฟเวอร์ NFS
โฮสต์ B: athlon64, IP 192.168.1.64, ไคลเอ็นต์ NFS
โฮสต์ C: lap-fzs-2, IP 192.168.1.27, ไคลเอ็นต์ NFS
โฮสต์ A มีเซิร์ฟเวอร์ NFS ที่ทำงานซึ่งส่งออกไดเรกทอรีที่ได้รับการเมานท์โดยโฮสต์ B สิ่งนี้ทำงานได้อย่างไร้ที่ติและทำงานมาตั้งแต่ยุคสมัย ไม่มีปัญหา ตอนนี้โฮสต์ C เข้ามาในรูปภาพ Ubuntu 12.04 LTS ระบบทันสมัย ฉันพยายามเมาแชร์เดียวกันจากโฮสต์ A แต่ได้รับข้อผิดพลาดปฏิเสธสิทธิ์:
root@lap-fzs-2:~# mount -t nfs mandrake:/data /data -onfsvers=2
mount.nfs: access denied by server while mounting mandrake:/data
ความจริงที่ว่ามันทำงานระหว่างโฮสต์ A และ B ควรพิสูจน์ว่าการส่งออก NFS ต่อ se นั้นทำงานได้ นี่คือข้อมูลที่ฉันสามารถให้ได้ซึ่งทำให้ฉันคิดว่ามันควรจะใช้ได้ อาจมีบางคนเห็นสิ่งที่ฉันไม่และรู้ว่าทำไมสิ่งนี้จึงล้มเหลวในโฮสต์ C ใหม่
การส่งออกเซิร์ฟเวอร์:
[root@mandrake /root]# cat /etc/exports
/suse 192.168.1.0/16(ro,no_root_squash)
/data 192.168.1.0/24(rw)
#/data3 192.168.2.0/24(rw)
#/data 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
#/data3 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
[root@mandrake /root]# exportfs
/suse 192.168.1.0/16
/data 192.168.1.0/24
ตัวจัดการพอร์ตกำลังทำงานการส่งออกจะรู้จักและเชื่อมต่อโดยโฮสต์ B "athlon64"
[root@mandrake /root]# showmount -e
Export list for mandrake:
/data 192.168.1.0/24
/suse 192.168.1.0/16
[root@mandrake /root]# showmount -a
All mount points on mandrake:
atlhon64.acme.local:/data
เมื่อโฮสต์ athlon64 เชื่อมต่อการแชร์ NFS บันทึกของเซิร์ฟเวอร์จะแสดงผลสำเร็จ:
Feb 11 20:06:46 mandrake mountd[460]: authenticated mount request from atlhon64.acme.local:770 for /data (/data)
แต่เมื่อโฮสต์ C พยายามเชื่อมต่อส่วนแบ่งเดียวกันบันทึกเซิร์ฟเวอร์แสดง:
Feb 11 20:12:42 mandrake mountd[460]: refused mount request from lap-fzs-2 for /data (/): no export entry
โฮสต์ C เห็นเซิร์ฟเวอร์ไปถึง portmapper และ nfsd แต่ไม่ผ่านการอนุญาต
root@lap-fzs-2:~# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/data 192.168.1.0/24
/suse 192.168.1.0/16
root@lap-fzs-2:~# mount -t nfs -v mandrake:/data /data -onfsvers=2,proto=udp
mount.nfs: timeout set for Mon Feb 11 21:49:23 2013
mount.nfs: trying text-based options 'nfsvers=2,proto=udp,addr=192.168.1.4'
mount.nfs: prog 100003, trying vers=2, prot=17
mount.nfs: trying 192.168.1.4 prog 100003 vers 2 prot UDP port 2049
mount.nfs: prog 100005, trying vers=1, prot=17
mount.nfs: trying 192.168.1.4 prog 100005 vers 1 prot UDP port 636
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting mandrake:/data
ฉันต้องใช้ NFSv2 กับลูกค้า การใช้ NFSv4 จะล้มเหลวเนื่องจากเซิร์ฟเวอร์ไม่รองรับ มันล้มเหลวเนื่องจากพยายามเชื่อมต่อผ่าน TCP โดยตรงกับ 2049 แต่พอร์ตไม่เปิด ไม่มีทางเลือกเกิดขึ้น การใช้ NFSv3 จะส่งผลให้โปรแกรม RPC / เวอร์ชันไม่ตรงกัน
ฉันกำลังคิดถึงอะไร
อัปเดต:
ทั้งสามเครื่องอยู่ใน LAN เดียวบนสวิตช์เดียวกัน ไม่มีไฟร์วอลล์ที่ใช้งานบนโฮสต์ C:
root@lap-fzs-2:~# iptables -vnL
Chain INPUT (policy ACCEPT 17 packets, 1853 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 20 packets, 5611 bytes)
pkts bytes target prot opt in out source destination
หรือโฮสต์ A:
[root@mandrake /root]# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
exportfs -a
คำสั่งที่เป็นเจ้าภาพแล้วลองmount
คำสั่งบนโฮสต์ซีลองชื่อโฮสต์อย่างชัดเจนหรือที่อยู่ IP /etc/exports
เต็มรูปแบบใน
exportfs -a
บู๊ตตอนบูตและเนื่องจากนี่ไม่ใช่รายการใหม่จึงส่งออกไปแล้ว ไฟล์การส่งออกไม่เปลี่ยนแปลง แต่เป็นเพียงโฮสต์ใหม่ที่ควรเมาต์และไม่สามารถทำได้
/etc/exports
ทำให้ใช้งานได้จริง ตอนนี้ฉันมี / 24 สุทธิรวมทั้งรายการ IP แบบเต็มและโฮสต์ C สามารถเมานต์ได้ ยังไม่ได้ทดลองโฮสต์ B ความคิดใดว่าทำไมนี่คือ? ฉันสังเกตเห็นว่าโฮสต์ B (ผู้ที่ทำงาน) ใช้การโทร MNT เวอร์ชัน 2 ในขณะที่โฮสต์ C หันไปใช้การโทร MNT เวอร์ชัน 1