目次

1. ประโยชน์ของการสร้าง File Server บน Ubuntu คืออะไร?

File Server คืออะไร?

File Server คือเซิร์ฟเวอร์ที่ให้บริการกลไกให้หลายอุปกรณ์บนเครือข่ายสามารถบันทึกและแชร์ไฟล์ร่วมกันได้ ช่วยเพิ่มประสิทธิภาพในการแลกเปลี่ยนไฟล์ภายในเครือข่ายบริษัทหรือเครือข่ายภายในบ้าน รวมถึงมีข้อดีหลายประการ เช่น การจัดการข้อมูลแบบรวมศูนย์และการสำรองข้อมูลที่ง่ายขึ้น

ตัวอย่างเช่น หากหลายคนต้องการแก้ไขเอกสารเดียวกัน การบันทึกไว้ที่ File Server จะช่วยให้สามารถแชร์ไฟล์เวอร์ชันล่าสุดได้ตลอดเวลา ดีกว่าการบันทึกไว้ในเครื่อง PC แต่ละเครื่องแล้วค่อยส่งไปมา นอกจากนี้ ยังช่วยหลีกเลี่ยงความเสี่ยงจากการเก็บข้อมูลไว้ใน PC แต่ละเครื่อง และเป็นวิธีที่มีประสิทธิภาพในการป้องกันข้อมูลสูญหาย

ข้อดีของการใช้ Ubuntu คืออะไร?

มี OS หลายตัวที่สามารถใช้สร้าง File Server ได้ แต่ในบรรดา OS เหล่านั้น Ubuntu เป็นตัวเลือกที่ได้รับความนิยมสูงมาก เหตุผลมีดังนี้:

1. ใช้งานได้ฟรี

Ubuntu เป็น Linux Distribution แบบ Open Source ซึ่งไม่มีค่าลิขสิทธิ์ใดๆ ทำให้เป็นจุดเด่นที่สำคัญสำหรับบุคคลหรือองค์กรที่ต้องการสร้างสภาพแวดล้อมเซิร์ฟเวอร์โดยประหยัดงบประมาณ

2. มีน้ำหนักเบาและเสถียรสูง

Ubuntu ใช้ทรัพยากรน้อย และสามารถทำงานได้แม้ใน PC เก่าหรือ Raspberry Pi นอกจากนี้ หากเลือกเวอร์ชัน LTS (Long Term Support) ก็จะได้รับการอัปเดตด้านความปลอดภัยและการแก้ไขข้อผิดพลาดเป็นระยะเวลานาน จึงเหมาะสำหรับการใช้งานเป็นเซิร์ฟเวอร์อย่างยิ่ง

3. มีเครื่องมือมากมาย เช่น Samba และ NFS

ใน Ubuntu สามารถติดตั้งและตั้งค่าระบบไฟล์เครือข่าย เช่น Samba (สำหรับการแชร์ไฟล์กับ Windows) และ NFS (สำหรับการแชร์ไฟล์ระหว่าง Linux/Unix) ได้ง่าย มีแพ็กเกจและเอกสารที่ครบครัน ทำให้เป็นสภาพแวดล้อมที่ง่ายต่อการสร้างแม้สำหรับผู้เริ่มต้น

4. ชุมชนและข้อมูลที่อุดมสมบูรณ์

Ubuntu ได้รับการใช้งานอย่างแพร่หลายทั่วโลก ดังนั้นเมื่อเกิดปัญหาใดๆ ก็สามารถค้นหาวิธีแก้ไขได้มากมาย นอกจากนี้ยังมีข้อมูลภาษาไทยจำนวนมาก ทำให้ผู้ที่ไม่ถนัดภาษาอังกฤษก็สามารถใช้งานได้อย่างมั่นใจ

เหมาะสำหรับการใช้งานที่บ้านหรือสำนักงานขนาดเล็ก

File Server ที่สร้างด้วย Ubuntu เหมาะอย่างยิ่งสำหรับการแชร์ข้อมูลระหว่างอุปกรณ์หลายเครื่องภายในบ้าน หรือสำหรับการทำงานร่วมกันในสภาพแวดล้อม SOHO (Small Office/Home Office) สามารถสร้างเซิร์ฟเวอร์ที่ยืดหยุ่นและมีราคาถูกกว่าการซื้อ NAS (Network Attached Storage) ทั่วไป เพื่อตอบสนองวัตถุประสงค์เฉพาะของคุณ

ตัวอย่างการใช้งานที่เป็นไปได้มีดังนี้:

  • Media Server สำหรับแชร์รูปภาพและวิดีโอให้ทุกคนในครอบครัว
  • การแชร์เอกสาร เช่น ใบแจ้งหนี้และใบเสนอราคาสำหรับธุรกิจขนาดเล็ก
  • การแลกเปลี่ยนโค้ดและเอกสารภายในทีมพัฒนา
侍エンジニア塾

