1. المقدمة: لماذا تزامن الوقت مهم؟
مشاكل انحراف الوقت في النظام
في أنظمة Linux مثل Ubuntu، يعتبر الحفاظ على الوقت بدقة أمرًا بالغ الأهمية. قد يبدو اختلاف الوقت أمرًا بسيطًا، لكنه قد يؤدي إلى مشاكل خطيرة في بيئة تشغيل الخوادم أو التطبيقات عند وجود انحراف في الوقت.
على سبيل المثال، قد تظهر المشاكل التالية:
- فقدان تناسق السجلات (Logs)
عند اختلاف الوقت في سجلات النظام أو سجلات التطبيقات، يصبح من الصعب تحديد سبب المشكلة عند وقوعها. - أخطاء في تنفيذ وظائف cron
قد لا يتم تنفيذ المهام المجدولة (كالنسخ الاحتياطي أو العمليات الدورية) في الوقت المحدد، مما يؤدي إلى حدوثها في أوقات غير متوقعة. - فشل شهادات SSL أو التوثيق الأمني
في بروتوكولات HTTPS أو مصادقة SSH، من الضروري أن يكون الوقت دقيقًا. إذا كان الوقت منحرفًا، قد تعتبر الشهادات “منتهية الصلاحية” ويحدث خطأ في الاتصال.
وتصبح هذه المشاكل أكثر خطورة عند تشغيل عدة خوادم متزامنة على الشبكة.
دور وأهمية NTP
لمنع هذه المشاكل، يُستخدم NTP (Network Time Protocol). حيث يتواصل NTP مع خوادم الوقت عبر الإنترنت أو الشبكة المحلية، ويقوم بتصحيح وقت النظام تلقائيًا.
يمكن استخدام أدوات NTP متعددة في Ubuntu مثل ntpd وchrony وsystemd-timesyncd. في هذا المقال، سنركز على ntpd (Network Time Protocol daemon) ونشرح طريقة تثبيته واستخدامه في Ubuntu بالتفصيل.
خصوصًا في الخوادم التي تعمل لفترات طويلة أو الأنظمة التي تحتاج إلى تناسق في السجلات، يُوصى بالاعتماد على استقرار ntpd.
في القسم التالي، سنستعرض ما هو ntpd وما هي وظيفته الأساسية وخياراته في Ubuntu.
2. ما هو ntpd؟ دوره وخياراته في Ubuntu
لمحة عامة وميزات ntpd
ntpd
(Network Time Protocol Daemon) هو برنامج خدمة يعمل في الخلفية للحفاظ على الوقت بدقة باستخدام NTP. يتواصل بشكل دوري مع خوادم NTP عبر الإنترنت أو الشبكة المحلية لتصحيح ساعة النظام تلقائيًا.
يتميز ntpd بـ”مزامنة سلسة”، حيث يُعدل الوقت تدريجيًا لتجنب التغييرات المفاجئة التي قد تؤثر سلبًا على الأنظمة أو التطبيقات العاملة.
يدعم ntpd أيضًا ميزات متقدمة مثل الاتصال المتناظر والتحقق الأمني، ما يجعله خيارًا قويًا لمؤسسات الأعمال التي تتطلب دقة وموثوقية عالية.
أدوات تزامن الوقت المتاحة في Ubuntu
هناك عدة خيارات لمزامنة الوقت في Ubuntu:
- ntpd (حزمة ntp)
شائع في بيئات التشغيل الطويلة أو التي تحتاج إلى إعدادات تفصيلية. يتميز بالمرونة والاستقرار العالي ودقة المزامنة مع خوادم NTP العامة. - chrony
بديل حديث لـ ntpd، يتميز بسرعة ودقة المزامنة خصوصًا عند الإقلاع. مناسب للبيئات الافتراضية أو الأجهزة منخفضة الموارد، وكثير من التوزيعات الحديثة تعتمد chrony افتراضيًا. - systemd-timesyncd
خدمة خفيفة الوزن مفعلة افتراضيًا في Ubuntu 20.04 وما بعده. سهلة الاستخدام لكنها محدودة الوظائف ولا تناسب الإعدادات المعقدة أو التشغيل كخادم NTP محلي.
لماذا تختار ntpd؟
الميزة الأساسية لاختيار ntpd في Ubuntu هي الاعتمادية والثبات. خاصة في الحالات التالية:
- خوادم تعمل لفترات طويلة وتتطلب دقة وقت عالية
- الرغبة في بناء خادم NTP ضمن الشبكة المحلية
- الحاجة لميزات التحقق أو التحكم المتقدمة في بيئات الشركات
كما أن ntpd متوافق مع العديد من الأنظمة وله سجل تشغيل طويل، مما يقلل من مخاوف التثبيت والتشغيل.
3. تثبيت وإعداد ntpd في Ubuntu
خطوات تثبيت ntpd
لتثبيت ntpd في Ubuntu، يجب تثبيت حزمة ntp
كالتالي:
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
إذا ظهرت كلمة active (running)
، فهذا يعني أن ntpd يعمل بشكل صحيح.
التحقق وتحرير ملف الإعدادات الأساسي
توجد إعدادات ntpd في ملف /etc/ntp.conf
. بعد التثبيت، يكون فيه عدة خوادم NTP افتراضية (عادة من مجموعة pool.ntp.org).
للتحقق من محتوى الملف:
cat /etc/ntp.conf
لإعداد خوادم محلية (مثلاً في اليابان، استبدل بالخوادم العربية حسب منطقتك):
server ntp.nict.jp iburst
خيار iburst
يسرّع عملية المزامنة عند الاتصال الأول ويُوصى بإضافته.
بعد تعديل الإعدادات، أعد تشغيل خدمة ntpd:
sudo systemctl restart ntp
التحقق من تزامن الوقت تلقائيًا
يقوم ntpd بمزامنة الوقت تلقائيًا بعد التشغيل. للتحقق من ذلك، استخدم الأمر التالي:
ntpq -p
يعرض هذا الأمر قائمة خوادم NTP وحالة الاتصال والتفاصيل الأخرى.
4. إعداد وتخصيص خادم NTP
اختيار خوادم NTP الموصى بها
اختيار خوادم NTP المناسبة من أهم خطوات الإعداد. للحصول على استقرار أفضل، يُوصى باستخدام خوادم محلية موثوقة في بلدك أو منطقتك.
مثال لخوادم NTP يابانية (استبدل بالخوادم المحلية في البلدان العربية حسب الحاجة):
ntp.nict.jp
(معهد اليابان للاتصالات والمعلومات)ntp.jst.mfeed.ad.jp
(JST・MFEED)ntp.ring.gr.jp
(إنترنت مالتي فيد)
يمكنك إضافة هذه الخوادم في /etc/ntp.conf
:
server ntp.nict.jp iburst
server ntp.jst.mfeed.ad.jp iburst
server ntp.ring.gr.jp iburst
تفاصيل إعدادات ntp.conf
يمكنك التحكم في إعدادات أخرى غير الخوادم مثل:
- توجيه restrict
يحدد صلاحيات الاتصال من العملاء. لتعزيز الأمان، قيد الاتصالات غير الضرورية، مثال: السماح للاتصال من الشبكة المحلية فقط
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- driftfile
يحدد ملف تخزين انحراف الساعة للنظام. الإعداد الافتراضي مناسب في معظم الحالات.
driftfile /var/lib/ntp/ntp.drift
بناء خادم NTP على الشبكة المحلية
يمكنك تشغيل ntpd على Ubuntu ليعمل كخادم NTP داخل شبكة الشركة ويقوم بتوزيع الوقت للأجهزة الأخرى. هذا مفيد في الشبكات المغلقة أو عند الحاجة لإدارة وقت موحد.
مثال لإعداد ذلك:
- أضف قاعدة
restrict
في/etc/ntp.conf
للسماح بالوصول المحليrestrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
- في أجهزة العملاء، عرّف عنوان خادم NTP المحلي
server 192.168.0.10 iburst # عنوان IP للخادم
- افتح منفذ UDP 123 على الجدار الناري
sudo ufw allow 123/udp
إذا كانت الاتصالات محجوبة، لن يتم التزامن ولن يظهر اتصال في الأمر ntpq.
5. التحقق من تشغيل ntpd وحل المشاكل
طريقة التحقق من حالة الخدمة
للتحقق من تشغيل ntpd استخدم:
sudo systemctl status ntp
إذا ظهرت active (running)
فكل شيء يعمل. أما إذا ظهرت inactive
أو failed
، فتحقق من الإعدادات أو التبعيات.
لعرض تفاصيل السجلات:
journalctl -u ntp
أمر التحقق من حالة التزامن (ntpq -p)
أكثر الأوامر استخدامًا للتحقق من التزامن:
ntpq -p
مثال للناتج:
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 المتصل بهst
: مستوى الخادم (stratum)، 1 للأكثر دقةreach
: سجل نجاح الاتصال (8 بت)delay
: تأخير الشبكة (مللي ثانية)offset
: انحراف الوقت (مللي ثانية)jitter
: التذبذب
الخادم الذي عليه علامة *
هو الخادم المعتمد للتزامن حاليًا.
أخطاء شائعة وكيفية حلها
بعض الأخطاء الشائعة عند إعداد ntpd وحلولها:
1. ntpq -p
لا يظهر أو reach = 0
- السبب: قد يكون منفذ UDP 123 مغلقًا في الجدار الناري أو الراوتر
- الحل: تحقق من إعدادات الجدار الناري في كل من الخادم والعميل واسمح بالاتصالات على UDP 123.
sudo ufw allow 123/udp
2. ظهور رسالة System clock not synchronized
- السبب: ntpd لا يعمل أو هناك تعارض مع خدمات تزامن أخرى (مثل systemd-timesyncd)
- الحل: عطّل خدمات التزامن الأخرى وأعد تشغيل ntpd.
sudo systemctl disable systemd-timesyncd
sudo systemctl restart ntp
3. فشل حل اسم خادم NTP
- السبب: مشكلة في إعداد DNS أو الشبكة
- الحل: استخدم
ping ntp.nict.jp
للتحقق من حل الأسماء وعدّل إعدادات DNS إذا لزم الأمر.
4. انحراف الوقت كبير ولا يتم التزامنه
- السبب: ntpd لا يُصحح الانحرافات الكبيرة تلقائيًا (لأسباب أمنية)
- الحل: صحح الوقت يدويًا مرة واحدة ثم أعد تشغيل ntpd.
sudo ntpd -gq # إجراء تزامن فوري لمرة واحدة
sudo systemctl restart ntp
للمراقبة المستمرة
لبيئة التشغيل، من المفيد إعداد سكريبت دوري يسجل نتائج ntpq -p
في السجلات، وإعداد تنبيه عند وجود مشاكل كاستمرار reach=0. هذا يساهم في اكتشاف الأعطال مبكرًا.
6. مقارنة ntpd مع أدوات تزامن الوقت الأخرى
أهم أدوات تزامن الوقت في Ubuntu
هناك عدة أدوات في Ubuntu لمزامنة الوقت، لكل منها ميزات واستخدامات مختلفة. أبرزها:
- ntpd (حزمة ntp)
- chrony
- systemd-timesyncd
فهم الفروق بينها يساعدك في اختيار الأنسب لبيئتك.
ميزات ntpd
- الإيجابيات
- سجل طويل من الاستقرار والثبات العالي
- خيارات إعداد غنية (خادم محلي، تحقق، وضع متناظر…)
- توافق عالي مع خوادم NTP العامة وتوفر معلومات ودعم واسع
- السلبيات
- قد يتأخر التزامن الأول بعد التشغيل
- التكيف مع الشبكات الافتراضية أو الديناميكية أقل مقارنة بالأدوات الحديثة
ميزات chrony
- الإيجابيات
- تزامن أولي سريع للغاية
- دقة عالية حتى في البيئات الافتراضية أو الشبكات المتغيرة (مثل الحواسيب المحمولة أو استخدام VPN)
- ميزة التعلم الذاتي لزيادة الدقة حسب الظروف
- السلبيات
- إعداد الخادم المحلي أكثر تعقيدًا من ntpd
- توفر الوثائق والأمثلة أقل من ntpd
ميزات systemd-timesyncd
- الإيجابيات
- مفعّل افتراضيًا في Ubuntu 20.04+، سهل التثبيت والإدارة
- موارد تشغيل منخفضة
- تكامل عميق مع systemd، مناسب للإعدادات القياسية
- السلبيات
- إمكانياته محدودة ولا يدعم تشغيله كخادم NTP محلي أو الإعدادات المتقدمة
- دقته ووظائف التسجيل محدودة، غير مناسب للأنظمة الكبيرة
جدول مقارنة الأدوات
الميزة | ntpd | chrony | systemd-timesyncd |
---|---|---|---|
الدقة | عالية | عالية جدًا | متوسطة |
سرعة التزامن الأولي | قد تكون بطيئة | سريعة جدًا | متوسطة |
تشغيل خادم NTP محلي | ◎ | ○ (معقد قليلاً) | × (غير ممكن) |
مرونة الإعدادات | عالية | متوسطة | منخفضة |
التكيف مع البيئات الافتراضية | △ | ◎ | ○ |
سجل التشغيل والمعلومات | ◎ | ○ | △ |
الاستخدام الموصى به | الخوادم، التوحيد المؤسسي | بيئات افتراضية، حواسيب محمولة | جهاز منفرد، للمبتدئين |
التوصية حسب الاستخدام
- الخوادم أو بيئات التشغيل المستمر
→ ntpd أو chrony يوصى بهما لتحقيق أعلى استقرار ودقة. - البيئات السحابية أو الافتراضية أو الحواسيب المحمولة
→ chrony هو الأكثر مرونة ودقة. - جهاز واحد وتزامن وقت بسيط
→ systemd-timesyncd كافٍ.
7. الأسئلة الشائعة (FAQ)
س1. هل يأتي ntpd مثبتًا افتراضيًا في Ubuntu 22.04؟
ج1.
لا، في Ubuntu 22.04 يكون systemd-timesyncd
مفعّلًا افتراضيًا لمزامنة الوقت بشكل مبسط. لتثبيت ntpd
، عليك تثبيت حزمة ntp
يدويًا:
sudo apt install ntp
يُوصى أيضًا بتعطيل systemd-timesyncd
بعد تثبيت ntpd لتجنب التعارض.
س2. أمر ntpq -p
لا يعمل بشكل صحيح، لماذا؟
ج2.
هناك عدة أسباب محتملة:
- الخدمة غير مفعّلة: تحقق باستخدام
sudo systemctl status ntp
وفعّلها إذا لزم الأمر - مشكلة في الاتصال بخادم NTP: تأكد من عدم حجب منفذ UDP 123 بواسطة الجدار الناري
- خطأ في ملف الإعدادات: تحقق من
/etc/ntp.conf
وتأكد من عدم وجود أخطاء
ابدأ بفحص الحالة بالأمر التالي:
ntpq -p
إذا كانت النتيجة فارغة أو reach=0
، فقد يكون هناك مشكلة في الاتصال بخوادم NTP.
س3. أيهما أفضل، ntpd أم chrony؟
ج3.
يعتمد الخيار على بيئة التشغيل:
- خوادم فعلية أو بناء خادم NTP محلي →
ntpd
موثوق أكثر للاستقرار - بيئات افتراضية أو شبكات متغيرة أو أجهزة محمولة →
chrony
أكثر دقة وسرعة - تزامن وقت بسيط →
systemd-timesyncd
كافٍ
س4. ما وظيفة ntpd -gq
؟
ج4.
ntpd -gq
يقوم بالتزامن مع خادم NTP مرة واحدة فقط ثم ينتهي عمله:
-g
: يسمح بتصحيح الانحرافات الكبيرة-q
: ينفذ التزامن مرة واحدة فقط دون العمل كخدمة دائمة
مفيد إذا كان انحراف الوقت كبيرًا جدًا ولا يمكن تصحيحه تلقائيًا.
س5. هل يجب تحديد عدة خوادم NTP؟
ج5.
نعم، تحديد أكثر من خادم NTP يعزز الاعتمادية. إذا تعطل أحد الخوادم، يستمر التزامن مع الخوادم الأخرى.
مثال لإعداد متعدد (في /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 يجب أن يتماشى مع هدف النظام وهيكله ومتطلبات الاعتمادية.
ومع ذلك، تبقى القاعدة “لا تشغيل مستقر بدون وقت دقيق” ثابتة في كل الحالات.
- للخوادم أو أنظمة تتطلب إدارة سجلات دقيقة → اضبط
ntpd
أوchrony
بعناية - للاستخدام البسيط على جهاز منفرد →
systemd-timesyncd
كافٍ
دقة الوقت قد لا تظهر أهميتها في التشغيل اليومي، لكنها تصبح معيارًا أساسيًا عند وقوع المشاكل. ننصح بالاعتماد على هذا المقال لاختيار أفضل آلية تزامن لبيئة Ubuntu الخاصة بك.