ตั้งค่า Time Zone Linux ให้ถูกต้อง แก้ปัญหาเวลาไม่ตรงบน Server ฉบับสมบูรณ์
Back to articles

ตั้งค่า Time Zone Linux ให้ถูกต้อง แก้ปัญหาเวลาไม่ตรงบน Server ฉบับสมบูรณ์

แก้ปัญหา Time Zone ผิดใน Linux ด้วย timedatectl ตั้งค่า NTP sync และเวลาให้ตรงกับประเทศไทย

Linux--Updated: May 16, 2026

ปัญหา Time Zone ใน Linux วิธีตั้งค่าให้ถูกต้องและป้องกันปัญหา

ปัญหา Time Zone ใน Linux เกิดจากการที่ระบบถูกตั้ง timezone เป็น UTC เป็นค่าเริ่มต้น ทำให้เวลาคลาดเคลื่อนจากเวลาไทย 7 ชั่วโมง ส่งผลให้ log แสดงเวลาผิด CronJob รันผิดเวลา และแอปพลิเคชันแสดงเวลาไม่ตรง วิธีแก้ไขคือใช้คำสั่ง timedatectl set-timezone Asia/Bangkok แล้วเปิด NTP sync เพียงเท่านี้ก็เรียบร้อย

ตรวจสอบ Timezone ปัจจุบัน

ก่อนจะแก้อะไร ต้องรู้ก่อนว่าระบบตั้ง timezone เป็นอะไร ใช้คำสั่ง timedatectl ได้เลย

timedatectl

คำสั่งนี้จะแสดง Local time, Universal time, RTC time และ Time zone ปัจจุบัน ถ้าเห็นว่าเป็น UTC หรือ timezone อื่นที่ไม่ใช่ Asia/Bangkok ก็ต้องเปลี่ยน

วิธีเปลี่ยน Timezone ให้ถูกต้อง

ใช้ timedatectl (วิธีที่แนะนำ)

วิธีมาตรฐานบน systemd-based distro ทั้ง Ubuntu, CentOS, Debian ใช้ได้หมด

timedatectl set-timezone Asia/Bangkok

แค่บรรทัดเดียวก็เรียบร้อย ลองรัน timedatectl อีกทีเพื่อยืนยัน

ใช้ symlink กับ /etc/localtime

สำหรับระบบเก่าที่ไม่มี timedatectl

ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
echo "Asia/Bangkok" | tee /etc/timezone

วิธีนี้ใช้ได้กับแทบทุก distro แม้ระบบ minimal ที่ไม่ได้ติดตั้ง systemd

ตั้งค่า NTP Sync ให้เวลาตรง

เปลี่ยน timezone อย่างเดียวไม่พอ ต้องทำให้นาฬิกาของเซิร์ฟเวอร์ sync กับ NTP server ด้วย

timedatectl set-ntp true

ถ้าใช้ chrony สามารถเช็คสถานะได้ด้วย

chronyc tracking

NTP sync สำคัญสำหรับงานที่ต้องการความแม่นยำ เช่น database replication, log correlation ระหว่างหลาย server หรือ certificate validation

ทำไม Timezone ถึงสำคัญกับ Server

Log Analysis

เวลาใน log file ถ้าไม่ตรงกับเวลาจริง การ debug ปัญหาจะยากขึ้นมาก โดยเฉพาะเวลาต้อง correlate log จากหลาย service

Cron Jobs

cron ใช้เวลาของระบบในการรัน ถ้า timezone ผิด job ที่ตั้งไว้ตอนตี 2 อาจไปรันตอน 9 โมงเช้าแทน

Application Layer

web application หลายตัวใช้เวลาของ server ในการแสดงผล ถ้าผู้ใช้เห็นเวลาผิดจะสร้างความสับสน

Database

timestamp ใน database ถ้าบันทึกผิด timezone จะทำให้ query ที่ filter ตามเวลาได้ผลลัพธ์ไม่ถูกต้อง

คำถามที่พบบ่อย

เปลี่ยน timezone แล้ว cron job จะเปลี่ยนตามไหม?

เปลี่ยนตาม แต่ต้อง restart cron service ก่อนด้วยคำสั่ง systemctl restart cron หรือ systemctl restart crond เพื่อให้ cron อ่านค่า timezone ใหม่

ควรตั้ง server เป็น UTC หรือ local timezone?

ขึ้นอยู่กับการใช้งาน ถ้า server ให้บริการหลายประเทศ ใช้ UTC แล้วแปลงเวลาใน application layer จะดีกว่า ถ้าให้บริการเฉพาะในไทย ตั้งเป็น Asia/Bangkok ได้เลย

Docker container ใช้ timezone ของ host ไหม?

ไม่ Docker container มี timezone แยกจาก host ต้องตั้งค่าเพิ่มเติม เช่น mount /etc/localtime เข้า container หรือตั้ง environment variable TZ=Asia/Bangkok

เปลี่ยน timezone ต้อง reboot server ไหม?

ไม่ต้อง การเปลี่ยน timezone ด้วย timedatectl มีผลทันทีโดยไม่ต้อง reboot แต่ application บางตัวอาจต้อง restart เพื่ออ่านค่า timezone ใหม่

ตั้งค่า Timezone ได้ง่ายกับ VPS ของ DriteStudio

ปัญหา timezone ใน Linux แก้ไม่ยาก แค่ใช้ timedatectl ตั้งค่าให้ถูกแล้วเปิด NTP sync ก็จบ สำหรับผู้ที่ไม่อยากยุ่งยากกับการตั้งค่าเอง VPS ของ DriteStudio มี timezone Asia/Bangkok และ NTP sync ตั้งค่ามาให้พร้อมใช้งานตั้งแต่แรก หรือหากต้องการ Dedicated Server ก็ได้รับการดูแลเช่นเดียวกัน ติดต่อ DriteStudio วันนี้เพื่อรับเซิร์ฟเวอร์ที่พร้อมใช้งานทันที

Share article:
View more articles
D

DriteStudio | ไดรท์สตูดิโอ

Digital infrastructure provider for VPS, web hosting, and colocation in Thailand

Operated by Craft Intertech (Thailand) Co., Ltd.