mount.nfs: การเข้าถึงถูกปฏิเสธโดยเซิร์ฟเวอร์ขณะติดตั้ง


12

ในระบบ Ubuntu ของฉันฉันมีบรรทัดนี้ใน / etc / fstab:

myserver:/home/me /mnt/me nfs rsize=8192,wsize=8192,timeo=14,intr

เมื่อฉันทำ

sudo mount -a

ฉันเข้าใจ:

mount.nfs: access denied by server while mounting myserver:/home/me

ฉันจะวินิจฉัยปัญหานี้ได้อย่างไร เซิร์ฟเวอร์ nfs ยังเป็น Ubuntu

รายละเอียดเพิ่มเติม: ฉันสามารถติดตั้ง nfs นี้ได้จากไคลเอนต์ Ubuntu อื่น ๆ บนเครือข่ายเดียวกันโดยไม่มีปัญหา อย่างไรก็ตามไคลเอนต์ที่มีปัญหาจะแตกต่างกันโดยที่มันทำงานอยู่ภายใน VirtualBox บนระบบ Windows ฉันสามารถปิง "myserver" ได้ดีจากไคลเอนต์ที่มีปัญหา

แก้ไข: / etc / exports บน "myserver":

/home/me *(rw,all_squash,async,no_subtree_check,anonuid=1000,anongid=1000)

/etc/hosts.allow และ /etc/hosts.deny ที่ "myserver" เป็นทั้งความคิดเห็นทั้งหมด และโปรดจำไว้ว่าฉันสามารถเชื่อมต่อได้ดีจากลูกค้ารายอื่นในเครือข่ายเดียวกัน


คุณได้ลองปรับแต่งล็อกไฟล์ในเซิร์ฟเวอร์ ubuntu nfs ระยะไกลแล้วหรือยัง? ดูว่ามีความพยายามในการเมาท์ nfs จากเครื่องเสมือนในกล่องหน้าต่าง
Patrick R

ไฟล์บันทึกใด
JoelFan

มีสิ่งใดปรากฏขึ้นใน / var / log / messages หรือไม่
Matt Simmons

คำตอบ:


22

พบมัน!

หนึ่งในบันทึกมีบรรทัด:

refused mount request from 192.168.1.108 for /home/me (/home/me): illegal port 64112

ฉัน googled และพบว่าเนื่องจากพอร์ตเกิน 1024 ฉันต้องเพิ่มตัวเลือก "ไม่ปลอดภัย" ในบรรทัดที่เกี่ยวข้องใน / etc / exports บนเซิร์ฟเวอร์ เมื่อฉันทำอย่างนั้น (และเรียกใช้ exportfs -r) การเมานต์ -a บนไคลเอนต์ทำงาน


3
ในขณะที่ใช้งานได้ในขณะนี้ผู้ใช้ที่ไม่ใช่รูทสามารถแสร้งเป็นอินสแตนซ์ใหม่ของ NFS และสามารถเข้าถึงไฟล์ทั้งหมดของคุณได้ ไม่มีใครรู้ว่ามีวิธีที่จะได้รับไคลเอนต์ nfs เพื่อหยุดการใช้หมายเลขพอร์ตสูงเหล่านี้หรือไม่
กึ่ง

ขอบคุณมากสำหรับสิ่งนี้ช่วยชีวิตฉันไว้ พร้อมที่จะยอมแพ้หลังจากใช้ Google เป็นเวลาหนึ่งชั่วโมง ฉันไม่เห็นในบันทึกเพราะฉัน grepping สำหรับ "nfs" แต่นี่คือการบันทึก "mountd" ของฉัน
คอรี J

1
@Cory J ขอบคุณที่สละเวลาเพื่อแจ้งให้เราทราบว่ามีส่วนช่วย! ความคิดเห็นของคุณทำให้ฉันพิจารณาคำถามนี้อีกครั้งและฉันเห็นว่ามีผู้ชมมากกว่า 12K! ดังนั้นอาจช่วยคนอื่น แต่คุณเป็นคนเดียวที่พูดว่า "ขอบคุณ"! :)
JoelFan

