İçeriğe geç

Sunucuda zaman senkronizasyonu: neden gecikir ve nasıl düzeltilir

Orta 20 dk Güncellendi:

Kısa cevap

Sunucu saati en sık kullanılamayan NTP sunucusu, engellenen UDP 123 portu veya yanlış saat dilimi nedeniyle gecikir. NTP hizmetinin etkin olup olmadığını, senkronizasyonun başarılı olup olmadığını ve saniye cinsinden farkın otomatik ayar için çok büyük olup olmadığını kontrol edin. Sapma büyükse önce yaklaşık saati elle ayarlayın, sonra NTP'nin işi bitirmesine izin verin.

Sorun nasıl anlaşılır

  • Sunucudaki saat gerçek saatten dakikalar önce veya sonra
  • Günlüklerde yanlış zaman damgalı olaylar görünüyor
  • Sertifika henüz geçerli değil veya süresi doldu türünde SSL/TLS hataları
  • Etki alanında oturum açma başarısız veya kimlik doğrulama hataları
  • Cron görevleri beklenmedik zamanlarda çalışıyor

En yaygın nedenler

NTP hizmeti etkin değil

Sunucuda chrony, ntpd veya systemd-timesyncd devre dışı bırakılmış ya da durdurulmuş, bu nedenle saat yalnızca zamanla sapan yerel donanım saatine güveniyor.

NTP trafiği engellenmiş

Güvenlik duvarı veya sunucunun bulunduğu ağ UDP 123 portunu engelliyor, bu nedenle sunucu hiçbir kaynaktan doğru zaman alamıyor.

Yanlış saat dilimi

Saat dilimi yanlış ayarlanmış, bu nedenle saat doğru olsa bile görüntülenen zaman bir veya iki saat kaymış.

Aşırı sapma

Saat izin verilen eşiğin üzerinde saparsa NTP onu aniden değiştirmez, kademeli olarak düzeltir veya senkronizasyonu reddeder.

Ana makineyle senkronize olmayan sanal makine

VM ana makineden yanlış zamanı devralır veya taşıma ve duraklatma sonrası senkronizasyonu kaybeder, bu nedenle saat sapmaya başlar.

Adım adım çözüm

  1. 1

    Geçerli saati ve senkronizasyon durumunu kontrol edin

    timedatectl komutunu çalıştırın ve yerel saat, saat dilimi ve NTP senkronizasyon durumu alanlarına bakın. NTP etkin ancak senkronizasyon yok yazıyorsa sorun saatin kendisinde değil, NTP kaynağıyla bağlantıdadır.

  2. 2

    Hangi zaman hizmetinin kullanıldığını kontrol edin

    Çoğu dağıtımda chrony veya systemd-timesyncd çalışır. Durumu systemctl status chrony veya systemctl status chronyd (ad dağıtıma bağlıdır) ya da systemctl status systemd-timesyncd komutuyla kontrol edin. İki hizmeti aynı anda etkinleştirmeyin, birbirlerini engellerler.

  3. 3

    NTP kaynaklarını kontrol edin

    chrony için chronyc sources -v ve chronyc tracking komutlarını çalıştırın. ^* işaretli sütun sunucunun senkronize olduğu kaynağı gösterir. Yıldız işareti yoksa sunucu hiçbir kaynaktan zaman almıyor demektir.

  4. 4

    NTP sunucusunun kullanılabilirliğini ve 123 portunu kontrol edin

    Kaynak başına örnekleme istatistiklerini görmek için chronyc sourcestats komutunu çalıştırın. Güvenlik duvarının giden UDP 123 portunu firewall-cmd veya ufw kurallarıyla engellemediğini kontrol edin (örneğin firewall-cmd --list-all veya ufw status verbose). Giden trafik kısıtlıysa ağınızda izin verilen bir NTP sunucusu kullanın.

  5. 5

    Saat dilimini ayarlayın

    Saat doğru ancak tam bir saat kaymışsa dilim yanlıştır. timedatectl set-timezone Europe/Istanbul komutuyla ayarlayın ve görüntülenen saatin beklenenle eşleşip eşleşmediğini kontrol edin.

  6. 6

    Sapma büyükse saati elle yaklaştırın

    Saat dakikalar veya saatlerce geriyse NTP bunu reddedebilir. Etkin zaman hizmetini durdurun (systemctl stop chronyd veya systemctl stop chrony ya da systemctl stop systemd-timesyncd), date -s "2026-11-10 12:00:00" komutuyla yaklaşık saati ayarlayın ve hizmeti yeniden başlatın. Bunu yalnızca doğru saatten eminseniz yapın, çünkü tüm kayıtları ve görevleri etkiler.

  7. 7

    Senkronizasyonu zorlayın ve sonucu kontrol edin

    chrony'de saatin hemen hizalanması için chronyc makestep komutunu çalıştırın, ardından chronyc tracking ve timedatectl komutlarını yeniden çalıştırın. Sapma değeri milisaniye cinsinden olmalı ve azalmalıdır.

  8. 8

    Senkronizasyonun sürdüğünü kontrol edin

    Birkaç dakika bekleyin ve timedatectl komutunu tekrarlayın. Saat yeniden kayıyorsa hizmetin systemctl is-enabled chronyd veya systemctl is-enabled chrony (ad dağıtıma bağlıdır) komutuyla etkin olup olmadığını kontrol edin ve değilse systemctl enable chronyd veya systemctl enable chrony komutuyla etkinleştirin. Başka bir şeyin onu sıfırlayıp sıfırlamadığını da kontrol edin, örneğin sanal makinede ana makineyle senkronizasyon.

