وقت نظام دبيان. وقت غير صحيح على Ubuntu أو Debian - مشاكل في مزامنة وقت NTP

بيت / محركات الأقراص الصلبة

الوقت المحدد على جهاز الكمبيوتر لا يساعد الشخص على التحقق من التاريخ والوقت فحسب، بل يؤدي أيضًا إلى تنفيذ العديد من المهام المهمة الأخرى. على سبيل المثال، حاول إعادة وقتك بضع ساعات إلى الوراء أو العودة بالزمن إلى الوراء عن طريق تحديد العام 19xx في الإعدادات. انتقل الآن إلى google.com بهذا التاريخ. على الأرجح سوف تكون إخفاقا تاما.

في بيئة الشركة، يمكن أن يتسبب الوقت الذي تم تكوينه بشكل غير صحيح في حدوث الكثير من الأخطاء الأخرى: بدءًا من عدم قدرة المستخدم على المصادقة في النظام إلى... دعونا لا نتحدث عن أشياء حزينة.

هناك عدة طرق لتعيين التاريخ والوقت. تذكر ذلك هذه العمليةيؤثر على إعدادات النظام وبالتالي يتطلب امتيازات المستخدم الجذر.

الطريقة رقم 1

هذه هي أبسط طريقة. الأكثر تفضيلاً للمبتدئين. يتم التكوين من خلال معالج في وضع الرسم الزائف.

Dpkg-إعادة تكوين tzdata

الطريقة رقم 2

مطابق تقريبًا للطريقة رقم 1. بسيطة ومريحة، ولكن هذه المرة فقط في وضع النص. كل ما عليك فعله هو اتباع تعليمات المعالج

الطريقة رقم 3

واحدة من المرافق systemd

Timedatectl ضبط المنطقة الزمنية<название зоны>

عرض المناطق المتاحة

قائمة Timedatectl للمناطق الزمنية

الطريقة رقم 4

باستخدام الأداة المساعدة ntpdate. تقصير هذه الأداةغير مثبت.

ملائمة تثبيت ntp ntpdate

أضف خادم ntp إلى ملف التكوين /etc/ntp.conf، وابحث عن الأسطر التي تبدأ بـpool. مزيد من التفاصيل حول بناء جملة ملف man ntp.conf

دعونا نوقف خدمة وقت الشبكة للتحديث

توقف خدمة NTP

تلقي البيانات من خادم NTP

Ntpdate -s<адрес ntp-сервера>

بدء الخدمة مرة أخرى

بدء الخدمة NTP

الطريقة رقم 5

الإعداد اليدوي. اكتب المنطقة الزمنية المطلوبة في ملف /etc/timezone، على سبيل المثال Europe/Moscow

صدى أوروبا/موسكو > /etc/timezone

نقوم بالكتابة فوق بيانات المنطقة الزمنية.

Ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

تلقي البيانات من خادم NTP

|

يعد التوقيت الدقيق جانبًا مهمًا جدًا للتشغيل الصحيح للكثيرين البرامج الحديثة. بسبب الوقت غير الصحيح، قد تحدث أخطاء على الخادم وقد تتلف البيانات (على سبيل المثال، عند تحديث قاعدة البيانات أو التسجيل).

في Debian 9، تكون مزامنة الوقت مدمجة وممكّنة افتراضيًا؛ يتم التعامل معه بواسطة خادم ntpd القياسي الذي توفره حزمة ntp. سيقدم لك هذا الدليل الأوامر الأساسيةلإدارة الوقت، سوف يعلمك كيفية التحقق من حالة ntpd وتثبيت خدمات وقت الشبكة الأخرى.

متطلبات

للعمل، ستحتاج إلى خادم Debian 9 ومستخدم لديه حق الوصول إلى Sudo (يجب إكمال الدليل في جلسة هذا المستخدم). ستجد جميع تعليمات الإعداد اللازمة.