2. เปรียบเทียบวิธีการสร้าง File Server | ความแตกต่างระหว่าง Samba และ NFS

เมื่อสร้าง File Server บน Ubuntu วิธีการหลักที่ใช้คือ Samba และ NFS ทั้งสองเป็นวิธีการแชร์ไฟล์ผ่านเครือข่าย แต่มีความแตกต่างกันในด้าน Client OS ที่รองรับและคุณสมบัติ ในที่นี้จะอธิบายคุณสมบัติของแต่ละวิธีและเปรียบเทียบว่าควรเลือกใช้แบบใด

Samba คืออะไร? มีความเข้ากันได้สูงกับ Windows

Samba (แซมบ้า) เป็นซอฟต์แวร์ที่ช่วยให้สามารถใช้งานโปรโตคอลการแชร์ไฟล์ของ Windows ที่เรียกว่า SMB (Server Message Block) ในสภาพแวดล้อม Linux ได้ ด้วยการติดตั้ง Samba บน Ubuntu คุณสามารถสร้าง File Server ที่สามารถเข้าถึงได้จาก Windows PC เหมือนกับ Network Drive

คุณสมบัติของ Samba

  • มีความเข้ากันได้สูงกับ Windows
  • สามารถเข้าถึงโฟลเดอร์ที่แชร์ได้ง่ายจาก “File Explorer” ของ Windows
  • สามารถตั้งค่าการยืนยันตัวตนผู้ใช้และการจัดการสิทธิ์การเข้าถึงได้อย่างละเอียด
  • สามารถใช้เครื่องมือตั้งค่าแบบ GUI (เช่น Webmin) ได้

กรณีที่ Samba เหมาะสม

  • ต้องการแชร์ไฟล์กับ Windows Client
  • ต้องการแชร์ไฟล์ระหว่าง OS ที่แตกต่างกัน (เช่น Windows และ Linux)
  • ต้องการการทำงานที่เป็นมิตรต่อผู้ใช้ในสภาพแวดล้อมที่บ้านหรือสำนักงาน

NFS คืออะไร? สามารถแชร์ไฟล์ระหว่าง Linux/Unix ได้อย่างรวดเร็ว

NFS (Network File System) เป็นโปรโตคอลการแชร์ไฟล์ที่ใช้หลักๆ สำหรับ Linux หรือ Unix ด้วยกัน จากมุมมองของ Client PC สามารถ Mount โฟลเดอร์ของ NFS Server ได้เหมือนกับไดเรกทอรีในเครื่อง

คุณสมบัติของ NFS

  • เหมาะสำหรับการแชร์ไฟล์ระหว่าง Linux ด้วยกัน
  • มีน้ำหนักเบาและมีความเร็วในการถ่ายโอนสูง
  • สามารถแชร์ข้อมูลขนาดใหญ่ได้ด้วยการตั้งค่าที่เรียบง่าย
  • ต้องระมัดระวังในการตั้งค่าความปลอดภัย (การควบคุมการเข้าถึงแบบ IP-based)

กรณีที่ NFS เหมาะสม

  • สภาพแวดล้อมเซิร์ฟเวอร์ที่แชร์ไฟล์ระหว่าง Linux ด้วยกัน
  • ใช้เป็น Shared Directory ในทีมพัฒนา
  • ต้องการการถ่ายโอนไฟล์ที่เบาและรวดเร็ว

ตารางเปรียบเทียบ Samba และ NFS

รายการSambaNFS
OS ที่รองรับWindows / Linux / macOS และอื่นๆLinux / Unix (ไม่แนะนำสำหรับ Windows)
โปรโตคอลSMB (CIFS)NFS
ความเร็วปานกลาง (ขึ้นอยู่กับการตั้งค่า)สูง
การตั้งค่าความปลอดภัยสามารถยืนยันตัวตนผู้ใช้, เข้ารหัสได้ควบคุมแบบ IP-based, รองรับ Kerberos
ความยากในการตั้งค่าค่อนข้างซับซ้อนเรียบง่าย
การใช้งานการแชร์ข้าม OSการแชร์ที่มีประสิทธิภาพระหว่าง Linux

ควรเลือกใช้อันไหน?

โดยสรุปแล้ว การเลือกใช้แบบใดขึ้นอยู่กับ “OS ที่จะแชร์ด้วย”, “วิธีการใช้งาน” และ “ลำดับความสำคัญ”

  • หากวัตถุประสงค์หลักคือการแชร์ไฟล์กับ Windows, Samba เหมาะสมที่สุด
  • หากเป็นการแชร์ไฟล์ระหว่าง Linux ด้วยกัน, NFS นั้นง่ายและรวดเร็ว
  • ในกรณีที่มีสภาพแวดล้อมผสมผสาน, การใช้ Samba + NFS ร่วมกัน ก็เป็นอีกหนึ่งทางเลือก

