Skip to content

NTP server va chronyd sozlamalari

Vaqt zonasi va locale darsida timedatectl bilan vaqt zonasini o'zgartirish va System clock synchronized/NTP service maydonlarini o'qish ko'rilgan edi — ammo o'sha maqola aynan qaysi xizmat vaqtni sinxronlashtirayotgani va uni qanday sozlashni chuqur yoritmagan. Zamonaviy Ubuntu/Debian va RHEL serverlarida bu vazifani odatda chrony (chronyd xizmati) bajaradi. Bu maqola chronydning ichki ishlash mantig'ini, chrony.conf konfiguratsiyasini va serverni boshqa hostlar uchun NTP manbaiga aylantirishni ko'rib chiqadi.

O'quv maqsadlari

Maqolani tugatgach:

  • nima uchun serverlar uchun tarmoq orqali sinxronlangan vaqt shunchaki qulaylik emas, balki ko'plab protokollar (TLS, Kerberos, log tartiblash) uchun zaruriy shart ekanini tushunasiz;
  • chronyd va eski ntpd orasidagi asosiy farqni bilasiz;
  • chronyc tracking va chronyc sources natijalarini o'qib, sinxronizatsiya sifatini baholay olasiz;
  • /etc/chrony/chrony.conf (yoki RHEL'da /etc/chrony.conf) faylidagi asosiy direktivalarni tushunasiz;
  • serverni boshqa ichki hostlar uchun NTP manbaiga aylantirishni bajara olasiz;
  • vaqt sinxronizatsiyasi bilan bog'liq tipik nosozliklarni aniqlashni bilasiz.

Nega tarmoqdagi vaqt sinxroni muhim

Har bir kompyuterning o'z apparat soati (RTC, real-time clock) bor, lekin u vaqt o'tishi bilan asta-sekin haqiqiy vaqtdan siljib ketadi (clock drift). Bir nechta server orasida bu siljish quyidagi muammolarga olib keladi:

  • TLS sertifikatlari — sertifikat amal qilish muddati serverdagi vaqtga nisbatan tekshiriladi; soat noto'g'ri bo'lsa, hali amal qiluvchi sertifikat "muddati o'tgan" yoki "hali kuchga kirmagan" deb rad etilishi mumkin;
  • Kerberos autentifikatsiyasi — protokolning o'zi vaqt tamg'asiga (timestamp) tayanadi; ruxsat etilgan farqdan (odatda bir necha daqiqa) oshsa, autentifikatsiya rad etiladi;
  • Taqsimlangan loglarni tartiblash — bir nechta serverdan yig'ilgan loglarni voqealar ketma-ketligi bo'yicha solishtirish, soatlar sinxron bo'lmasa, amalda imkonsiz bo'lib qoladi.

Shu sababli deyarli barcha production Linux serverlarida vaqt tarmoq orqali, doimiy ravishda tashqi manbadan sinxronlanadi.

chronyd va eski ntpd

Zamonaviy Ubuntu (18.04'dan boshlab standart) va RHEL 8+ serverlarida standart NTP klient/server sifatida chrony ishlatiladi; eski ntpd (klassik NTP loyihasi) hali ba'zi tizimlarda uchraydi, lekin yangi o'rnatishlarda tavsiya etilmaydi. Asosiy amaliy farqlar:

  • chronyd vaqtincha uzilgan yoki sekin tarmoq ulanishida (masalan, noutbuk, virtual mashina pauza/resume) tezroq va barqarorroq sozlanadi;
  • chronyd server hech qachon internetga doimiy ulanmagan holatlarda (masalan, izolyatsiya qilingan ichki tarmoqda faqat vaqti-vaqti bilan ulanadigan tizim) ham vaqtni yaxshiroq boshqaradi;
  • ikkalasi ham bir xil NTP protokolidan foydalanadi, shu sababli bir-biri bilan mos ishlay oladi (masalan, chronyd boshqa serverdagi ntpddan vaqt ola oladi).

Qaysi xizmat ishlayotganini tekshirish:

systemctl status chronyd
timedatectl | grep 'NTP service'

Ubuntu'da xizmat nomi ba'zan chrony, RHEL oilasida chronyd deb ataladi — aniq nomni systemctl list-units '*chron*' bilan tekshiring.

chronyc: joriy sinxronizatsiya holatini tekshirish

chronycchronyd xizmati bilan muloqot qiluvchi buyruq qatori vositasi.

chronyc tracking

chronyc tracking
Reference ID    : C0248F62 (ntp1.example.com)
Stratum         : 3
Ref time (UTC)  : Fri Jul 25 09:58:10 2026
System time     : 0.000012340 seconds fast of NTP time
Last offset     : +0.000015600 seconds
RMS offset      : 0.000045000 seconds
Frequency       : 3.256 ppm fast
Residual freq   : +0.002 ppm
Skew            : 0.045 ppm
Root delay      : 0.023456789 seconds
Root dispersion : 0.001234567 seconds
Update interval : 64.2 seconds
Leap status     : Normal

Muhim maydonlar:

  • Stratum — server manbadan necha "qadam" uzoqligini bildiradi: stratum 1 — apparat vaqt manbasiga (atom soat, GPS) bevosita ulangan server, stratum 2 — undan olayotgan server, va hokazo; raqam qanchalik katta bo'lsa, manba shunchalik uzoq va potentsial kamroq aniq;
  • System time — joriy tizim soati NTP orqali hisoblangan "haqiqiy" vaqtdan qancha farqlanayotgani;
  • Leap status: Normal — hech qanday leap second yoki boshqa maxsus holat yo'q, sinxronizatsiya barqaror; Not synchronised bo'lsa, tizim hali hech qanday manba bilan mos kelmagan.

chronyc sources

chronyc sources -v
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp1.example.com              2   6   377    23   +120us[ +135us] +/-  15ms
^+ ntp2.example.com              2   6   377    25   +310us[ +298us] +/-  18ms
^- 192.168.1.1                   3   6   177    41   -2.1ms[ -2.3ms] +/- 120ms

Ustunlarning ma'nosi:

  • ^* — hozir asosiy manba sifatida tanlangan server (faqat bitta bo'lishi mumkin);
  • ^+ — kombinatsiyada hisobga olinayotgan, ishonchli qo'shimcha manba;
  • ^- — hisoblashda hozircha ishtirok etmayotgan manba (masalan, boshqalarga nisbatan ancha farqli javob bergani uchun);
  • Reach — oxirgi so'rovlarga javob berish tarixi, sakkizlik (oktal) bitmask ko'rinishida; 377 — oxirgi sakkiz so'rovning barchasiga javob kelgan degani;
  • Last sample — o'sha manbadan olingan oxirgi o'lchov va uning taxminiy xatolik chegarasi.

chronyc sourcestats esa har bir manba bo'yicha vaqt o'tishidagi barqarorlik statistikasini (masalan, chastota siljishi) ko'rsatadi — uzoq muddatli sifatni baholash uchun foydali.

chrony.conf: klient konfiguratsiyasi

Asosiy konfiguratsiya fayli Ubuntu/Debian'da /etc/chrony/chrony.conf, RHEL oilasida odatda /etc/chrony.conf yo'lida joylashadi.

pool ntp.ubuntu.com iburst maxsources 4
driftfile /var/lib/chrony/chrony.drift
makestep 1.0 3
rtcsync

Asosiy direktivalar:

  • pool/server — vaqt manbai; pool bir nechta serverdan iborat DNS pool'iga ishora qiladi (masalan, pool.ntp.org), server esa aniq bitta serverga;
  • iburst — dastlabki sinxronizatsiyani tezlashtirish uchun bir nechta so'rovni tez ketma-ketlikda yuborish;
  • driftfile — apparat soatining taxminiy siljish tezligi saqlanadigan fayl; qayta ishga tushirilganda chronyd shu qiymatdan boshlanadi, nolldan emas;
  • makestep 1.0 3 — agar vaqt farqi 1.0 sekunddan katta bo'lsa, birinchi uchta o'lchov davomida vaqtni sekin moslashtirish o'rniga darhol "sakratib" to'g'rilash mumkinligini bildiradi; bu odatda faqat ishga tushishda kerak bo'ladi, chunki katta farqni sekin tuzatish uzoq davom etadi;
  • rtcsync — tizim soati apparat soatiga (RTC) davriy ravishda yozib turilishini yoqadi.

Konfiguratsiyani o'zgartirgandan keyin xizmatni qayta yuklash:

sudo systemctl restart chronyd
chronyc tracking

Serverni ichki NTP manbai sifatida sozlash

Ko'p serverli ichki tarmoqda har bir hostni to'g'ridan-to'g'ri internetga chiqarish o'rniga, bitta serverni internetdan vaqt olib, uni boshqa ichki hostlarga tarqatuvchi ichki NTP serverga aylantirish keng tarqalgan amaliyot — bu tashqi trafikni kamaytiradi va barcha ichki hostlar bir xil manbaga tayanishini ta'minlaydi.

chrony.conf faylida allow direktivasi qo'shiladi:

pool ntp.ubuntu.com iburst

allow 10.20.0.0/24

allow — qaysi tarmoqdan kelgan NTP so'rovlariga xizmat ko'rsatilishini belgilaydi. Standart holatda chronyd faqat klient sifatida ishlaydi va boshqa hostlarga xizmat ko'rsatmaydi; allow yozilmasa, tashqi so'rovlar rad etiladi.

Warning

allow direktivasini keng (masalan, allow 0.0.0.0/0) yozish serverni istalgan tashqi hostga vaqt xizmati ko'rsatadigan ochiq NTP serverga aylantiradi — bu resurslarni behuda sarflashi va ba'zi holatlarda NTP amplification kabi tarmoq suiiste'molida vositachi sifatida ishlatilishi mumkin. allowni har doim aniq, faqat kerakli ichki tarmoq bilan cheklang.

Xizmatni qayta yuklab, konfiguratsiyani tekshirish:

sudo systemctl restart chronyd
chronyc clients

chronyc clients — hozircha ushbu serverdan vaqt so'rayotgan mijozlar ro'yxatini ko'rsatadi; bu ichki NTP server to'g'ri ishlayotganini tasdiqlashning eng to'g'ridan-to'g'ri usuli.

Xavfsizlik devori (firewall)

NTP standart holatda UDP 123 portida ishlaydi. Serverni ichki NTP manbai sifatida ochishdan oldin, mos port faqat kerakli ichki tarmoqdan ochilganini tekshiring — bu mavzu xavfsizlik devori darsida batafsil ko'riladi.

sudo ufw status
sudo ufw allow from 10.20.0.0/24 to any port 123 proto udp

Danger

Firewall qoidasini o'zgartirish tarmoq xizmatlarining boshqa hostlar uchun ko'rinishini o'zgartiradi. Qoidani qo'shishdan oldin joriy ufw status numbered chiqishini saqlab qo'ying va faqat kerakli manzil/portga aniq cheklangan qoida yozing, keng allow qoidalaridan saqlaning.

Amaliy ssenariy: System clock synchronized: no holatini tuzatish

Muammo: timedatectl System clock synchronized: no deb ko'rsatmoqda, TLS ulanishlarida sertifikat xatolari paydo bo'la boshladi.

1-qadam — tekshiruv:

timedatectl
systemctl status chronyd
chronyc tracking

2-qadam — gipoteza tuzish: agar chronyd xizmati inactive/failed holatida bo'lsa — xizmat umuman ishlamayapti; agar xizmat active, lekin chronyc sources hech qanday ^* yozuvini ko'rsatmasa — manbalarga ulanib bo'lmayapti (masalan, tarmoq yoki firewall muammosi).

3-qadam — xizmat holatini tekshirish (xizmat ishlamasa):

sudo systemctl restart chronyd
journalctl -u chronyd --since '10 min ago'

4-qadam — manba mavjud, lekin javob yo'q bo'lsa, ulanishni tekshirish:

chronyc -a 'burst 4/4'
dig +short ntp.ubuntu.com
sudo ss -unlp | grep 123

ss -unlp UDP 123 portida chronyd haqiqatan tinglayotganini tasdiqlaydi; bu keyingi tarmoq diagnostikasi darsida chuqurroq ko'riladigan ss vositasining amaliy qo'llanilishi.

5-qadam — natija: chronyc trackingda Leap status: Normal va chronyc sourcesda kamida bitta ^* yozuvi paydo bo'lsa, sinxronizatsiya tiklangan. timedatectlni qayta tekshiring:

timedatectl | grep -E 'synchronized|NTP service'

6-qadam — hujjatlashtirish: xizmat nega to'xtagani (masalan, avvalgi qayta yuklashda avtomatik ishga tushmagan) va uni doimiy hal qilish uchun nima qilingani (masalan, systemctl enable chronyd) yozib qo'yiladi.

Ko'p uchraydigan xatolar

chronyc sourcesda faqat ^- yozuvlar borligini payqamaslik

Agar hech qaysi manbada ^* bo'lmasa, tizim hali biror serverga to'liq ishonib sinxronlanmagan — bu ko'pincha tarmoq yoki firewall to'sig'i, manba serverning o'zi ishlamayotgani yoki juda katta vaqt farqidan darak beradi.

allowni tekshirmasdan serverni "ichki NTP server" deb hisoblash

chrony.confda allow yozilmagan bo'lsa, xizmat faqat o'zi uchun klient bo'lib qoladi, boshqa hostlarga xizmat ko'rsatmaydi. chronyc clients bilan haqiqatan so'rov kelayotganini tasdiqlang.

Katta vaqt farqini makestepsiz sekin tuzalishini kutish

Sozlamada makestep yo'q yoki juda tor bo'lsa, katta boshlang'ich farq sekin, bosqichma-bosqich tuzatiladi — bu ba'zi ilovalar uchun vaqt o'tishi noto'g'ri ko'rinishiga olib kelishi mumkin. Odatiy holatda faqat ishga tushish paytidagi bir martalik katta tuzatish uchun makestep cheklangan son bilan ishlatiladi.

Vaqt zonasi bilan NTP sinxronizatsiyasini aralashtirib yuborish

Vaqt zonasi noto'g'ri bo'lgani vaqt sinxron emas degani emas — bular ikki mustaqil sozlama. Avval chronyc trackingdagi Leap status va System time qiymatlarini, keyin vaqt zonasi sozlamasini alohida tekshiring.

Amaliy mashqlar

  1. chronyc tracking va chronyc sources -v natijalarini solishtirib, Stratum, Leap status va ^* belgisining ma'nosini o'z so'zingiz bilan yozing.
  2. chrony.confdagi pool, iburst, makestep va driftfile direktivalarining har birini nima uchun kerakligini tushuntiring.
  3. Izolyatsiya qilingan laboratoriya tarmog'ida bitta VM'ni ichki NTP server sifatida sozlang (allow bilan cheklab), ikkinchi VM'dan unga ulanib, chronyc sources orqali tasdiqlang.
  4. Yuqoridagi amaliy ssenariyni takrorlang: chronyd xizmatini ataylab to'xtatib, timedatectldagi o'zgarishni kuzating, so'ng xizmatni tiklab, sinxronizatsiya qayta tasdiqlanguncha kuting.

Xulosa

chronyd — zamonaviy Linux serverlarida vaqtni tarmoq orqali sinxronlashtiruvchi standart xizmat; chronyc tracking va chronyc sources uning qay darajada ishonchli manbaga tayanayotganini ko'rsatadi, chrony.conf esa qaysi manbadan olish va zarur bo'lsa boshqa hostlarga qanday xizmat ko'rsatishni belgilaydi. Vaqt sinxroni — ko'rinmas, lekin TLS, autentifikatsiya va log tahlili kabi ko'plab boshqa xizmatlarning ishonchliligi tayanadigan poydevor. Endi tarmoqning barcha asosiy qismlari — manzil, marshrut, ism hal qilish, doimiy konfiguratsiya va vaqt — ko'rilgach, yakuniy tarmoq diagnostikasi darsida ana shu qismlarning har birida muammoni qanday tezkor aniqlash mumkinligi bitta yaxlit yondashuvga jamlanadi.

Manbalar