الأوامر الأساسية لإدارة الوقت

التاريخ هو الأمر الرئيسي لتحديد الوقت على الخادم. يمكن لأي مستخدم استخدامه لمعرفة التاريخ والوقت:

تاريخ
الثلاثاء 4 سبتمبر، الساعة 17:51:49 بالتوقيت العالمي 2018

عادةً، افتراضيًا، تستخدم الخوادم المنطقة الزمنية UTC (التوقيت العالمي المنسق) - وهذا هو التوقيت العالمي المنسق. يقوم UTC باستمرار بتعيين الوقت على الخوادم وتقليل الأخطاء إذا كانت خوادم البنية التحتية موجودة في مناطق زمنية مختلفة.

لتغيير المنطقة الزمنية، استخدم الأمر timedatectl.

طلب قائمة بالأحزمة المتوفرة:

قائمة timedatectl-المناطق الزمنية

يمكنك التحرك لأسفل القائمة باستخدام شريط المسافة، وللأعلى باستخدام b. حدد منطقتك الزمنية، واكتبها ثم اضغط على q لإغلاق القائمة.

الآن قم بتعيين المنطقة الزمنية باستخدام timedatectl set-timezone. استخدم الأمر التالي، مع تحديد المنطقة الزمنية المطلوبة:

sudo timedatectl set-timezone America/New_York

ملاحظة: استبدل America/New_York بالمنطقة الزمنية المطلوبة.

تأكد من تغيير الحزام:

تاريخ
الثلاثاء 4 سبتمبر، الساعة 13:52:57 بتوقيت شرق الولايات المتحدة 2018

سيعكس اختصار المنطقة الزمنية القيمة الجديدة.

حالة NTPD

افتراضياً، يستخدم Debian 9 خادم ntpd القياسي لمزامنة الوقت مع مجموعة من الخوادم الخارجية. يمكنك التحقق من حالته باستخدام systemctl:

حالة سودو systemctl ntp
ntp.service - LSB: بدء تشغيل برنامج NTP الخفي
تم التحميل: تم التحميل (/etc/init.d/ntp؛ تم إنشاؤه؛ الإعداد المسبق للبائع: ممكّن)
نشط: نشط (قيد التشغيل) منذ الثلاثاء 2018-09-04 الساعة 15:07:03 بتوقيت شرق الولايات المتحدة؛ منذ 30 دقيقة
المستندات: man:systemd-sysv-generator(8)
العملية: 876 ExecStart=/etc/init.d/ntp start (الرمز=خروج، الحالة=0/نجاح)
المهام: 2 (الحد: 4915)
مجموعة المجموعة: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .

يشير الخط النشط (قيد التشغيل) إلى أن الخادم يعمل بشكل صحيح. يمكنك الحصول على مزيد من المعلومات باستخدام الأمر ntpq:

ntpq -p
refid عن بعد st t عندما يصل الاستطلاع إلى تأخير إزاحة الارتعاش
==============================================================================
0.debian.pool.n .POOL. 16 ع - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 ع - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 ع - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 ع - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 ش 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 ش 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 ش 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 ش 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 ش 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 ش 473 512 377 19.930 -1.764 0.293

ntpq هي أداة الاستعلام ntpd. تقوم العلامة –p بجمع معلومات حول خوادم NTP التي يتصل بها ntpd. ستكون مخرجاتك مختلفة قليلًا، لكنها ستتضمن خوادم تجمع دبيان القياسية وبعض الخوادم الأخرى. قد يستغرق الأمر عدة دقائق ntpd لإنشاء اتصال.

التبديل من ntpd إلى systemd-timesyncd

لاستبدال ntpd، يمكنك استخدام البرنامج الخفي المضمن في systemd. يعد timesyncd بديلاً بسيطًا لـ ntpd، وهو مدمج مع systemd. ومع ذلك، عند الترحيل، انتبه إلى أن timesyncd لا يعمل كخادم وقت ويستخدم أساليب أقل تعقيدًا لمزامنة وقت النظام. إذا كنت تستخدم أنظمة موزعة معقدة في الوقت الفعلي، فمن الأفضل أن تظل مع ntpd.

