ติดตั้ง nfs server บน ubuntu 16.04 server

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 5-07-60
ดูแลโดย วิบูลย์

สมมติ
nfs server มี IP 10.168.10.223
nfs client มี IP 10.168.10.224

ขั้นตอนที่ nfs server
1. ติดตั้งโปรแกรม

sudo apt-get install nfs-kernel-server

2. สร้างไดเรกทอรี ที่จะเป็นพื้นที่ให้เครื่องอื่น ๆ มาใช้ไฟล์ร่วมกัน เช่น /nfsdisk และมีโฟลเดอร์สำหรับ app1 เป็นต้น

sudo mkdir -p /nfsdisk/app1
sudo chmod 777 /nfsdisk/app1

3. สำรองไฟล์เผื่อทำพลาด

sudo cp -a /etc/exports /etc/exports.backup

4. พิมพ์คำสั่งนี้เพื่อเพิ่มบรรทัดข้อความลงไปในไฟล์ /etc/exports แทนการแก้ไขไฟล์ด้วยเอดิเตอร์ ดังนี้
สมมติว่า อนุญาต net 10.168.10.0/24

echo '/nfsdisk/app1  10.168.10.0/24(rw,async,insecure,no_subtree_check,nohide)' | sudo tee -a /etc/exports

หรือจะทำแบบใช้เอดิเตอร์แก้ไขในไฟล์ /etc/exports (ตัวอย่างใช้ editor ชื่อ vi หรือเลือกใช้ nano ก็ได้)
sudo vi /etc/exports
โดยเพิ่มบรรทัดนี้ (โปรดเลียนแบบ ห้าม copy เหมือน และตัวอย่างนี้อนุญาต net 10.168.10.0/24)
/nfsdisk/app1 10.168.10.0/24(rw,async,insecure,no_subtree_check,nohide)

5. สั่งทำงานบรรทัดข้างล่างนี้หลังจากแก้ไขไฟล์ exports

sudo exportfs -ra
sudo service nfs-kernel-server restart


ต่อไปเป็นขั้นตอนทำที่ client ที่จะเชื่อมต่อเข้ามา
6. ติดตั้งโปรแกรม

sudo apt install nfs-common

7. สร้างไดเรกทอรี

sudo mkdir -p /shareapp1

8. ทดสอบการเชื่อมต่อกับ nfs server หากทำสำเร็จ จากนี้ก็ไปทำให้มันเชื่อมต่ออย่างถาวรในข้อต่อไป

sudo mount  -t  nfs  -o  proto=tcp,port=2049  10.168.10.223:/nfsdisk/app1  /shareapp1

ตรวจสอบ

mount -l | grep nfs

ถ้าใช้คำสั่ง ls ดูรายชื่อไฟล์ ก็จะเห็นว่าสามารถเข้าถึงไดเรกทอรีนี้ได้แล้ว

ls -l /shareapp1

ทดสอบสร้างไฟล์ test.txt

echo "test test" > /shareapp1/test.txt

9. ใส่ข้อมูลในไฟล์ fstab เพื่อให้เมื่อเปิดเครื่องแล้วไปเชื่อมต่อกับ nfs server ด้วย
สำรองไฟล์เผื่อทำพลาด

sudo cp  -a  /etc/fstab  /etc/fstab.backup

10. พิมพ์คำสั่งนี้เพื่อเพิ่มบรรทัดข้อความลงไปในไฟล์ /etc/fstab แทนการแก้ไขไฟล์ด้วยเอดิเตอร์ ดังนี้
สมมติว่า nfs server IP คือ 10.168.10.223

echo '10.168.10.223:/nfsdisk/app1  /shareapp1  nfs  defaults  0  0' | sudo tee -a /etc/fstab

หรือจะทำแบบใช้เอดิเตอร์แก้ไขในไฟล์ /etc/fstab (ตัวอย่างใช้ editor ชื่อ vi หรือเลือกใช้ nano ก็ได้)
sudo vi /etc/fstab
โดยเพิ่มบรรทัดนี้ (โปรดเลียนแบบ ห้าม copy เหมือน และตัวอย่างนี้ได้รับอนุญาตจาก 10.168.10.223)
10.168.10.223:/nfsdisk/app1 /shareapp1 nfs defaults 0 0

Reference: อ่านเรื่อง security ที่ควรทำ http://fullyautolinux.blogspot.com/2015/11/nfs-norootsquash-and-suid-basic-nfs.html