تنظیم زمان در لینوکس

سرورت همیشه رو وقت باشه!

تایم لینوکس

اگر سرورت داره با ساعت خودش حال می‌کنه و هر روز یه تایم نشون میده، بدون که وقتشه یه دستی به سر و گوش تایم‌سرورش بکشی 😄
در دنیای دیجیتال، زمان فقط یه عدد نیست! هر لاگ، هر تراکنش، هر بسته داده، به زمان دقیق وابسته‌ست.
اینجا یاد می‌گیری چطور کاری کنی سرور لینوکست همیشه ساعت درست داشته باشه — بدون غر زدن و «تاخیر».

چرا ساعت دقیق تو لینوکس مهمه؟

یه سرور با ساعت اشتباه، مثل راننده‌ایه که GPSش دو ساعت عقبه! 🚗
اگر ساعت درست نباشه:

  • لاگ‌ها بهم می‌ریزن و دیباگ سخت میشه.

  • تو شبکه‌های چندسروره، همگام‌سازی داده‌ها قاطی می‌کنه.

  • سیستم‌های امنیتی (SSL, Kerberos, Audit) ممکنه خطا بدن.

پس وقتشه سرورت همیشه on time باشه!

قدم اول: آشنایی با NTP (Network Time Protocol)

NTP یعنی همون جادوگری که ساعت همه‌ی سرورها رو هماهنگ می‌کنه.
کارش اینه که زمان رو از یه منبع معتبر (مثل سرورهای pool.ntp.org) بگیره و سرور تو هم با اون تنظیم بشه.
مثل اینکه هر روز صبح بری ساعتتو با ساعت بی‌بی‌سی تنظیم کنی 😅

قدم دوم: نصب سرویس NTP یا Chrony

💻 روی Debian / Ubuntu:

sudo apt update
sudo apt install ntp -y

💻 روی RHEL / CentOS / Fedora:

sudo dnf install chrony -y

🔹 توصیه: در توزیع‌های جدید بهتره از Chrony استفاده کنی.
چون سریع‌تر، دقیق‌تر و برای سرورهای مجازی هم پایدارتره.

قدم سوم: پیکربندی NTP

📁 اگر از ntpd استفاده می‌کنی:

فایل تنظیمات: /etc/ntp.conf

نمونه تنظیم تمیز:

driftfile /var/lib/ntp/ntp.drift
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst

restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1

⏰ اگر از chrony استفاده می‌کنی:

فایل تنظیمات: /etc/chrony.conf

نمونه پیکربندی استاندارد:

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1 -1
logdir /var/log/chrony

قدم چهارم: فعال‌سازی و اجرا

برای ntp:

sudo systemctl enable ntp
sudo systemctl start ntp

برای chrony:

sudo systemctl enable chronyd
sudo systemctl start chronyd

چک کن که سرویس فعاله:

systemctl status chronyd

قدم پنجم: بررسی وضعیت تایم‌سرور

برای ntp:

ntpq -p

برای chrony:

chronyc sources

اگه کنارش علامت * دیدی یعنی اون منبع الان فعاله و ساعتت باهاش سینک شده.
هرچی offset و jitter پایین‌تر باشن، یعنی زمان دقیق‌تره.

تنظیم منطقه زمانی (Time Zone)

بعضی وقتا ساعت درسته ولی منطقه اشتباهه 😅
مثلاً ساعت نشون میده ۱۰ صبح ولی تو ایران ساعت ۱:۳۰ ظهره!
برای تنظیم:

sudo timedatectl set-timezone Asia/Tehran

برای بررسی:

timedatectl

نکات امنیتی و حرفه‌ای

🔐 حتماً دسترسی‌ها رو در فایل کانفیگ محدود کن تا هر کسی نتونه به سرورت درخواست NTP بده.
🔥 پورت UDP 123 رو فقط برای سرورهای مجاز باز بذار.
🧩 اگر از ماشین مجازی استفاده می‌کنی، از sync خود hypervisor غیرفعال کن تا تداخل نداشته باشه.
📈 برای مانیتورینگ از ابزارهایی مثل Prometheus Node Exporter یا Zabbix برای زمان استفاده کن.

مشکلدلیلراه‌حل
ساعت درست نمی‌شهپورت UDP 123 بسته‌ستبررسی با ufw allow 123/udp یا firewall-cmd
ساعت به مرور عقب می‌مونهسرور NTP کند یا بی‌ثباتهسرور NTP بهتری انتخاب کن (مثل time.google.com)
ماشین مجازی زمان رو می‌پرونهتداخل با sync مجازی‌سازهمگام‌سازی VM رو غیرفعال کن
منطقه زمانی اشتباههtimezone نادرستهبا timedatectl set-timezone اصلاح کن

جمع‌بندی

اگه تا اینجا اومدی، یعنی ساعت سرورت از این به بعد قراره مثل ساعت اتمی دقیق باشه 😎
یادت باشه:

  • از NTP یا Chrony استفاده کن.

  • منابع زمانی مطمئن انتخاب کن.

  • سرویس رو فعال و مانیتور کن.

  • timezone رو درست تنظیم کن.

و تمام! حالا سرورت دیگه هیچ‌وقت نمی‌گه:

«شرمنده، ساعت از دستم در رفت!» 😂

دیدگاه‌ خود را بنویسید

پیمایش به بالا