للتبديل إلى timesyncd، قم أولاً بإزالة ntpd.

sudo apt purge ntp

ثم قم بتشغيل timesyncd:

سودو systemctl بدء تشغيل systemd-timesyncd

تحقق من حالته:

Sudo Systemctl Status Systemd-timesyncd
systemd-timesyncd.service - مزامنة وقت الشبكة
تم التحميل: تم التحميل (/lib/systemd/system/systemd-timesyncd.service؛ ممكّن؛ الإعداد المسبق للمورد: ممكّن)
الدخول المباشر: /lib/systemd/system/systemd-timesyncd.service.d
└─تعطيل مع الوقت-daemon.conf
نشط: نشط (قيد التشغيل) منذ الثلاثاء 2018-09-04 الساعة 16:14:23 بتوقيت شرق الولايات المتحدة؛ منذ 1 ثانية
المستندات: رجل:systemd-timesyncd.service(8)
معرف المنتج الرئيسي: 3399 (systemd-timesyn)
الحالة: "متزامنة مع خادم الوقت 198.60.22.240:123 (0.debian.pool.ntp.org)."
المهام: 2 (الحد: 4915)
مجموعة المجموعة: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd

للحصول على معلومات حول إدراك الوقت الحالي لـ systemd، اكتب:

com.timedatectl
التوقيت المحلي: الثلاثاء 2018-09-04 16:15:34 بتوقيت شرق الولايات المتحدة
التوقيت العالمي: الثلاثاء 2018-09-04 20:15:34 بالتوقيت العالمي
توقيت RTC: الثلاثاء 2018-09-04 20:15:33
المنطقة الزمنية: أمريكا/نيويورك (توقيت شرق الولايات المتحدة، -0400)
وقت تشغيل الشبكة: نعم

NTP متزامنة: نعم
RTC في TZ المحلي: لا

سيعرض الأمر التوقيت المحلي والتوقيت العالمي (والذي قد يكون هو نفس التوقيت المحلي إذا لم تقم بالتبديل من المنطقة الزمنية UTC) ومعلومات حول حالة وقت الشبكة. تشغيل وقت الشبكة: نعم يشير إلى تمكين خدمة timesyncd، ومزامنة NTP: نعم يشير إلى أنه تمت مزامنة الوقت بنجاح.

خاتمة

الآن أنت تعرف كيفية إدارة وقت النظام خوادم ديبيان 9.

