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;
chronydva eskintpdorasidagi asosiy farqni bilasiz;chronyc trackingvachronyc sourcesnatijalarini 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:
chronydvaqtincha uzilgan yoki sekin tarmoq ulanishida (masalan, noutbuk, virtual mashina pauza/resume) tezroq va barqarorroq sozlanadi;chronydserver 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,
chronydboshqa serverdagintpddan vaqt ola oladi).
Qaysi xizmat ishlayotganini tekshirish:
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
chronyc — chronyd xizmati bilan muloqot qiluvchi buyruq qatori vositasi.
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 synchronisedbo'lsa, tizim hali hech qanday manba bilan mos kelmagan.
chronyc sources
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;poolbir nechta serverdan iborat DNS pool'iga ishora qiladi (masalan,pool.ntp.org),serveresa 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 tushirilgandachronydshu 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:
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:
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:
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.
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:
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):
4-qadam — manba mavjud, lekin javob yo'q bo'lsa, ulanishni tekshirish:
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:
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
chronyc trackingvachronyc sources -vnatijalarini solishtirib,Stratum,Leap statusva^*belgisining ma'nosini o'z so'zingiz bilan yozing.chrony.confdagipool,iburst,makestepvadriftfiledirektivalarining har birini nima uchun kerakligini tushuntiring.- Izolyatsiya qilingan laboratoriya tarmog'ida bitta VM'ni ichki NTP server sifatida sozlang (
allowbilan cheklab), ikkinchi VM'dan unga ulanib,chronyc sourcesorqali tasdiqlang. - Yuqoridagi amaliy ssenariyni takrorlang:
chronydxizmatini 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.