การติดตั้ง NTP Server บน Ubuntu Server 24.04

การติดตั้ง NTP Server บน Ubuntu Server 24.04

ในระบบเครือข่ายคอมพิวเตอร์ ความถูกต้องของเวลาเป็นสิ่งสำคัญอย่างยิ่ง โดยเฉพาะในระบบที่มีการประมวลผลแบบกระจาย (Distributed Systems) หรือระบบที่ต้องการความสอดคล้องของเวลาระหว่างเครื่องแม่ข่ายและเครื่องลูกข่าย เช่น ระบบฐานข้อมูล ระบบเฝ้าระวังความปลอดภัย และระบบเครือข่ายองค์กร การตั้งค่าเวลาให้ตรงกันในทุกเครื่องจึงเป็นภารกิจที่สำคัญ ซึ่งสามารถทำได้โดยใช้ NTP (Network Time Protocol)

บทความนี้จะอธิบายขั้นตอนการติดตั้งและตั้งค่า NTP Server บน Ubuntu Server 24.04 LTS โดยใช้ซอฟต์แวร์ Chrony ซึ่งเป็นซอฟต์แวร์ที่ได้รับความนิยมสูงในปัจจุบัน เนื่องจากมีความแม่นยำสูง ใช้งานง่าย และใช้ทรัพยากรระบบน้อย

หน่วยงานเทียบฐานเวลาในประเทศไทย
– สถาบันมาตรวิทยาแห่งชาติ
time1.nimt.or.th = 164.115.133.40
time2.nimt.or.th = 164.115.133.41
time3.nimt.or.th = 164.115.133.42

– กรมอุทกศาสตร์กองทัพเรือ
time1.navy.mi.th = 113.53.247.3
time2.navy.mi.th = 57.97.113.3

– ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC)
clock.nectec.or.th = 203.185.67.115

1. ทำความเข้าใจกับ NTP และ Chrony

NTP (Network Time Protocol) เป็นโปรโตคอลสำหรับซิงโครไนซ์เวลาในระบบคอมพิวเตอร์ให้ตรงกับเซิร์ฟเวอร์เวลามาตรฐาน (Time Source) ผ่านเครือข่ายอินเทอร์เน็ตหรือภายในองค์กร

ใน Ubuntu รุ่นใหม่ เช่น 24.04 จะนิยมใช้ Chrony แทน ntpd เนื่องจาก Chrony มีความยืดหยุ่นและตอบสนองต่อการเปลี่ยนแปลงของเครือข่ายได้ดีกว่า

Chrony ประกอบด้วย 2 ส่วนหลัก

  • chronyd – เดมอนที่ทำงานในพื้นหลัง ทำหน้าที่ปรับเวลาและให้บริการ NTP

  • chronyc – เครื่องมือบรรทัดคำสั่งสำหรับควบคุมและตรวจสอบการทำงานของ chronyd


2. การติดตั้ง Chrony

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

sudo apt update

sudo apt install chrony -y

เมื่อติดตั้งเสร็จแล้ว ระบบจะเปิดบริการ chronyd โดยอัตโนมัติ

สามารถตรวจสอบสถานะบริการได้ด้วยคำสั่ง

sudo systemctl status chronyd

3. การตั้งค่า Chrony ให้เป็น NTP Server

ไฟล์ตั้งค่าหลักของ Chrony อยู่ที่

/etc/chrony/chrony.conf

เปิดไฟล์ด้วยคำสั่ง

sudo nano /etc/chrony/chrony.conf

จากนั้นปรับแก้ค่าตามต้องการ

(1) กำหนด Time Source ภายนอก เช่น ใช้ NTP Server สาธารณะจาก Ubuntu หรือ NIST
หรือใช้ NTP Server เพื่อเทียบเวลาในประเทศไทยดังนี้
server time1.nimt.or.th iburst

server time2.nimt.or.th iburst
server time1.navy.mi.th iburst
server time1.navy.mi.th iburst
server clock.nectec.or.th iburst
Note.
คำว่า iburst ในการตั้งค่า NTP/Chrony หมายถึง “Initial Burst Mode”