10

คำถามนี้เกี่ยวข้องกับวิธีการตั้งค่าเครือข่ายสำหรับ vm ของคุณ

โดยค่าเริ่มต้นด้วย VirtualBox คุณมีเครือข่ายNAT ซึ่งส่งผลในการแปลพอร์ต

ทีละขั้นตอนนี้ให้:

  1. ไคลเอ็นต์ NFS กำลังใช้พอร์ตที่สงวนไว้ (<1024 ... ที่สามารถเปิดได้โดยรูท -> ที่ปลอดภัยเท่านั้น)
  2. Virtualbox ทำการแปลพอร์ต (NAT) -> พอร์ตไคลเอ็นต์ตอนนี้มากกว่า 1024
  3. เซิร์ฟเวอร์ NFS ปฏิเสธการเชื่อมต่อสำหรับพอร์ตที่ไม่ปลอดภัยนั้น

ดังที่ @JoelFan กล่าวถึงหนึ่งการแก้ไขคือการตั้งค่าinsecureตัวเลือกไปยังเซิร์ฟเวอร์ นี่เป็นการแก้ไขด่วน แต่ ... ไม่ปลอดภัย;)

สิ่งที่ได้รับการแก้ไขสำหรับฉัน (ในลักษณะที่ปลอดภัย) คือการเปลี่ยนจากNATเป็นบริดจ์เครือข่ายสำหรับ vm นี้ ด้วยวิธีนี้ vm ของฉันมีที่อยู่ IP ของตัวเองและไม่มีการแปลพอร์ต


2

คาดเดาสิ่งที่ ... สำหรับฉันแหล่งที่มาของข้อผิดพลาดเดียวกันคือรุ่นไม่ตรงกันระหว่างไคลเอนต์ NFS ของฉันและเซิร์ฟเวอร์

บันทึกการทำงานเงียบเหมือนไม่มีอะไรเกิดขึ้นและมีเฉพาะ nfswatch ที่ทำงานบนฝั่งเซิร์ฟเวอร์เท่านั้นที่ช่วยให้ฉันอธิบายสถานการณ์ได้

ปัญหาได้รับการแก้ไขโดยการเพิ่มตัวเลือกการเมาท์ nfsver ที่ฝั่งไคลเอ็นต์:

server:/path   /mount/point   nfs   nfsvers=3   0 0

นี่เป็นปัญหาของฉันด้วย Debian 6 (Squeeze) mountติดตั้งแพ็คเกจ v2.17.2-9 แล้ว โซลูชันทำงานได้
Alastair Irvine

1

คุณได้ตรวจสอบแล้วว่าการจำแนกชื่อถูกต้องบนเซิร์ฟเวอร์สำหรับลูกค้าที่พยายามเชื่อมต่อ (และมีการระบุไว้ในไฟล์ส่งออก) หรือไม่


ดูการแก้ไขของฉันในคำถาม ... ฉันอนุญาตให้ทุกคน
JoelFan

0

ตรวจสอบไฟล์hosts.allowและดูhosts.denyว่าไคลเอนต์ถูกป้อนอย่างถูกต้องหรือไม่ เมื่อสิ่งนี้ไม่ช่วยกรุณาโพสต์ไฟล์ส่งออกของคุณ


ดูการแก้ไขของฉันในคำถาม
JoelFan

0

ในกรณีนี้จะช่วยให้คนอื่นฉันมี Synology NAS และจุด NFS จริงเพิ่มรายการอื่นในเส้นทาง

ฉันพยายามเมานต์ "xxx.xxx.xxx.xxx/folder" เพราะนี่คือสิ่งที่ฉันทำใน Windows แต่สำหรับ Ubuntu ที่ใช้ NFS ฉันต้องใช้ "xxx.xxx.xxx.xxx/volume1/folder"

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