การเมาต์ NFS ล้มเหลวปฏิเสธสิทธิ์ไม่มีรายการส่งออก


10

ฉันมีปัญหาในการติดตั้งการแชร์ 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):

ไฟร์วอลล์บนโฮสต์ C (หรือมีโอกาสน้อยกว่า A) (sbin / iptables -vnL แสดงอะไร)
davidgo

ไม่ไม่มีไฟร์วอลล์ส่วน LAN หนึ่งส่วน
ฟลอเรียน

1
ลองexportfs -aคำสั่งที่เป็นเจ้าภาพแล้วลองmountคำสั่งบนโฮสต์ซีลองชื่อโฮสต์อย่างชัดเจนหรือที่อยู่ IP /etc/exportsเต็มรูปแบบใน
ขี้เลื่อย

1
มันจะช่วยได้อย่างไร เซิร์ฟเวอร์ทำการexportfs -aบู๊ตตอนบูตและเนื่องจากนี่ไม่ใช่รายการใหม่จึงส่งออกไปแล้ว ไฟล์การส่งออกไม่เปลี่ยนแปลง แต่เป็นเพียงโฮสต์ใหม่ที่ควรเมาต์และไม่สามารถทำได้
ฟลอเรียน

@Sawdust การแก้ไขของคุณมีคำใบ้ที่ถูกต้อง: การใช้ที่อยู่ IP แบบเต็ม/etc/exportsทำให้ใช้งานได้จริง ตอนนี้ฉันมี / 24 สุทธิรวมทั้งรายการ IP แบบเต็มและโฮสต์ C สามารถเมานต์ได้ ยังไม่ได้ทดลองโฮสต์ B ความคิดใดว่าทำไมนี่คือ? ฉันสังเกตเห็นว่าโฮสต์ B (ผู้ที่ทำงาน) ใช้การโทร MNT เวอร์ชัน 2 ในขณะที่โฮสต์ C หันไปใช้การโทร MNT เวอร์ชัน 1
ฟลอเรียน

คำตอบ:


0

11 ก.พ. 20:12:42 mandrake mountd [460]: ปฏิเสธคำขอเมาจาก lap-fzs-2 สำหรับ / data (/): ไม่มีรายการส่งออก

เนื่องจากการแจ้งปฏิเสธของเซิร์ฟเวอร์อ้างว่าไม่มี "รายการส่งออก"สำหรับโฮสต์ C ดังนั้นบางทีคุณควรลองบรรทัดที่ชัดเจนใน/etc/exportsไฟล์ด้วยชื่อโฮสต์ที่ชัดเจนหรือที่อยู่ IP แบบเต็มสำหรับ C

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


ชัดเจนซ้ำแล้วซ้ำอีกexportfs -aไม่ได้เปลี่ยนแปลงอะไรสำหรับฉัน การใช้ที่อยู่ IP แบบเต็มสำหรับโฮสต์ที่มีปัญหาตัวหนึ่งแก้ปัญหาของฉันได้ ดังนั้นในขณะนี้ไม่ได้อธิบายและฉันไม่เข้าใจมันเป็นคำตอบสำหรับปัญหาของฉันและสิ่งที่ฉันสามารถแนะนำให้ลองให้คนอื่นที่มีปัญหาเดียวกัน
Florian

การเพิ่มรายการสำหรับที่อยู่ IP ที่มีปัญหาใน / etc / exports แก้ไขปัญหาของฉันได้เช่นกัน แปลก.
ปลา

1

ตรวจสอบและดูว่า UID และ GUID สำหรับผู้ใช้ NFS เหมือนกันบนเซิร์ฟเวอร์และไคลเอ็นต์หรือไม่ นอกจากนี้ตรวจสอบให้แน่ใจบนเซิร์ฟเวอร์ว่าโฟลเดอร์ได้รับอนุญาต 777 นี่คือไฟล์ของฉัน / etc / exports บนเซิร์ฟเวอร์ของฉันเพื่อให้ลูกค้าของฉันเข้าถึง

สร้างไดเรกทอรีที่ใช้ร่วมกันของ NFS: (สร้างเซิร์ฟเวอร์แต่ละเครื่องที่มี IP แยกตามพื้นที่)

mkdir / var / nfs เป็นกลุ่ม / etc / exports / var / nfs 10.180.82.250 (rw, sync, root_squash, anonuid = 530, anongid = 530, no_subtree_check)


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

1

ในกรณีของฉัน -o vers = 3 คือคำตอบ:

$ sudo mount -o vers=3 192.168.172.1:/A/DIR /mnt
  • เซิร์ฟเวอร์ NFS: โฮสต์เดสก์ท็อป vmware แบบ 32 บิตของ Ubuntu 12.04
  • ไคลเอ็นต์ NFS: เซิร์ฟเวอร์ Ubuntu 12.04 แขก vmware 64- บิต (โหมดโฮสต์เท่านั้น)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.