เป็นตัวเลือก (option) ที่ใช้เพื่อ เร่งความเร็วในการซิงโครไนซ์เวลาในช่วงเริ่มต้น ของการเชื่อมต่อกับแหล่งเวลา (NTP Server) โดยที่ iburst จะสั่งให้ Chrony ทำการส่งคำขอซิงโครไนซ์ (NTP request packets) จำนวน 8 ครั้งติดต่อกันอย่างรวดเร็ว (burst) ทันทีเมื่อเริ่มต้นเชื่อมต่อกับเซิร์ฟเวอร์เวลานั้น เพื่อให้ได้ข้อมูลเวลาอย่างแม่นยำตั้งแต่เริ่มต้น โดยปกติแล้ว หากไม่ใช้ iburst ระบบจะส่งคำขอเพียงครั้งเดียวในแต่ละรอบ ซึ่งอาจใช้เวลานานกว่าจะปรับเวลาให้ตรง

(2) อนุญาตให้เครื่องลูกข่ายในเครือข่ายภายในเชื่อมต่อ

ตัวอย่างเช่น หากเครื่องลูกอยู่ในเครือข่าย 192.168.1.0/24 ให้เพิ่มบรรทัด

allow 192.168.1.0/24

(3) ตั้งค่าให้ระบบอัปเดตเวลาแม้เวลาคลาดเคลื่อนมาก

เพิ่มบรรทัด:

makestep 1.0 3

บรรทัดนี้หมายถึง ให้ Chrony ปรับเวลาแบบก้าวกระโดด (step) ถ้าพบว่าความคลาดเคลื่อนเกิน 1 วินาที ใน 3 รอบแรกของการซิงค์

เมื่อแก้ไขไฟล์เสร็จแล้ว ให้บันทึกและออกจากโปรแกรม (Ctrl + O, Enter, Ctrl + X)


4. การเริ่มต้นและตรวจสอบสถานะของ Chrony

รีสตาร์ตบริการเพื่อให้การตั้งค่าใหม่มีผล:

 
sudo systemctl restart chronyd

ตรวจสอบการซิงโครไนซ์ของ NTP Server ด้วยคำสั่ง

 
chronyc sources -v

ผลลัพธ์ที่ได้จะระบุแหล่งเวลา (Source) และสถานะการเชื่อมต่อ

เครื่องหมาย * หน้าแถว หมายถึงแหล่งเวลาที่ระบบกำลังซิงค์อยู่


5. การตั้งค่า Firewall (หากเปิดใช้งาน UFW)

เพื่อให้เครื่องลูกข่ายเข้ามาซิงค์เวลาได้ ต้องเปิดพอร์ต UDP 123:

 
sudo ufw allow 123/udp
sudo ufw reload

ตรวจสอบสถานะอีกครั้ง

sudo ufw status
 

6. การตั้งค่าเวลาให้ตรงกับ Time Zone

ก่อนเริ่มซิงค์ ควรกำหนดโซนเวลาที่ถูกต้อง

timedatectl set-timezone Asia/Bangkok

– ตรวจสอบผล
timedatectl

 


7. การทดสอบจากเครื่องลูกข่าย (Client) ที่เป็น Linux

บนเครื่องลูกข่าย Ubuntu สามารถติดตั้ง Chrony และตั้งค่าให้ชี้ไปยังเซิร์ฟเวอร์ NTP ที่ตั้งไว้ เช่น

sudo apt install chrony -y

เปิดไฟล์ /etc/chrony/chrony.conf แล้วเพิ่ม

 
server 192.168.1.10 iburst

(โดย 192.168.1.10 คือ IP ของเครื่อง NTP Server)

จากนั้นรีสตาร์ตบริการ

sudo systemctl restart chronyd

ตรวจสอบผลการซิงโครไนซ์

chronyc tracking

สรุป

การติดตั้งและตั้งค่า NTP Server ด้วย Chrony บน Ubuntu Server 24.04 ช่วยให้ระบบเครือข่ายมีเวลาที่ถูกต้องและสอดคล้องกันทุกเครื่อง ซึ่งเป็นปัจจัยสำคัญต่อความถูกต้องของข้อมูลและความปลอดภัยของระบบ การเลือกใช้ Chrony ทำให้การบริหารจัดการเวลาในระบบมีประสิทธิภาพมากขึ้น รองรับทั้งสภาพแวดล้อมที่ต่อเนื่องและแบบไม่ต่อเนื่องกับอินเทอร์เน็ต เหมาะสำหรับทั้งองค์กรขนาดเล็กและขนาดใหญ่ โดยเฉพาะระบบเครือข่ายภายใน (Intranet) ที่ต้องการความแม่นยำและความน่าเชื่อถือสูง


เขียนและรวบรวมโดย
Dr.Arnut Ruttanatirakul
Technology Lecturer, KMITL
11 November 2025