من المهم الحفاظ على وقت أكثر أو أقل دقة على الخادم. بحيث يكون من السهل قراءة السجلات، بحيث لا يرسل الخادم الخاص بك رسائل للآخرين من الماضي أو من المستقبل، بحيث... لا يهم - إنه مهم فقط وهذا كل شيء.
بسبب مواطن الخلل المختلفة، والأخطاء في الأجهزة، ودورات الطاقة، قد يتأخر الوقت الموجود على الخادم أو يندفع بالنسبة إلى الوقت الذري. عادة - لا يزيد عن ثانية في اليوم، في الممارسة العملية - ثانية في الشهر، أو حتى أقل. لكن الأجهزة التي تعمل بشكل سيء يمكن أن تضيع الوقت أكثر بكثير (بشكل عام، التقلبات القوية في الوقت المناسب هي سبب للتفكير في صحة الأجهزة).
هناك طريقتان شائعتان لمزامنة الوقت في Linux - ntpdate باستخدام cron، أو تشغيل ntpd باستمرار. ولك الحرية في اختيار أي منهما، وسأكتب عن كليهما. لكن بالأصالة عن نفسي، ما زلت أوصي باستخدام ntpdate وفقًا للتاج، خاصةً إذا لم يكن من المهم جدًا بالنسبة لك الاحتفاظ بالوقت على الخادم باستمرار مع وجود خطأ أقل من 0.1 ثانية.
حدثت مشكلة في ntpd عندما أتاحت ثغرة أمنية فيه استخدام خوادم ntpd لتنفيذ هجوم تضخيم udp (عندما تسمح لك حزمة صغيرة مرسلة نحو خادمك بإنشاء حزمة udp كبيرة تجاه خادم شخص آخر تمت مهاجمته) - http //habrahabr.ru/post/209438/
بالطبع، تم إصلاح هذه الثغرة الأمنية (وكتبوا كيفية الهروب منها دون تحديثات ntpd)، ولكن أين هو الضمان بعدم وجود مشاكل مماثلة؟ ومرة أخرى، لا يزال ntpd يعمل على UDP ومن الممكن حدوث هجمات من نوع مماثل، وإن كان ذلك بدون زيادة كبيرة في حركة المرور (لكن هذا سيسمح لك بإخفاء المهاجم، مما يعرض خادمك لإساءة الاستخدام). بالمناسبة، اكتشفت حقيقة أن ntpd، المدمج في وحدة ipmi الخاصة بالخادم، كان عرضة لهذا الهجوم واستمتع بإزعاج جيراني في البلد =)
لذلك، إذا لم تكن مستعدًا لقراءة النشرات الإخبارية الأمنية ومتابعة التحديثات وما إلى ذلك باستمرار، فلا يزال يتعين عليك عدم تثبيت ntpd.
لذا، الطريقة الأولى: قم بتشغيل ntpdate مرة واحدة يوميًا حسب التاج.
نقوم بإزالة ntpd، إذا كان موجودا:

الجذر@الخادم:~# apt-get Remove --purge ntpd

تعيين تاريخ نت:

الجذر@الخادم:~# الرابطة بين الحصول على تثبيت ntpdate

وقم بإنشاء ملف /etc/cron.d/ntpdate بالمحتوى التالي:

0 6 * * * جذر ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

الآن كل يوم في الساعة 6 صباحًا (اضبط الوقت والتردد بنفسك) سيتم تحديث الساعة.

الطريقة الثانية: nptd.
علينا أن نضع الأمر في الاتجاه المعاكس:

الجذر@الخادم:~# الرابطة بين الحصول على تثبيت NTPD

والكتابة إلى التكوين /etc/ntpd.confالتكوين الصحيح أكثر أو أقل:

تعطيل المصادقة
تعطيل الإحصائيات
الخادم 0.ubuntu.pool.ntp.org
الخادم 1.ubuntu.pool.ntp.org
الخادم 2.ubuntu.pool.ntp.org
الخادم 3.ubuntu.pool.ntp.org

ثم نعيد تشغيله:

الجذر@الخادم:~# /etc/init.d/ntp إعادة التشغيل

هذا كل شيء، الآن تم ضبط ساعتنا في الوقت الفعلي ومزامنتها مع مجموعة من خوادم ntp.

أستخدم غرفة العمليات نظام ديبيان GNU/Linux على خوادم استضافة المواقع. عندما تم إصدار الإصدار 9 من Stretch في صيف عام 2017، كنت سعيدًا لأن PHP 7 كان متاحًا بشكل جاهز في المستودعات، والذي، كما تعلم، يعمل بشكل أسرع من PHP 5.

سأوضح في هذه المقالة أن ضبط الوقت على Debian 9 أصبح أفضل أيضًا؛ فلن تحتاج إلى تنزيل أو تثبيت أي شيء إضافي، ولا سيما البرنامج الخفي ntp أو الأداة المساعدة ntpdate. تم تكوين كل شيء بشكل مثالي ويعمل من أجله مجموعة قياسيةبرنامج Debian 9 بفضل الإصدار المحدث systemd، والتي لديها خدمة منفصلة مسؤولة عن مزامنة وقت النظام باستخدام البروتوكول نتب.

