เมานต์ไดรฟ์ NFS บนเซิร์ฟเวอร์ Ubuntu Linux จากไคลเอนต์ macOS


14

ฉันมีเซิร์ฟเวอร์ Ubuntu 14.04 LTS (VM ท้องถิ่นในกรณีของฉัน) ฉันจะเมาท์ไดเร็กทอรีบนเซิร์ฟเวอร์ Linux จากไคลเอ็นต์ Mac OS X Yosemite โดยใช้ NFS ได้อย่างไร

คำตอบ:


35

การตั้งค่าเซิร์ฟเวอร์ Linux

  1. ติดตั้งเซิร์ฟเวอร์ NFS ตามคู่มือUbuntu NFS :

    sudo apt-get install nfs-kernel-server
    
  2. แก้ไข/etc/exports:

    sudo nano /etc/exports
    

    ตอนนี้เพิ่มบรรทัดที่คล้ายกับสิ่งนี้:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu เป็นไดเรกทอรีที่จะส่งออก
    • 172.16.238.0/24เป็นที่อยู่ IP ที่จะยอมรับการเชื่อมต่อจาก ที่อยู่ IP ของไคลเอ็นต์ Mac ควรอยู่ในช่วงนี้ ใช้*เพื่ออนุญาตจากที่อยู่ IP ใด ๆ (แต่ระวังอย่าให้เซิร์ฟเวอร์ NFS ของคุณใช้ได้กับอินเทอร์เน็ตทั้งหมด!)
    • insecure หมายถึงการยอมรับการเชื่อมต่อจากหมายเลขพอร์ตที่ไม่ได้รับสิทธิพิเศษ (สูงกว่า)
    • rw หมายถึงอ่าน - เขียน
    • all_squash,anonuid=1000,anongid=1000บังคับให้อ่านและเขียนทั้งหมดโดยผู้ใช้ / กลุ่มด้วย UID / GID 1000 (1000 เป็นubuntuผู้ใช้ / กลุ่มเริ่มต้นบนเซิร์ฟเวอร์ของฉัน) เรียกใช้idบนเซิร์ฟเวอร์เพื่อค้นหา UID / GID ของคุณ คุณต้องมีตัวเลือกเหล่านี้ยกเว้นว่าเซิร์ฟเวอร์ Ubuntu และไคลเอนต์ Mac ของคุณใช้ UID / GID เดียวกันสำหรับผู้ใช้หลัก
    • no_subtree_check เป็นสิ่งที่มีประสิทธิภาพ
  3. บันทึกไฟล์และเรียกใช้

    sudo exportfs -vra
    

    เพื่อรีโหลดการเอ็กซ์พอร์ต NFS (ฉันไม่แน่ใจว่า-aจำเป็นต้องใช้ตัวเลือกใด)

การตั้งค่าไคลเอนต์ Mac

  1. แก้ไขไฟล์auto_master :

    sudo nano /etc/auto_master
    

    และเปลี่ยนบรรทัดที่ขึ้นต้นด้วย/net:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallocksสร้างการล็อกบนไคลเอนต์แทนที่จะบนเซิร์ฟเวอร์ หากไม่มีสิ่งนี้ Finder จะช้ามากและใช้เวลาตลอดไปในการแสดงไดเรกทอรี
    • nfc ทำให้ชื่อไฟล์ UTF-8 ใช้งานได้
    • actimeo=1ตั้งค่าหมดเวลาใช้งานแคชแอตทริบิวต์สั้นที่สุด โปรดทราบว่าการตั้งค่าเป็น0(หรือเพิ่มnoac) จะทำให้ Finder ไม่ต้องสังเกตเมื่อไฟล์ถูกลบบนเซิร์ฟเวอร์ดังนั้นเราจึงไม่สามารถใช้งานได้
    • โปรดทราบว่าเราไม่ได้ใช้nfsvers=4ที่นี่ ฉันได้รับความตื่นตระหนกของเคอร์เนลบน Mac ดังนั้นฉันจึงกลับไปใช้ค่าเริ่มต้น (NFSv3)
  2. รีเฟรชอัตโนมัติโดยเรียกใช้

    sudo automount -vc
    

    (ถ้าคุณพยายามก่อนหน้านี้ที่จะติดปริมาณ NFS การเลิกเมานท์มันเป็นครั้งแรกเช่นดังนั้น: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. ใน Finder เมนูเลือกไป -> ไปที่โฟลเดอร์และประเภทเช่น/net/SERVER_HOST_NAME/net/fileserver.local

    /net/fileserver.local/home/ubuntuคุณควรหาไดเรกทอรีส่งออกของคุณมีเช่นที่ ลากไดเรกทอรีนี้ไปที่แถบข้าง Finder เพื่อให้สามารถเข้าถึงได้ง่ายในอนาคต


นอกจากนี้ยังมีวิธีแก้ไขสิทธิ์ต่างๆ วิธีเดียวที่ฉันต้องเข้าถึงไฟล์จาก Mac คือให้สิทธิ์ 777 ไปยังโฟลเดอร์ที่ฉันต้องการแชร์ :( มิฉะนั้นระบบจะแสดงข้อความแจ้งให้ฉันทราบว่าฉันไม่มีสิทธิ์เรียกดูโฟลเดอร์
Carlos Vega

@carlosvega all_squash,anonuid=1000,anongid=1000ตัวเลือกดูแลสิทธิ์สำหรับฉัน - ทุกสิ่งที่ UID 1000 เป็นเจ้าของบนเซิร์ฟเวอร์ Ubuntu สามารถเข้าถึงได้จากไคลเอนต์ Mac ไม่มีปัญหาดังนั้นจึงไม่จำเป็นต้อง chmodding ถึง 777
Jo Liss

5
เพียงแค่แสดงความคิดเห็นอย่างรวดเร็วถ้าคุณเพียงต้องการที่จะติด "ในทันที" ที่ด้าน Mac, งานนี้สำหรับฉัน:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
สกอตต์คาร์ลสัน

ใช้ได้กับฉันด้วย Mac OSX Sierra และ Ubuntu 16.04
Antonios Hadjigeorgalis

2
ผู้คนไม่ได้ตระหนักถึงการทดลองและข้อผิดพลาดจำนวนมากที่อยู่เบื้องหลังคำตอบที่ยอดเยี่ยมนี้ โดยเฉพาะอย่างยิ่งส่วน "nfc" เป็นสิ่งสำคัญเมื่อทำการติดตั้ง (หรือrsyncไอเอ็นจี) เซิร์ฟเวอร์ที่ไม่ใช่ MacOS คุณจะไม่สังเกตเห็นในตอนแรก แต่ UTF-8 ไม่เหมือนกันใน OS X เนื่องจากมีอยู่ทุกที่ หากไม่มีชื่อไฟล์ของคุณอาจอ่านไม่ออกและต้องใช้เวลาหลายชั่วโมงเพื่อแก้ไขในภายหลัง ฉันรู้ว่าฉันไม่สามารถใช้ความคิดเห็นที่จะพูดว่า "ขอบคุณ" ดังนั้นฉันจะจบมันที่นี่;)
DanielSmedegaardBuus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.