Hiçbir şey yardımcı olmazsa: daha derin kontrol ve sanallaştırma

NTP etkin olmasına rağmen saat hâlâ kayıyorsa sistem günlüklerini (journalctl -u chronyd veya journalctl -u chrony) ve kaynaklarla iletişimde hata olup olmadığını kontrol edin. Sanal makinelerde ana makineyle zaman senkronizasyonu ayarlarını kontrol edin ve konuk içindeki NTP hizmetiyle çakışıyorsa devre dışı bırakın. Fiziksel sunucularda anakart pilini ve donanım saatinin durumunu kontrol edin, çünkü bitmiş pil yeniden başlatma sonrası büyük sapmalara neden olur. Sunucu bir etki alanı kullanıyorsa etki alanına üye olup olmadığını ve zamanı etki alanı denetleyicisinden alıp almadığını kontrol edin. Birden çok sunucu içeren ortamlarda en iyisi bir sunucunun iç NTP kaynağı olması, diğerlerinin onunla senkronize olmasıdır.

Tekrarlanmaması için

  • NTP hizmetini etkin tutun ve senkronizasyon durumunu düzenli olarak kontrol edin
  • Güvenlik duvarı kurallarında güvenilir NTP kaynaklarına UDP 123 portuna izin verin
  • Sunucu kurulumunda doğru saat dilimini hemen ayarlayın
  • Saat sapmasını izleme ile takip edin ve birkaç saniyeyi aşarsa uyarı verin

Ne zaman uzmana başvurmalı

NTP hizmeti, güvenlik duvarı ve saat dilimi kontrolünden sonra saat hâlâ kayıyorsa veya sunucu birden çok denetleyicili bir etki alanının parçasıysa, tüm ağ düzeyinde senkronizasyonu kontrol etmesi için IT desteğini aramanız daha iyidir.

BT altyapı bakımı · Sunucular, ağlar, yedekleme, güvenlik ve yardım masası

Sık sorulan sorular

Sunucuda ne kadar saat sapması kabul edilebilir?

Çoğu sunucu için birkaç on milisaniyelik sapma normaldir ve zararsızdır. Bir saniyeden büyük sapma kimlik doğrulama ve günlüklerde sorunlara yol açabilir, dakikalar ise neredeyse her zaman uygulama çalışmasında hatalara neden olur.

NTP açık olmasına rağmen saatim neden gecikiyor?

En sık nedeni, güvenlik duvarı veya erişilemeyen ağ nedeniyle sunucunun NTP kaynağından yanıt alamamasıdır. `chronyc sources -v` ve hizmet durumunu kontrol edin, çünkü hizmetin açık olması senkronizasyonun gerçekten başarılı olduğu anlamına gelmez.

Sunucuda saati elle değiştirebilir miyim?

Değiştirebilirsiniz, ancak yalnızca sapma büyükse ve doğru saatten eminseniz. Elle değişiklik günlükleri, cron görevlerini ve oturumları etkiler, bu nedenle önce NTP hizmetini durdurmak, yaklaşık saati ayarlamak ve sonra yeniden başlatmak daha iyidir.

Paylaş
Çözüm bulamadınız mı?AI BT asistanı 7/24 hizmetinizde. Sorunu anlatın veya hatanın ekran görüntüsünü gönderin, durumunuza özel talimat alın.AI BT asistanına sorun