انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

إعدادات المنطقة الزمنية وNTP: مزامنة وقت الخادم

دليل ضبط المنطقة الزمنية بـ timedatectl وتهيئة NTP بـ chrony وsystemd-timesyncd ومزامنة وقت الخادم وخطوات التحقق على خوادم Linux.

وقت القراءة: 10 دقيقة إدارة الخادم
ntpمنطقة زمنيةtimedatectlchronytimesyncdمزامنة الوقتساعة

جدول المحتويات

إعدادات المنطقة الزمنية وNTP: مزامنة وقت الخادم

ضبط وقت الخادم بشكل صحيح أمر بالغ الأهمية لاتساق السجلات والتحقق من شهادات SSL وعمليات قواعد البيانات والمهام المجدولة. قد تؤدي إعدادات الوقت الخاطئة إلى ثغرات أمنية وأخطاء في التطبيقات. يغطي هذا الدليل تهيئة المنطقة الزمنية وNTP على خوادم Linux.

التحقق من حالة الوقت الحالية

hljs bash
# عرض وقت النظام والساعة الصلبة وحالة NTP
timedatectl

# عرض التاريخ والوقت الحاليين
date

# عرض وقت UTC
date -u

# عرض الساعة الصلبة
sudo hwclock --show

ضبط المنطقة الزمنية

تغيير المنطقة الزمنية بـ timedatectl

hljs bash
# عرض المنطقة الزمنية الحالية
timedatectl | grep "Time zone"

# سرد جميع المناطق الزمنية المتاحة
timedatectl list-timezones

# تصفية حسب المنطقة
timedatectl list-timezones | grep Asia
timedatectl list-timezones | grep Arab

# ضبط المنطقة الزمنية
sudo timedatectl set-timezone Asia/Riyadh
sudo timedatectl set-timezone UTC
sudo timedatectl set-timezone Europe/Istanbul
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone Asia/Dubai

الإعداد اليدوي عبر الرابط الرمزي

hljs bash
# طريقة بديلة (للأنظمة القديمة)
sudo ln -sf /usr/share/zoneinfo/Asia/Riyadh /etc/localtime

# تحديث /etc/timezone
echo "Asia/Riyadh" | sudo tee /etc/timezone

# التحقق من التغيير
date

تأتي خوادم REXE بمنطقة زمنية UTC افتراضياً. الإبقاء على UTC ممارسة جيدة أيضاً لتحليل السجلات.

مزامنة الوقت بـ NTP

يقوم NTP (بروتوكول وقت الشبكة) بمزامنة ساعة الخادم مع خوادم الوقت على الإنترنت.

systemd-timesyncd (حل خفيف الوزن)

hljs bash
# التحقق من الحالة
sudo systemctl status systemd-timesyncd

# عرض حالة مزامنة NTP
timedatectl show-timesync --all

# تفعيل NTP
sudo timedatectl set-ntp true

# تعطيل NTP
sudo timedatectl set-ntp false

تهيئة timesyncd

hljs bash
# تعديل ملف الإعداد
sudo nano /etc/systemd/timesyncd.conf
hljs ini
[Time]
# خوادم NTP الأساسية
NTP=0.pool.ntp.org 1.pool.ntp.org time.cloudflare.com
# خوادم NTP الاحتياطية
FallbackNTP=2.pool.ntp.org 3.pool.ntp.org time.google.com
RootDistanceMaxSec=5
hljs bash
# إعادة تشغيل الخدمة
sudo systemctl restart systemd-timesyncd

# التحقق من حالة المزامنة
timedatectl

Chrony (حل متقدم)

يوفر Chrony أداءً أفضل للبيئات المتصلة بشكل متقطع أو الافتراضية.

hljs bash
# تثبيت chrony (Ubuntu/Debian)
sudo apt install chrony -y

# تثبيت chrony (RHEL/CentOS/AlmaLinux)
sudo dnf install chrony -y

# تشغيل الخدمة وتفعيلها
sudo systemctl enable --now chronyd

تهيئة Chrony

hljs bash
# تعديل ملف الإعداد
sudo nano /etc/chrony/chrony.conf
hljs bash
# خوادم مجموعة NTP
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst

# Cloudflare NTP (دقة عالية)
server time.cloudflare.com iburst

# Google NTP
server time.google.com iburst

driftfile /var/lib/chrony/drift
logdir /var/log/chrony
makestep 1.0 3
rtcsync
hljs bash
# إعادة تشغيل الخدمة
sudo systemctl restart chronyd

# التحقق من حالة chrony
chronyc tracking

# سرد مصادر NTP
chronyc sources -v

# إحصائيات المصادر
chronyc sourcestats

خوادم NTP الموصى بها

الخادمالوصفالاستخدام
pool.ntp.orgمجموعة NTP العالميةالاستخدام العام
time.cloudflare.comCloudflare NTPدقة عالية
time.google.comGoogle NTPموثوقية عالية

مزامنة الساعة الصلبة (RTC)

hljs bash
# كتابة وقت النظام إلى الساعة الصلبة
sudo hwclock --systohc

# قراءة الساعة الصلبة إلى وقت النظام
sudo hwclock --hctosys

# ضبط الساعة الصلبة على UTC
sudo hwclock --systohc --utc

التحقق

hljs bash
# التحقق من حالة مزامنة NTP
timedatectl | grep synchronized

# التحقق من المزامنة مع chrony
chronyc tracking | grep "System time"

لا تشغّل chrony وsystemd-timesyncd في نفس الوقت. عند تثبيت chrony، عطّل timesyncd: sudo systemctl disable --now systemd-timesyncd

استكشاف الأخطاء وإصلاحها

الساعة لا تتزامن

hljs bash
# التحقق من منفذ NTP (UDP 123)
sudo ufw allow 123/udp

# فحص سجل chrony
sudo tail -f /var/log/chrony/tracking.log

# إجبار chrony على المزامنة
sudo chronyc makestep

فارق زمني كبير

hljs bash
# ضبط الوقت يدوياً (مع تعطيل NTP)
sudo timedatectl set-ntp false
sudo timedatectl set-time "2024-01-15 14:30:00"
sudo timedatectl set-ntp true

# إصلاح سريع مع chrony
sudo chronyc makestep

الخلاصة

التهيئة الصحيحة للمنطقة الزمنية وNTP متطلب أساسي لبنية تحتية موثوقة للخادم. على خوادم REXE، يمكنك الحفاظ على مزامنة ساعتك في جميع الأوقات باستخدام chrony أو systemd-timesyncd، مما يضمن اتساق السجلات وموثوقية التطبيقات.