- 1 1. บทนำ: ทำไมการซิงค์เวลา (Time Sync) จึงสำคัญ
- 2 2. ntpd คืออะไร? บทบาทและตัวเลือกบน Ubuntu
- 3 3. การติดตั้งและตั้งค่าเริ่มต้น ntpd บน Ubuntu
- 4 4. การตั้งค่าและปรับแต่ง NTP Server
- 5 5. การตรวจสอบการทำงานและการแก้ปัญหา ntpd
- 6 6. เปรียบเทียบ ntpd กับเครื่องมือซิงค์เวลาอื่น
- 7 7. คำถามที่พบบ่อย (FAQ)
- 8 8. สรุป: ซิงค์เวลาให้เสถียร เพิ่มความเชื่อถือระบบ
1. บทนำ: ทำไมการซิงค์เวลา (Time Sync) จึงสำคัญ
ปัญหาที่เกิดจากเวลาระบบคลาดเคลื่อน
ในระบบ Linux รวมถึง Ubuntu การรักษาเวลาให้ถูกต้องแม่นยำเป็นสิ่งสำคัญอย่างยิ่ง หลายคนอาจมองว่าเป็นแค่เรื่องของนาฬิกาคลาดเคลื่อนเล็กน้อย แต่สำหรับการบริหารเซิร์ฟเวอร์หรือสภาพแวดล้อมแอปพลิเคชัน ความคลาดเคลื่อนของเวลาอาจนำไปสู่ปัญหาที่ร้ายแรงได้
ตัวอย่างปัญหาที่อาจเกิดขึ้น มีดังนี้:
- ความสอดคล้องของล็อกข้อมูลเสียหาย
หากเวลาใน System Log หรือ Application Log คลาดเคลื่อน จะทำให้การวิเคราะห์หาสาเหตุปัญหาในภายหลังเป็นเรื่องยาก - cron job ทำงานผิดเวลา
งานที่ตั้งเวลาทำงาน (เช่น Backup, Batch) อาจไม่ทำงานตรงเวลาที่กำหนด ส่งผลให้เกิดปัญหาข้อมูล - เกิดข้อผิดพลาดกับ SSL certificate หรือการรับรองความปลอดภัย
การใช้งาน HTTPS หรือ SSH จำเป็นต้องใช้เวลาให้ถูกต้อง หากเวลาคลาดเคลื่อน ระบบอาจแสดงว่าใบรับรองหมดอายุและไม่สามารถเชื่อมต่อได้
โดยเฉพาะอย่างยิ่ง กรณีที่ต้องซิงค์เวลาในหลายเซิร์ฟเวอร์บนเครือข่ายเดียวกัน หากเวลาคลาดเคลื่อนอาจมีผลกระทบต่อทั้งระบบอย่างมาก
บทบาทและความสำคัญของ NTP
เครื่องมือที่ช่วยป้องกันปัญหาเหล่านี้คือ NTP (Network Time Protocol) NTP จะเชื่อมต่อกับเซิร์ฟเวอร์เวลา (Time Server) ทั้งจากอินเทอร์เน็ตหรือภายในเครือข่าย และปรับเวลาในระบบโดยอัตโนมัติ
บน Ubuntu มีเครื่องมือสำหรับ NTP หลายตัว เช่น ntpd, chrony, systemd-timesyncd ในบทความนี้จะเน้นที่ ntpd (Network Time Protocol daemon) พร้อมแนะนำวิธีติดตั้งและใช้งานบน Ubuntu
โดยเฉพาะอย่างยิ่งสำหรับเซิร์ฟเวอร์ที่ต้องรันตลอดเวลา หรือระบบที่ต้องการความแม่นยำของล็อก ntpd มีความเสถียรและได้รับความนิยมสูง
ในหัวข้อต่อไป จะอธิบายพื้นฐานเกี่ยวกับ ntpd และทางเลือกที่มีใน Ubuntu
2. ntpd คืออะไร? บทบาทและตัวเลือกบน Ubuntu
ภาพรวมและจุดเด่นของ ntpd
ntpd
(Network Time Protocol Daemon) คือโปรแกรม daemon ที่ใช้ NTP เพื่อให้เวลาระบบแม่นยำ โดยจะเชื่อมต่อกับเซิร์ฟเวอร์ NTP เป็นระยะๆ และปรับเวลาโดยอัตโนมัติ
จุดเด่นของ ntpd คือจะค่อยๆ ปรับเวลา (smooth sync) เพื่อไม่ให้ระบบหรือแอปพลิเคชันได้รับผลกระทบจากการเปลี่ยนเวลาแบบฉับพลัน
ntpd ยังรองรับ การสื่อสารแบบ Symmetric และ ระบบยืนยันตัวตน (Authentication) เหมาะสำหรับองค์กรที่ต้องการความมั่นคงและปลอดภัยสูง
เครื่องมือซิงค์เวลาที่มีให้เลือกบน Ubuntu
Ubuntu มีทางเลือกในการซิงค์เวลา ดังนี้:
- ntpd (แพ็คเกจ ntp)
เหมาะกับการใช้งานระยะยาวและต้องการตั้งค่าละเอียด สามารถซิงค์กับ NTP สาธารณะได้อย่างแม่นยำ - chrony
เป็นทางเลือกใหม่ของ ntpd มีความแม่นยำและซิงค์ได้รวดเร็ว โดยเฉพาะตอนระบบบูต เหมาะกับเครื่อง VM หรือสเปคต่ำ - systemd-timesyncd
บริการซิงค์เวลาแบบเบา ถูกเปิดใช้งานโดยค่าเริ่มต้นใน Ubuntu 20.04 เป็นต้นไป เหมาะกับผู้ใช้งานทั่วไป ไม่เหมาะกับการตั้งค่าขั้นสูงหรือเป็น NTP server ภายใน
เหตุผลที่ควรเลือก ntpd และข้อดี
จุดเด่นของ ntpd คือ ความเสถียรและความน่าเชื่อถือ เหมาะกับ:
- เซิร์ฟเวอร์ที่ต้องออนไลน์ยาวนานและต้องการความแม่นยำสูง
- ต้องการตั้ง NTP server ในเครือข่ายภายใน
- ต้องการฟีเจอร์ยืนยันตัวตนหรือควบคุมขั้นสูงในองค์กร
ntpd ยังใช้งานร่วมกับระบบอื่นได้ดีและมีประสบการณ์ใช้งานยาวนาน จึงลดความกังวลเรื่องปัญหาเมื่อติดตั้ง
3. การติดตั้งและตั้งค่าเริ่มต้น ntpd บน Ubuntu
ขั้นตอนการติดตั้ง ntpd
ติดตั้ง ntp
package ด้วยคำสั่งต่อไปนี้:
sudo apt update
sudo apt install ntp
คำสั่งนี้จะติดตั้ง ntpd
และไฟล์ที่เกี่ยวข้อง หากใน Ubuntu มีการเปิดใช้ chrony
หรือ systemd-timesyncd
อยู่ ควรปิดการทำงานก่อน
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
เปิดใช้บริการและตรวจสอบสถานะ
หลังติดตั้ง ให้เปิดและตรวจสอบสถานะ ntpd:
sudo systemctl enable ntp
sudo systemctl start ntp
sudo systemctl status ntp
หาก status
แสดง “active (running)” แปลว่า ntpd ทำงานถูกต้อง
ตรวจสอบและแก้ไขไฟล์ตั้งค่าเบื้องต้น
ไฟล์ตั้งค่าหลักคือ /etc/ntp.conf
หลังติดตั้งจะตั้งค่า default NTP server เช่น pool.ntp.org
ตรวจสอบไฟล์ด้วยคำสั่ง:
cat /etc/ntp.conf
ถ้าต้องการใช้เซิร์ฟเวอร์ในประเทศญี่ปุ่น แก้ไขไฟล์เป็น:
server ntp.nict.jp iburst
ตัวเลือก iburst
ช่วยให้ซิงค์เร็วขึ้นตอนเริ่มต้น แนะนำให้เพิ่มไว้
หลังเปลี่ยนแปลง ให้ restart ntpd
sudo systemctl restart ntp
ตรวจสอบการซิงค์เวลาอัตโนมัติ
หลังเปิดใช้งาน ntpd ระบบจะซิงค์เวลากับเซิร์ฟเวอร์โดยอัตโนมัติ ตรวจสอบสถานะด้วยคำสั่งนี้:
ntpq -p
จะเห็นรายชื่อ NTP server, delay, offset และข้อมูลอื่น ๆ
4. การตั้งค่าและปรับแต่ง NTP Server
เลือก NTP Server ที่แนะนำ
ควรเลือก NTP server ที่เชื่อถือได้ (โดยเฉพาะ server ภายในประเทศ) เพื่อความแม่นยำ
ตัวอย่าง NTP server ในญี่ปุ่น:
ntp.nict.jp
(NICT)ntp.jst.mfeed.ad.jp
(JST/MFEED)ntp.ring.gr.jp
(Internet Multifeed)
สามารถใช้ได้โดยไม่ต้องลงทะเบียนเป็นพิเศษในกรณีใช้ส่วนบุคคล
ตัวอย่างการตั้งค่าใน /etc/ntp.conf
:
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
server ntp.ring.gr.jp iburst
ตั้งค่าขั้นสูงใน ntp.conf
ใน /etc/ntp.conf
สามารถตั้งค่าละเอียดได้ ตัวอย่างเช่น:
- restrict directive
กำหนดเงื่อนไขให้เครื่องไหนเชื่อมต่อกับ server ได้บ้าง (เพิ่มความปลอดภัย) ตัวอย่าง: อนุญาตเฉพาะเครื่องใน local network
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- driftfile
กำหนดไฟล์บันทึก drift (ความคลาดเคลื่อนเล็กน้อยของ clock) โดยทั่วไปไม่ต้องเปลี่ยน
driftfile /var/lib/ntp/ntp.drift