كيفية ضبط الوقت على دبيان 9

تحتاج أولاً إلى تحديد المنطقة الزمنية الخاصة بك وتعيينها، بالنسبة لي تبدو كما يلي:

# timedatectl set-timezone Europe/Volgograd

ثم تحتاج إلى تحرير الملف /etc/systemd/timesyncd.confمع الإشارة فيه إلى الخوادم الخاصة بمزامنة الوقت، على سبيل المثال هكذا:

# هذا الملف جزء من Systemd. # # systemd هو برنامج مجاني؛ يمكنك إعادة توزيعه و/أو تعديله # بموجب شروط رخصة GNU العامة الصغرى كما نشرتها # مؤسسة البرمجيات الحرة؛ إما الإصدار 2.1 من الترخيص، أو # (حسب اختيارك) أي إصدار لاحق. # # تُظهر الإدخالات في هذا الملف الإعدادات الافتراضية لوقت الترجمة. # يمكنك تغيير الإعدادات عن طريق تحرير هذا الملف. # يمكن استعادة الإعدادات الافتراضية بمجرد حذف هذا الملف. # # راجع timesyncd.conf(5) للحصول على التفاصيل.

NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org هنا في الخيارنتب= تم تحديد الخوادم ذات الأولوية لمزامنة الوقت. إذا كان هناك فشل عند الوصول إليها، الخوادم المحددة في.

FallbackNTP=

بعد إجراء تغييرات على ملف التكوين، تحتاج إلى إعادة تشغيل خدمة مزامنة الوقت:

# إعادة تشغيل systemctl systemd-timesyncd

يمكن التحقق من حالة إعداد الوقت باستخدام الأمر التالي:

# حالة timedatectl

تشير النتيجة أدناه إلى أن الساعة الموجودة على الخادم الخاص بي قد تم تكوينها بشكل صحيح وتتم مزامنتها باستخدام بروتوكول NTP.

التوقيت المحلي: الثلاثاء 2018-12-18 16:36:33 +04 التوقيت العالمي: الثلاثاء 2018-12-18 12:36:33 UTC توقيت RTC: الثلاثاء 2018-12-18 12:36:33 المنطقة الزمنية: أوروبا/ فولغوجراد (+04، +0400) تشغيل وقت الشبكة: نعم مزامنة NTP: نعم RTC في TZ المحلي: لا
هنا،التوقيت المحلي
- هذا هو التوقيت المحلي.- توقيت UTC (التوقيت العالمي المنسق). هذه هي نقطة البداية لجميع المناطق الزمنية؛
وقت RTC- الوقت في ساعة الأجهزة الخاصة بالخادم (الكمبيوتر)؛
المنطقة الزمنية- منطقتك الزمنية؛
وقت الشبكة قيد التشغيل- يشير إلى ما إذا كان عميل ntp المضمن في systemd ممكّنًا؛
NTP متزامنة- تقارير ما إذا كان الوقت متزامنا مع خادم ntp؛
RTC في TZ المحلية- يوضح الوقت المخزن في ساعة الأجهزة: محليًا أو عالميًا. في الوقت نفسه، نعميعني التوقيت المحلي لا- في جميع أنحاء العالم؛

معلومات للمبتدئين

يُسألني أحيانًا عن مكان إدخال (تنفيذ) الأوامر التي أعطيها؟

يجب تنفيذ كافة الأوامر الواردة في هذه المقالة في وحدة تحكم الخادم كمستخدم مميز (جذر). لافتة # (octothorp، lattice، Sharp، hash) يقول هذا فقط.

كعميل وحدة التحكم لـ اتصال عن بعدإلى خوادم أستخدم البرنامج

© 2024 ermake.ru - حول إصلاح أجهزة الكمبيوتر - بوابة المعلومات