ด้วยความยืดหยุ่นของ Ubuntu ทำให้สามารถติดตั้งได้ทั้งสองแบบตามสถานการณ์ที่ต้องการ

3. [สำหรับ Samba] ขั้นตอนการสร้าง File Server บน Ubuntu

จากนี้ไป จะอธิบาย วิธีการติดตั้ง Samba บน Ubuntu เพื่อสร้าง File Server อย่างละเอียดทีละขั้นตอน วิธีนี้มีประสิทธิภาพเป็นพิเศษสำหรับวัตถุประสงค์ในการแชร์ไฟล์กับ Windows

การเตรียมการเบื้องต้น | การอัปเดต Ubuntu และการตรวจสอบแพ็กเกจ

ก่อนอื่น ให้แน่ใจว่าระบบ Ubuntu ของคุณเป็นเวอร์ชันล่าสุด เปิด Terminal แล้วรันคำสั่งต่อไปนี้:

sudo apt update
sudo apt upgrade

หลังจากนั้น ให้ตรวจสอบแพ็กเกจที่จำเป็น รวมถึงตรวจสอบว่า Samba ได้รับการติดตั้งแล้วหรือไม่

smbclient --version

หากไม่มีการแสดงผลใดๆ ให้ติดตั้ง Samba ในขั้นตอนถัดไป

ขั้นตอนการติดตั้ง Samba

ใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ Samba:

sudo apt install samba -y

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้ตรวจสอบว่าบริการทำงานอยู่หรือไม่

sudo systemctl status smbd

หากแสดง “active (running)” แสดงว่าใช้ได้

การตั้งค่า smb.conf และการสร้าง Shared Folder

ไฟล์ตั้งค่าของ Samba อยู่ที่ /etc/samba/smb.conf ก่อนอื่น ให้สร้าง Shared Folder ในที่นี้จะใช้ /srv/samba/shared เป็น Shared Directory ตัวอย่าง

sudo mkdir -p /srv/samba/shared
sudo chmod 777 /srv/samba/shared

ถัดไป แก้ไขไฟล์ตั้งค่า

sudo nano /etc/samba/smb.conf

เพิ่มเนื้อหาต่อไปนี้ที่ท้ายไฟล์:

[Shared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = yes

การตั้งค่านี้จะทำให้โฟลเดอร์ทำงานเป็นโฟลเดอร์สาธารณะที่ทุกคนสามารถอ่านและเขียนได้ หากต้องการพิจารณาด้านความปลอดภัย ให้ดำเนินการ “การตั้งค่าการยืนยันตัวตนผู้ใช้” ตามที่กล่าวไว้ด้านล่าง

หากต้องการให้การตั้งค่ามีผล ให้รีสตาร์ท Samba:

sudo systemctl restart smbd

การสร้างผู้ใช้ Samba และการตั้งค่าสิทธิ์การเข้าถึง

เพื่อให้การแชร์มีความปลอดภัย ควรสร้างผู้ใช้ Samba และกำหนดข้อจำกัดการเข้าถึง

  1. สร้างผู้ใช้ Local ของ Ubuntu (ข้ามขั้นตอนนี้หากมีอยู่แล้ว)
sudo adduser sambauser
  1. ลงทะเบียนเป็นผู้ใช้ Samba
sudo smbpasswd -a sambauser
  1. เปลี่ยนเจ้าของไดเรกทอรีและจำกัดการเข้าถึง
sudo chown sambauser:sambauser /srv/samba/shared
sudo chmod 770 /srv/samba/shared
  1. แก้ไข smb.conf เพื่อกำหนดให้ต้องมีการยืนยันตัวตน:
[SecureShared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   valid users = sambauser

วิธีการเชื่อมต่อจาก Windows Client

เมื่อตั้งค่า Samba Server เสร็จสมบูรณ์แล้ว คุณสามารถเชื่อมต่อจาก Windows PC ได้โดยทำตามขั้นตอนต่อไปนี้:

  1. เปิด File Explorer
  2. ป้อน Ubuntu Server IP addressShared ในแถบที่อยู่
  3. หากมีการร้องขอชื่อผู้ใช้และรหัสผ่าน ให้ป้อนข้อมูลของ sambauser ที่สร้างไว้

หากเชื่อมต่อสำเร็จ คุณสามารถอ่านและเขียนไฟล์ได้เหมือนกับโฟลเดอร์ทั่วไป

4. [สำหรับ NFS] ขั้นตอนการสร้าง File Server บน Ubuntu

NFS (Network File System) เป็นโปรโตคอลการแชร์ไฟล์เครือข่ายที่มีน้ำหนักเบาและรวดเร็ว ซึ่งใช้กันอย่างแพร่หลายในสภาพแวดล้อม Linux และ Unix สามารถติดตั้งบน Ubuntu ได้อย่างง่ายดาย และช่วยให้สามารถแลกเปลี่ยนไฟล์ระหว่างเครื่อง Linux หลายเครื่องได้อย่างราบรื่น

ในที่นี้ จะอธิบาย ขั้นตอนการสร้าง NFS Server บน Ubuntu ทีละขั้นตอน

วิธีการติดตั้ง NFS Server

ก่อนอื่น ให้ติดตั้งแพ็กเกจ NFS Server รันคำสั่งต่อไปนี้บน Terminal ของ Ubuntu ฝั่ง Server:

sudo apt update
sudo apt install nfs-kernel-server -y

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้ตรวจสอบว่าบริการทำงานอยู่หรือไม่

sudo systemctl status nfs-server

หากแสดง “active (running)” แสดงว่าใช้ได้

การตั้งค่า /etc/exports และการกำหนด Shared Directory

ถัดไป ให้สร้าง Shared Directory ที่ต้องการให้ Client สามารถเข้าถึงได้ ในที่นี้จะยกตัวอย่างการใช้ /srv/nfs/shared

sudo mkdir -p /srv/nfs/shared
sudo chown nobody:nogroup /srv/nfs/shared
sudo chmod 755 /srv/nfs/shared

จากนั้น แก้ไขไฟล์ตั้งค่า NFS /etc/exports

sudo nano /etc/exports

เพิ่มข้อความต่อไปนี้ (※ เปลี่ยนส่วน 192.168.1.0/24 ให้เป็นเครือข่ายของคุณ):

/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)

หากต้องการให้การตั้งค่ามีผล ให้รันคำสั่งต่อไปนี้:

sudo exportfs -a
sudo systemctl restart nfs-server

เท่านี้ การตั้งค่า NFS Server ก็เสร็จสมบูรณ์

ขั้นตอนการ Mount ฝั่ง Client (ฝั่ง Linux)

บนเครื่อง Linux ฝั่ง Client ที่ต้องการเข้าถึง NFS Server ให้ติดตั้งแพ็กเกจ NFS Client เช่นกัน

sudo apt update
sudo apt install nfs-common -y

สร้างไดเรกทอรีสำหรับ Mount (ตัวอย่าง: /mnt/nfs_shared)

sudo mkdir -p /mnt/nfs_shared

จากนั้น ทำการ Mount NFS คุณสามารถ Mount ได้ด้วยคำสั่งต่อไปนี้:

sudo mount -t nfs 192.168.1.10:/srv/nfs/shared /mnt/nfs_shared

192.168.1.10 คือ IP Address ของ NFS Server

เมื่อ Mount เสร็จสมบูรณ์ Shared Directory ของฝั่ง Server จะสามารถใช้งานได้เหมือนโฟลเดอร์ที่กำหนดใน Client

การตั้งค่า Mount อัตโนมัติเมื่อเริ่มต้นระบบ (ทางเลือก)

หากต้องการ Mount โดยอัตโนมัติเมื่อเริ่มต้นระบบ ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/fstab:

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults 0 0

การตั้งค่านี้จะทำให้ NFS Shared ถูก Mount โดยอัตโนมัติเมื่อระบบเริ่มต้น

ข้อจำกัดการเข้าถึงเฉพาะของ NFS และข้อควรระวัง

NFS แตกต่างจาก Samba โดยพื้นฐานแล้วใช้ การควบคุมการเข้าถึงแบบ IP Address ในการตั้งค่า /etc/exports ควรระบุเครือข่ายหรือโฮสต์ที่เชื่อถือได้เท่านั้นอย่างชัดเจน

นอกจากนี้ หาก UID (User ID) และ GID (Group ID) ไม่ตรงกันระหว่าง Client และ Server การระบุสิทธิ์การเป็นเจ้าของไฟล์อาจไม่ถูกต้อง ดังนั้น การ ใช้งานโดยให้ UID/GID ของผู้ใช้ที่เข้าถึง Shared Folder เป็นแบบเดียวกัน จึงเป็นสิ่งที่ดีที่สุด

เท่านี้ การสร้าง Ubuntu File Server โดยใช้ NFS ก็เสร็จสมบูรณ์ เมื่อเทียบกับ Samba แล้ว NFS มีความเรียบง่ายและรวดเร็วกว่า จึงเหมาะสำหรับการแชร์ไฟล์ระหว่าง Linux อย่างยิ่ง

5. ความปลอดภัยและแนวทางปฏิบัติที่ดีที่สุดในการดำเนินงาน

File Server เป็นกลไกที่มีประโยชน์มากสำหรับการแชร์ข้อมูลบนเครือข่าย แต่ในทางกลับกัน หากไม่มีมาตรการรักษาความปลอดภัยที่เหมาะสม ก็มีความเสี่ยงสูงที่จะเกิดข้อมูลรั่วไหลหรือการเข้าถึงโดยไม่ได้รับอนุญาต ในส่วนนี้จะแนะนำ แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยและการจัดการ ที่ควรคำนึงถึงในการดำเนินงาน Ubuntu File Server

จำกัดการเข้าถึงด้วย Firewall (ufw)

Ubuntu มี “ufw (Uncomplicated Firewall)” ติดตั้งมาให้โดยมาตรฐาน ในการแชร์ไฟล์โดยใช้ Samba หรือ NFS คุณสามารถ ปิดกั้นการสื่อสารที่ไม่จำเป็นโดยการเปิดพอร์ตที่ใช้โดยชัดเจน

ตัวอย่างการเปิดพอร์ตสำหรับ Samba

sudo ufw allow Samba

นี่คือการตั้งค่าที่ง่ายและสะดวกในการเปิดพอร์ตทั้งหมดที่จำเป็นสำหรับการสื่อสาร Samba (137, 138, 139, 445)

ตัวอย่างการเปิดพอร์ตสำหรับ NFS

NFS มีพอร์ตที่ใช้แตกต่างกันไปตามสภาพแวดล้อม ดังนั้นจึงควรตั้งค่าแยกกันดังนี้ หรือกำหนดพอร์ตตายตัวตามความจำเป็น

sudo ufw allow from 192.168.1.0/24 to any port nfs

192.168.1.0/24 คือช่วงเครือข่ายที่ได้รับอนุญาต

การเพิ่มความปลอดภัยในการควบคุมการเข้าถึงและการยืนยันตัวตนผู้ใช้

การจำกัดการเข้าถึงของ Samba

  • ใช้ valid users เพื่อจำกัดผู้ใช้ที่สามารถเข้าถึงแต่ละ Shared ได้
  • อนุญาตการเข้าถึงแบบอ่านอย่างเดียวด้วย read only = yes
  • สามารถจำกัดการเข้าถึงแบบ IP-based ได้ด้วย hosts allow หรือ hosts deny

ตัวอย่างการตั้งค่า (smb.conf):

[SecureShared]
   path = /srv/samba/secure
   read only = no
   valid users = user1
   hosts allow = 192.168.1.

การจำกัดการเข้าถึงของ NFS

  • ระบุ IP หรือเครือข่ายที่อนุญาตให้เข้าถึงใน /etc/exports
  • ระบุ rw (อ่าน/เขียน) / ro (อ่านอย่างเดียว) อย่างชัดเจน
  • ใช้ root_squash เพื่อจำกัดสิทธิ์ root ของ Client

ตัวอย่างการตั้งค่า:

/srv/nfs/secure 192.168.1.0/24(rw,sync,no_subtree_check,root_squash)

การตรวจสอบ Log และการตรวจจับความผิดปกติ

ในการค้นหาสาเหตุของปัญหาในเซิร์ฟเวอร์ว่ามีการเข้าถึงโดยไม่ได้รับอนุญาตหรือข้อผิดพลาดหรือไม่ การตรวจสอบ Log เป็นสิ่งสำคัญในการดำเนินงานประจำวัน

  • Log ของ Samba: /var/log/samba/log.smbd
  • Log ที่เกี่ยวข้องกับ NFS: /var/log/syslog หรือ journalctl -u nfs-server

หากใช้เครื่องมือเช่น fail2ban ก็สามารถตั้งค่าให้บล็อก IP ที่มีการพยายามล็อกอินล้มเหลวเกินจำนวนครั้งที่กำหนดได้

การสร้างกลไกการสำรองข้อมูลอัตโนมัติ

ใน File Server การสำรองข้อมูลเป็นประจำมีความจำเป็นอย่างยิ่ง เพื่อเตรียมพร้อมสำหรับข้อผิดพลาดในการทำงานหรือความล้มเหลวของฮาร์ดแวร์

ตัวอย่างวิธีการสำรองข้อมูล

  • การสำรองข้อมูลแบบ Differential โดยใช้ rsync
  • การรันอัตโนมัติตามกำหนดเวลาด้วย cron
  • การบันทึกซ้ำไปยัง External HDD หรือ NAS
  • การซิงโครไนซ์กับ Online Storage (Google Drive, Dropbox และอื่นๆ) (โดยใช้ rclone และอื่นๆ)

ตัวอย่าง: การตั้งค่า Script สำหรับสำรองข้อมูลทุกวันเวลา 2.00 น. ด้วย rsync และ cron

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/shared/

การอัปเดตซอฟต์แวร์อย่างสม่ำเสมอ

เพื่อป้องกันช่องโหว่ด้านความปลอดภัย การอัปเดตแพ็กเกจเป็นประจำ เป็นสิ่งสำคัญ

sudo apt update && sudo apt upgrade -y

นอกจากนี้ การเลือกใช้ Ubuntu เวอร์ชัน LTS (Long Term Support) จะช่วยให้ได้รับการอัปเดตด้านความปลอดภัยที่เสถียรเป็นระยะเวลานาน

การดำเนินงาน File Server ไม่ใช่ “ทำครั้งเดียวจบ” เพื่อให้การทำงานมีเสถียรภาพอยู่เสมอ การคำนึงถึงความปลอดภัย การสำรองข้อมูล และการบำรุงรักษา และจัดการอย่างต่อเนื่องทุกวันเป็นสิ่งสำคัญ

6. ปัญหาที่พบบ่อยและการแก้ไข (Troubleshooting)

แม้จะสร้าง File Server เสร็จแล้ว ก็ยังมีปัญหาหรือข้อผิดพลาดในการตั้งค่าที่มักเกิดขึ้นเป็นประจำ ในส่วนนี้ได้รวบรวม ปัญหาที่พบบ่อยที่สุดและวิธีแก้ไข สำหรับ Ubuntu File Server ที่ใช้ Samba และ NFS

ไม่สามารถเชื่อมต่อได้ / มองไม่เห็น Shared

อาการ

  • ไม่สามารถเข้าถึง Shared Folder จาก Windows หรือ Linux Client ได้
  • ไม่เห็นเซิร์ฟเวอร์บนเครือข่าย

สาเหตุหลักและวิธีแก้ไข

สาเหตุวิธีแก้ไข
ถูก Firewall บล็อกรัน sudo ufw allow Samba หรือ sudo ufw allow from [IP] to any port nfs
การแก้ไขชื่อเซิร์ฟเวอร์ล้มเหลวเข้าถึงโดยตรงด้วย IP Address: 192.168.1.10Shared
บริการ Samba/NFS หยุดทำงานรีสตาร์ท sudo systemctl restart smbd หรือ nfs-server
ข้อผิดพลาดในการตั้งค่าเครือข่ายของ Clientตรวจสอบการตั้งค่า Subnet และ Gateway

ข้อผิดพลาดในการเข้าถึง

อาการ

  • ไม่สามารถสร้างหรือแก้ไขไฟล์ได้
  • แสดงข้อความ “Access Denied”

สาเหตุหลักและวิธีแก้ไข

สาเหตุวิธีแก้ไข
สิทธิ์การเป็นเจ้าของไดเรกทอรีไม่ถูกต้องsudo chown -R ผู้ใช้:กลุ่ม /Shared Folder
สิทธิ์ไม่เพียงพอปรับสิทธิ์การเข้าถึงด้วย sudo chmod -R 770 /Shared Folder
ข้อผิดพลาดในไฟล์ตั้งค่า Sambaระบุ read only = no ในส่วน [shared]
UID/GID ไม่ตรงกันใน NFSปรับ User ID ของ Client และ Server ให้ตรงกัน (ตรวจสอบด้วยคำสั่ง id)

Mount ไม่คงอยู่ / Shared หายไปหลังรีสตาร์ท

อาการ

  • Shared Folder ที่ Mount ไว้บน Linux Client หายไปหลังรีสตาร์ท
  • ต้องรันคำสั่ง Mount ด้วยตนเองทุกครั้ง

สาเหตุหลักและวิธีแก้ไข

สาเหตุวิธีแก้ไข
ลืมเขียนใน fstabเพิ่มการตั้งค่า Mount อัตโนมัติใน /etc/fstab
การเชื่อมต่อเครือข่ายช้ากว่า fstabเพิ่ม nofail,_netdev ใน mount options
การตอบสนองช้าของ Serverเพิ่มการตั้งค่า Timeout เช่น timeo=14 ในขณะ Mount

ตัวอย่างการเขียน fstab (สำหรับ NFS):

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults,_netdev,nofail 0 0

มองไม่เห็นไฟล์ / ไม่ซิงค์

อาการ

  • ไม่เห็นไฟล์ที่บันทึกจาก Client อื่น
  • การเปลี่ยนแปลงไม่แสดงผลทันที

สาเหตุหลักและวิธีแก้ไข

สาเหตุวิธีแก้ไข
ความล่าช้าจาก Cacheมักเป็นปัญหาสั้นๆ กด Ctrl + F5 เพื่อรีเฟรช หรือเชื่อมต่อใหม่
การตั้งค่า Buffering ของ Clientระบุ actimeo=0 เมื่อ Mount NFS เพื่อให้ซิงค์ทันที
การเขียนแบบ Delayed ใน Sambaเพิ่ม strict sync = yes ใน smb.conf เพื่อให้แสดงผลทันที

การตรวจสอบ Log File และการวินิจฉัย

ใน Ubuntu การตรวจสอบ Log File เป็นสิ่งสำคัญอย่างยิ่งในการค้นหาสาเหตุของปัญหา

Log ที่เกี่ยวข้องกับ Samba

cat /var/log/samba/log.smbd

Log ที่เกี่ยวข้องกับ NFS

journalctl -u nfs-server

Log จะแสดงรายละเอียดของความล้มเหลวในการเข้าถึง ข้อผิดพลาดในการยืนยันตัวตน และข้อผิดพลาดในการตั้งค่า หากค้นหาด้วยข้อความแสดงข้อผิดพลาดใน Google ก็จะพบวิธีแก้ไขมากมาย

เคล็ดลับการแก้ไขปัญหา

  • เปลี่ยนการตั้งค่าทีละน้อย และตรวจสอบการทำงานทุกครั้ง
  • ตรวจสอบให้แน่ใจว่าได้สำรองไฟล์ตั้งค่าไว้เสมอ
  • ใช้คำสั่งตรวจสอบ เช่น testparm และ exportfs -v อย่างกระตือรือร้น
  • เมื่อเปลี่ยนการตั้งค่าแล้ว อย่าลืม รีสตาร์ทหรือโหลดบริการใหม่

7. FAQ | คำถามที่พบบ่อยเกี่ยวกับ Ubuntu File Server

ในการสร้างและดำเนินงาน File Server บน Ubuntu หลายคนมักจะประสบกับคำถามและความกังวลต่างๆ ในส่วนนี้ได้รวบรวมคำถามที่พบบ่อยพร้อมคำตอบ เพื่อให้เป็นประโยชน์สำหรับผู้เริ่มต้นจนถึงผู้ใช้งานระดับกลางในการดำเนินงาน

Q1. ควรเลือก Samba หรือ NFS?

A. โดยพื้นฐานแล้วควรเลือกตามประเภทของ Client OS

  • หากเน้น Windows เป็นหลัก ให้ใช้ Samba (SMB)
    → เข้าถึงได้ง่ายจาก File Explorer
  • หากแชร์ระหว่าง Linux ให้ใช้ NFS
    → มีน้ำหนักเบา รวดเร็ว และมีเสถียรภาพสูง

ในสภาพแวดล้อมที่ผสมผสานกัน ก็สามารถใช้ทั้งสองอย่างร่วมกันได้ ไม่จำเป็นต้องเลือกอย่างใดอย่างหนึ่ง แต่สามารถอยู่ร่วมกันได้ตามวัตถุประสงค์

Q2. จะแชร์ External Storage (เช่น USB HDD) ได้อย่างไร?

A. Mount External Storage ก่อน แล้วจึงกำหนดให้เป็นเป้าหมายในการแชร์

  1. ตรวจสอบอุปกรณ์:
lsblk
  1. สร้าง Mount Point และ Mount:
sudo mkdir /mnt/usb
sudo mount /dev/sdX1 /mnt/usb
  1. ตั้งค่า /mnt/usb เป็นเป้าหมายในการแชร์สำหรับ Samba หรือ NFS

หากต้องการ Mount โดยอัตโนมัติ ให้เพิ่มลงใน /etc/fstab ด้วย

Q3. ไม่สามารถเข้าถึง Samba Server จาก Windows 11 ได้

A. อาจเกิดจากเวอร์ชัน SMB หรือวิธีการยืนยันตัวตน

วิธีการแก้ไข:

  • ลองเพิ่มสิ่งต่อไปนี้ลงในไฟล์ตั้งค่า Samba /etc/samba/smb.conf:
client min protocol = SMB2
server min protocol = SMB2
  • อย่าใช้ Guest Access และเข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่าน
  • หากเปิดใช้งาน “SMB 1.0” ใน Windows ฝั่ง Client แนะนำให้ ปิดใช้งาน แทน (ด้วยเหตุผลด้านความปลอดภัย)

Q4. จะสำรองข้อมูล File Server ได้อย่างไร?

A. วิธีที่ดีที่สุดคือการสร้างกลไกการสำรองข้อมูลอัตโนมัติเป็นประจำ

วิธีการที่แนะนำ:

  • การสำรองข้อมูลแบบ Differential โดยใช้ rsync
  • การรันอัตโนมัติเป็นประจำด้วย cron
  • การสำรองข้อมูลไปยัง External HDD หรือ NAS
  • การซิงโครไนซ์กับ Online Storage (เช่น Google Drive) (rclone สะดวก)

ตัวอย่าง: สำรองข้อมูลทุกคืนเวลา 2.00 น.

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/

Q5. Ubuntu Desktop และ Server แบบไหนเหมาะสำหรับ File Server มากกว่ากัน?

A. หากต้องการความเสถียรในการดำเนินงาน ให้ใช้ Ubuntu Server หากต้องการความง่าย ให้ใช้ Desktop

รายการUbuntu ServerUbuntu Desktop
มี GUI หรือไม่ไม่มี (เบา)มี (สำหรับผู้เริ่มต้น)
การใช้ทรัพยากรน้อยมาก
การใช้งานเน้นคำสั่งสามารถใช้งาน GUI ได้
การใช้งานที่แนะนำการดำเนินงานเซิร์ฟเวอร์แบบจริงจังที่บ้าน / การเรียนรู้ / การใช้งานแบบเบาๆ

โดยเฉพาะอย่างยิ่ง หากไม่ต้องการ GUI, Ubuntu Server จะดีกว่าในด้านความปลอดภัยและประสิทธิภาพ

การสร้าง File Server ด้วย Ubuntu นั้นเรียบง่ายแต่มีความยืดหยุ่นสูง และเป็นสภาพแวดล้อมที่ง่ายต่อการจัดการปัญหา ด้วยเนื้อหาในบทความนี้ โปรดพิจารณาโครงสร้างที่เหมาะสมกับสภาพแวดล้อมเครือข่ายและความต้องการของคุณ

8. สรุป | สร้างการแชร์ไฟล์ที่ยืดหยุ่นด้วย Ubuntu ตามวัตถุประสงค์

การสร้าง File Server โดยใช้ Ubuntu เป็น ตัวเลือกที่ยอดเยี่ยมมากที่สามารถสร้างสภาพแวดล้อมการแชร์ไฟล์เครือข่ายที่เสถียรพร้อมประหยัดค่าใช้จ่าย ในบทความนี้ได้นำเสนอความรู้เชิงปฏิบัติที่ครอบคลุม เช่น ความแตกต่างระหว่าง Samba และ NFS ขั้นตอนการสร้าง ความปลอดภัย และการจัดการปัญหา

จากนี้ไป เราจะทบทวนประเด็นสำคัญและจัดระเบียบแนวทางสำหรับการติดตั้งและการดำเนินงาน

ใช้ Samba และ NFS ให้เหมาะสมกับวัตถุประสงค์

การเลือกวิธีการสร้าง File Server เป็นสิ่งสำคัญที่ต้องเลือกให้เหมาะกับวัตถุประสงค์

  • หากต้องการแชร์ไฟล์กับสภาพแวดล้อม Windows ให้ใช้ Samba
  • เข้าถึงได้โดยตรงจาก File Explorer
  • การยืนยันตัวตนและการจัดการการแชร์มีความยืดหยุ่น
  • หากต้องการแชร์ไฟล์ระหว่าง Linux ด้วยกันอย่างรวดเร็ว ให้ใช้ NFS
  • มีน้ำหนักเบาและมีประสิทธิภาพสูง
  • เหมาะสำหรับวัตถุประสงค์เซิร์ฟเวอร์และสภาพแวดล้อมการพัฒนา

สามารถใช้ทั้งสองอย่างร่วมกันได้ และควรเลือกให้เหมาะสมกับการตั้งค่าเครือข่ายและทักษะของผู้ใช้

ดำเนินงานโดยคำนึงถึงความปลอดภัยและการบำรุงรักษา

หลังจากการสร้าง การดำเนินงานโดยคำนึงถึงประเด็นต่อไปนี้ จะนำไปสู่การรักษาสภาพแวดล้อมการแชร์ไฟล์ที่ปลอดภัยและสะดวกสบาย

  • ตั้งค่า Firewall และการจำกัดการเข้าถึง อย่างถูกต้องเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
  • รักษาสุขภาพของระบบด้วย การอัปเดตเป็นประจำและการตรวจสอบ Log
  • จัดตั้งระบบที่สามารถตอบสนองต่อข้อผิดพลาดได้อย่างรวดเร็วด้วย การสำรองข้อมูลอัตโนมัติ

Ubuntu มีเครื่องมือและข้อมูลมากมายที่สนับสนุนสิ่งเหล่านี้ ทำให้ผู้เริ่มต้นสามารถเรียนรู้ความรู้ด้านการดำเนินงานทีละขั้น

เสน่ห์ของ File Server ที่สร้างเองคืออะไร?

การซื้อ NAS (Network Attached Storage) ที่ผลิตสำเร็จรูปก็เป็นอีกทางเลือกหนึ่ง แต่การสร้างด้วย Ubuntu ด้วยตนเองจะได้รับประโยชน์ดังต่อไปนี้:

  • โครงสร้างที่เรียบง่ายโดยมีเพียงฟังก์ชันที่จำเป็นเท่านั้น
  • สามารถเลือกฮาร์ดแวร์และขนาดพื้นที่เก็บข้อมูลได้อย่างอิสระ
  • พัฒนาความสามารถในการเรียนรู้และการประยุกต์ใช้ในการทำงาน

สำหรับผู้ที่เคยรู้สึกว่า “น่าจะยาก…” หวังว่าเมื่อได้อ่านบทความนี้แล้ว จะเข้าใจว่า อุปสรรคในการสร้างตั้งแต่ต้นนั้นไม่สูงอย่างที่คิด

File Server ที่ใช้ Ubuntu เป็น เครื่องมืออเนกประสงค์ที่สามารถรองรับการใช้งานได้หลากหลายตั้งแต่ส่วนบุคคลไปจนถึงธุรกิจ โปรดค้นหาโครงสร้างที่เหมาะสมที่สุดสำหรับสภาพแวดล้อมเครือข่ายและวัตถุประสงค์การใช้งานของคุณ

侍エンジニア塾