ตั้ง NTP Server ภายในเครือข่าย (Local Network)
สามารถตั้งให้ Ubuntu ทำหน้าที่เป็น NTP server ภายใน (สำหรับเครื่องอื่น ๆ ในเครือข่ายองค์กรที่ไม่มีอินเทอร์เน็ต) ได้
ขั้นตอนหลัก:
- เพิ่ม restrict rule สำหรับ local ใน
/etc/ntp.conf
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- ตั้ง client ให้ชี้ไปที่ IP ของ NTP server ภายใน
server 192.168.0.10 iburst # IP ของ NTP server
- เปิด port 123/udp บน firewall
sudo ufw allow 123/udp
หาก port ถูก block จะ sync ไม่ได้ ตรวจสอบด้วย ntpq
5. การตรวจสอบการทำงานและการแก้ปัญหา ntpd
วิธีตรวจสอบสถานะบริการ
ใช้คำสั่งนี้เพื่อตรวจสอบว่า ntpd ทำงานอยู่หรือไม่
sudo systemctl status ntp
ถ้าขึ้น active (running)
คือใช้งานได้ หากขึ้น inactive
หรือ failed
แปลว่าอาจมีปัญหาในการตั้งค่าหรือ dependency
ตรวจสอบ log แบบละเอียดได้ด้วย
journalctl -u ntp
ตรวจสอบการซิงค์ (ntpq -p)
เช็คว่า ntpd ซิงค์กับ NTP server ได้หรือไม่ด้วย
ntpq -p
ตัวอย่าง output:
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp.nict.jp .NICT. 1 u 25 64 377 1.123 -0.345 0.024
แต่ละคอลัมน์หมายถึงอะไร เช่น:
remote
: ชื่อ NTP serverst
: stratum (ลำดับชั้น, ยิ่งต่ำยิ่งแม่นยำ)reach
: ประวัติการเชื่อมต่อdelay
: ค่าดีเลย์เครือข่าย (ms)offset
: คลาดเคลื่อนเวลา (ms)jitter
: ความแปรปรวน
หากมี * หน้า server นั้นคือเป็น server ที่ sync อยู่ปัจจุบัน
ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
รวมปัญหาที่มักเจอเมื่อใช้ ntpd และแนวทางแก้
1. ntpq -p
ไม่แสดงข้อมูล / reach เป็น 0
- สาเหตุ: อาจเพราะ firewall หรือ router block port UDP 123
- แนวทางแก้: ตรวจสอบ firewall ทั้ง server และ client ต้องอนุญาต UDP 123
sudo ufw allow 123/udp
2. ขึ้นว่า System clock not synchronized
- สาเหตุ: ntpd ไม่ได้รัน หรือมี service อื่น (เช่น systemd-timesyncd) รันอยู่
- แนวทางแก้: ปิด service อื่นและ restart ntpd
sudo systemctl disable systemd-timesyncd
sudo systemctl restart ntp
3. ชื่อ NTP server แก้ไขไม่ได้
- สาเหตุ: ปัญหา DNS หรือ network
- แนวทางแก้: ping ชื่อ server เช่น
ping ntp.nict.jp
ตรวจสอบ network และแก้ DNS หากจำเป็น
4. เวลาคลาดเคลื่อนมากแต่ sync ไม่ได้
- สาเหตุ: ถ้าเวลาเพี้ยนมาก ntpd จะไม่ sync ให้อัตโนมัติ
- แนวทางแก้: ใช้
ntpd -gq
เพื่อ sync ครั้งเดียวก่อน แล้วค่อย restart ntpd
sudo ntpd -gq # sync ทันทีครั้งเดียว
sudo systemctl restart ntp
การมอนิเตอร์อย่างต่อเนื่อง
ในระบบ production แนะนำให้ตั้ง script เก็บ log จาก ntpq -p
และแจ้งเตือนเมื่อมีปัญหา เช่น reach เป็น 0 ต่อเนื่อง เพื่อป้องกันปัญหาก่อนเกิดขึ้นจริง
6. เปรียบเทียบ ntpd กับเครื่องมือซิงค์เวลาอื่น
เครื่องมือซิงค์เวลาหลักที่ใช้บน Ubuntu
บน Ubuntu มีเครื่องมือซิงค์เวลาหลัก 3 ตัว ซึ่งมีจุดเด่นต่างกัน:
- ntpd (แพ็คเกจ ntp)
- chrony
- systemd-timesyncd
การเลือกใช้ควรดูตามความต้องการและลักษณะระบบ
จุดเด่นของ ntpd
- ข้อดี
- ประสบการณ์ใช้งานยาวนาน เสถียรสูง น่าเชื่อถือ
- ตั้งค่าได้หลากหลาย ทำเป็น NTP server ในองค์กรได้
- หาข้อมูลแก้ปัญหาหรือเทียบเคียงจากชุมชนได้ง่าย
- ข้อด้อย
- การ sync ครั้งแรกอาจใช้เวลานาน
- อาจไม่เหมาะกับ network ที่เปลี่ยนแปลงตลอด (VM, คลาวด์)
จุดเด่นของ chrony
- ข้อดี
- sync ได้รวดเร็วโดยเฉพาะตอนบูต
- เหมาะกับ VM, network แปรเปลี่ยน, notebook
- มีระบบปรับค่าตามสภาพแวดล้อม ทำให้แม่นยำมาก
- ข้อด้อย
- ถ้าจะใช้เป็น NTP server ใน local ต้องตั้งค่าเพิ่มขึ้น
- เอกสารหรือเคสใช้งานยังน้อยกว่า ntpd
จุดเด่นของ systemd-timesyncd
- ข้อดี
- Ubuntu 20.04 ขึ้นไปมีมาให้ตั้งแต่แรก ใช้งานง่ายมาก
- ซิงค์ขั้นพื้นฐาน กิน resource น้อย
- integrate กับ systemd ได้ดี
- ข้อด้อย
- ตั้งค่าขั้นสูงหรือทำ NTP server ใน local ไม่ได้
- เหมาะแค่กับระบบขนาดเล็กหรือสำหรับผู้เริ่มต้น
ตารางเปรียบเทียบ (Summary Table)
คุณสมบัติ | ntpd | chrony | systemd-timesyncd |
---|---|---|---|
ความแม่นยำ | สูง | สูงมาก | ปานกลาง |
ความเร็ว sync ครั้งแรก | ช้าได้ | เร็วมาก | ปานกลาง |
ตั้งเป็น NTP server ภายใน | ◎ | ○ (ตั้งยากกว่า) | × (ทำไม่ได้) |
ความยืดหยุ่นของการตั้งค่า | สูง | ปานกลาง | ต่ำ |
รองรับ VM/Cloud | △ | ◎ | ○ |
ข้อมูลอ้างอิงและ community | ◎ | ○ | △ |
เหมาะกับงาน | Server/องค์กร | VM/Notebook | PC เดี่ยว/มือใหม่ |
คำแนะนำเลือกตามการใช้งาน
- งานเซิร์ฟเวอร์ (รันตลอดเวลา)
→ ntpd หรือ chrony เหมาะสมที่สุด - VM, Cloud, Notebook
→ chrony แม่นยำและยืดหยุ่น - ใช้งาน PC เดี่ยว ไม่ซับซ้อน
→ systemd-timesyncd ก็เพียงพอ
7. คำถามที่พบบ่อย (FAQ)
Q1. Ubuntu 22.04 มี ntpd ติดตั้งมาแต่แรกหรือไม่?
A1.
ไม่ใช่ Ubuntu 22.04 จะเปิดใช้ systemd-timesyncd
มาให้ หากต้องการใช้ ntpd
ต้องติดตั้ง ntp
package เพิ่มเอง
sudo apt install ntp
หลังติดตั้งควรปิด systemd-timesyncd
เพื่อป้องกันการชนกันของบริการ
Q2. ใช้ ntpq -p
แล้วไม่แสดงข้อมูลต้องทำอย่างไร?
A2.
สาเหตุหลัก ๆ มีดังนี้
- บริการยังไม่รัน: ตรวจสอบด้วย
sudo systemctl status ntp
แล้ว start ถ้าต้องการ - เชื่อมต่อกับ NTP server ไม่ได้: ตรวจสอบ firewall ว่าอนุญาต UDP 123 หรือไม่
- ตั้งค่าไฟล์ผิด: ตรวจสอบ
/etc/ntp.conf
ตรวจสอบเบื้องต้นด้วยคำสั่ง
ntpq -p
ถ้าไม่แสดงหรือ reach เป็น 0 แสดงว่าติดต่อ server ไม่สำเร็จ
Q3. ควรเลือก ntpd หรือ chrony?
A3.
ขึ้นกับรูปแบบการใช้งาน
- Server ระยะยาวหรือ NTP server ภายใน →
ntpd
เสถียรกว่า - VM, Notebook, Network แปรเปลี่ยน →
chrony
ตอบโจทย์กว่า - ต้องการแค่ sync ง่ายๆ →
systemd-timesyncd
เพียงพอ
Q4. ntpd -gq
คืออะไร?
A4.ntpd -gq
คือการ sync เวลาแบบเร็วครั้งเดียวแล้วจบ
-g
: ยอมรับเวลาที่คลาดเคลื่อนมาก-q
: sync แล้วออก ไม่รัน background
เหมาะกับกรณีเวลาคลาดเคลื่อนมากจน ntpd ปกติไม่ยอม sync
Q5. การระบุ NTP server หลายตัวมีข้อดีไหม?
A5.
มีข้อดีเพราะช่วยเพิ่มความน่าเชื่อถือ หาก server ตัวหนึ่งมีปัญหา จะ sync กับอีกตัวแทน
ตัวอย่างการตั้งค่าใน /etc/ntp.conf
:
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
server ntp.ring.gr.jp iburst
8. สรุป: ซิงค์เวลาให้เสถียร เพิ่มความเชื่อถือระบบ
ทบทวนข้อดีของ ntpd
สำหรับ Ubuntu การซิงค์เวลาที่แม่นยำ ไม่ได้แค่เพิ่มความสะดวก แต่ยังเกี่ยวข้องกับ ความปลอดภัย การแก้ปัญหา การจัดการล็อก และความถูกต้องของกระบวนการอัตโนมัติ อีกด้วย
บทความนี้ครอบคลุมตั้งแต่พื้นฐานของ NTP วิธีใช้ ntpd
การติดตั้ง การปรับแต่ง การตรวจสอบการทำงาน จนถึงเปรียบเทียบกับเครื่องมืออื่น
คำแนะนำสำหรับผู้อ่าน
การเลือกเครื่องมือซิงค์เวลาที่เหมาะสมบน Ubuntu ควรดูจากวัตถุประสงค์และโครงสร้างระบบ
แต่หลักสำคัญคือ “ไม่มีเวลาที่ถูกต้อง ก็ไม่มีระบบที่เสถียร”
- งาน server หรือจัดการล็อก → ตั้ง
ntpd
หรือchrony
ให้รัดกุม - ใช้งานเดี่ยว ต้องการความง่าย →
systemd-timesyncd
ก็พอ
ความแม่นยำของเวลามักไม่เห็นผลชัดในชีวิตประจำวัน แต่เมื่อเกิดปัญหา จะเป็น “มาตรฐานที่สร้างความแตกต่าง” เสมอ
ขอให้บทความนี้ช่วยให้คุณตั้งค่าระบบซิงค์เวลาที่เหมาะสมที่สุดกับ Ubuntu ของคุณได้