Türkiye'de hangi NTP sunucusu? TÜBİTAK UME ve chrony
VPS saatinizi TÜBİTAK UME, tr.pool.ntp.org veya Cloudflare NTS ile eşleyin. time.google.com neden bunlarla aynı listeye girmez, Ubuntu'da chrony nasıl ayarlanır?
Kısa cevap: Türkiye'de hangi NTP sunucusu kullanılır?
Türkiye'deki bir VPS için ilk tercih edilecek NTP sunucusu, TÜBİTAK UME'nin time.ume.tubitak.gov.tr adresidir. Yanına tr.pool.ntp.org havuzundan iki sunucu ekleyin. Kimliği doğrulanmış bir kaynak için de Cloudflare'in NTS destekli time.cloudflare.com sunucusunu ekleyin. Bu kaynakların hepsi artık saniyeyi aynı standart yöntemle uygular, bu yüzden aynı yapılandırmada birlikte çalışır. time.google.com iyi bir servistir, ama bu listeye eklenmez.
NTP (Network Time Protocol, ağ zaman protokolü), bir bilgisayarın saatini ağ üzerindeki başka bir saate göre ayarlamasını sağlar. Elinizdeki seçenekler şunlardır:
time.ume.tubitak.gov.tr: Ulusal Metroloji Enstitüsü'nün (UME) Stratum 1 sunucusu. Türkiye'nin ulusal zamanı UTC(UME) buradan dağıtılır.tr.pool.ntp.org: Gönüllülerin işlettiği NTP Pool projesinin Türkiye bölgesi.time.cloudflare.com: Anycast bir servis. NTS (Network Time Security, ağ zaman güvenliği) destekler. Bu listede kimliği doğrulanabilen tek seçenek budur.time.google.com: Bu da anycast bir servis, ama artık saniyeyi bir güne yayar (leap smear). Ya tek başına kullanılır ya da hiç kullanılmaz.
Anycast, aynı IP adresinin dünyada birçok noktadan yayınlanmasıdır. İsteğiniz ağ açısından size en yakın noktaya gider. Stratum ise bir sunucunun referans saate olan uzaklığıdır. Atomik saatin kendisi stratum 0 sayılır. Ona doğrudan bağlı sunucu stratum 1 olur.
Bu yazı yalnızca "hangi sunucu" sorusunu cevaplar. Saatiniz zaten kayıyorsa ve sebebini arıyorsanız, VPS saat kayması ve zaman senkronizasyonu rehberine bakın. Orada kayma sorunlarını adım adım ele alıyoruz.
Saat neden bir VPS için önemli?
Bir sunucunun saati birkaç saniye bile yanlışsa, bazı şeyler gözle görülür şekilde bozulur. TLS (transport layer security) istemcileri sertifikanın geçerlilik tarihlerini yerel saate göre kontrol eder. Saat geride kalırsa, yeni alınmış bir sertifika henüz geçerli olmadığı için reddedilir. TOTP (time-based one-time password, zamana dayalı tek kullanımlık şifre) kodları 30 saniyelik pencerelerle üretilir. Bu yüzden saati kaymış bir sunucu doğru kodu da reddeder.
Loglar da etkilenir. İki sunucunun loglarını yan yana okurken saatler farklıysa, olayların sırası yanlış görünür. Birden fazla VPS işletiyorsanız, hepsinin aynı kaynak grubuna bakması bu yüzden önemlidir.
TÜBİTAK UME: time.ume.tubitak.gov.tr
TÜBİTAK UME, Gebze'deki Zaman ve Frekans Laboratuvarı'nda sezyum atomik saatlerle Türkiye'nin ulusal zaman ölçeğini üretir. Bu zamanı internet üzerinden NTP ile ücretsiz dağıtır. Sunucu Stratum 1 seviyesindedir, yani doğrudan atomik saate bağlıdır. UME bu servisi kendi belgesinde anlatır: Bilgisayarınızı TÜBİTAK UME Atomik Saatine Nasıl Eş Zamanlı Hale Getirebilirsiniz?
Türkiye'deki bir VPS için UME'nin iki avantajı vardır. Ağ yolu kısadır, bu yüzden gecikme düşüktür ve ölçüm daha kararlıdır. Kaynak ayrıca ulusal referansın kendisidir. Saatinizin hangi resmi zamana bağlı olduğunu sorana net bir cevap verebilirsiniz.
NTS konusunda durum şudur: Ekim 2026 itibarıyla UME'nin laboratuvar sayfası NTS desteğinden söz etmiyor. Bu yüzden UME satırına nts seçeneği eklemeyin. Bu seçenekle chrony, 4460 numaralı TCP portunda bir NTS-KE (NTS key exchange, anahtar değişimi) sunucusu arar. Bulamazsa bu kaynaktan zaman almaz. UME'yi düz NTP kaynağı olarak kullanın. Kimlik doğrulamasını Cloudflare'den alın.
tr.pool.ntp.org: Türkiye havuzu
NTP Pool, gönüllülerin kendi sunucularını ortak bir havuza eklediği bir projedir. 0.tr.pool.ntp.org gibi bir isim her DNS sorgusunda farklı adresler döndürür. Böylece yük gönüllüler arasında dağılır. Türkiye bölgesi küçük bir bölgedir ve sunucu sayısı zamanla değişir. Güncel sayıyı pool.ntp.org/zone/tr sayfasından kontrol edin. Bölge çok küçülürse, havuzu tek kaynağınız yapmayın.
Pool, üye sunucuların artık saniyeyi standart yöntemle uygulamasını bekler. Bu yüzden UME ile aynı yapılandırmada sorun çıkarmaz.
Chrony'de havuz için server değil pool satırı kullanılır. pool satırı bir ismi birden fazla adrese çözer. Cevap vermeyen bir adresi zamanla yenisiyle değiştirir. maxsources 2 ise havuzdan en fazla iki sunucu kullanılacağı anlamına gelir.
Cloudflare NTS: kimliği doğrulanmış seçenek
Düz NTP'de kimlik doğrulaması yoktur. Sunucuyla aranızdaki yolda bulunan biri sahte bir NTP cevabı gönderebilir. İstemci bu cevabın gerçek olup olmadığını anlayamaz. NTS bu sorunu çözer. Önce TCP 4460 üzerinden bir TLS bağlantısı kurulur ve sunucunun sertifikası kontrol edilir. Sonra UDP 123 üzerindeki her NTP paketi, bu bağlantıda anlaşılan anahtarlarla doğrulanır.
Cloudflare'in time.cloudflare.com servisi NTS destekler. Cloudflare'in NTP belgesi artık saniye konusunda açıktır: "Cloudflare does not implement leap smearing". Yani Cloudflare artık saniyeyi yaymaz, UME ile aynı yöntemi kullanır. Bu yüzden ikisi aynı yapılandırmada birlikte çalışabilir.
Chrony'nin varsayılan authselectmode mix ayarı burada işe yarar. Chrony belgesine göre bu modda kimliği doğrulanmış kaynaklar require ve trust seçeneklerini otomatik alır. Bunun sonucu şudur: düz NTP kaynakları, kimliği doğrulanmış kaynakların çoğunluğuyla uyuşmuyorsa kullanılmaz. Biri UME'den geliyormuş gibi sahte bir cevap gönderse bile, Cloudflare'in doğrulanmış zamanıyla uyuşmadığı için saatiniz bu cevaba göre ayarlanmaz.
Ubuntu 26.04 kullanıyorsanız, varsayılan yapılandırmada zaten NTS vardır. Ubuntu'nun kendi ntp.ubuntu.com havuzları NTS ile gelir. Aşağıda bu varsayılanı nasıl kontrol edeceğinizi gösteriyoruz.
time.google.com neden TÜBİTAK ile aynı listeye girmez?
Dünyanın dönüşü tam düzenli değildir. Bu yüzden IERS (Uluslararası Yer Dönüşü ve Referans Sistemleri Servisi) zaman zaman UTC'ye bir artık saniye ekler. Standart bir NTP sunucusu bunu önceden bir bayrakla duyurur. Gece yarısı, çekirdek saate 23:59:60 diye bir saniye ekler.
Google bunu farklı yapar. Google'ın sunucuları o fazladan saniyeyi UTC öğlen 12:00'den ertesi gün öğlen 12:00'ye kadar 24 saate yayar. Saatleri bu süre boyunca biraz yavaş çalışır. Sonuç olarak bu 24 saat içinde Google'ın zamanı, UME'nin zamanından yarım saniyeye kadar farklıdır.
Aynı chrony yapılandırmasında hem UME hem Google varsa, chrony bu pencerede birbiriyle uyuşmayan iki kaynak grubu görür. Hangisini seçeceği önceden bilinemez. Google kendi istemci yapılandırma rehberinde bunu açıkça yazar:
We recommend that you don't configure Google Public NTP together with non-leap-smearing NTP servers.
Yani Google, kendi NTP servisinin artık saniyeyi yaymayan sunucularla birlikte yapılandırılmamasını önerir. Rehberdeki Linux bölümü, diğer server satırlarını silmenizi ya da yorum satırı yapmanızı ister. Amaç, makinenin yayılmış ve yayılmamış zamanı karıştırmasını önlemektir.
Son artık saniye 31 Aralık 2016'da eklendi. 2022'de Ağırlıklar ve Ölçüler Genel Konferansı (CGPM), artık saniyenin en geç 2035'e kadar kaldırılmasına karar verdi. Yani bu olay nadirdir. Yine de yapılandırmayı bir kez doğru kurun. Bir sonraki artık saniye geldiğinde bu dosyayı hatırlamayacaksınız.
Google'ı kullanmak istiyorsanız, onu tek kaynak grubu yapın. time.google.com ya da time1 ile time4 arasındaki Google sunucularını kullanın. Başka hiçbir sağlayıcıyı eklemeyin.
NTP sunucusunun IP adresi ne? Neden hostname yazmalısınız?
Çoğu kişi "TÜBİTAK NTP IP adresi" diye arar. Burada bir adres yazmıyoruz, çünkü yapılandırmaya IP değil hostname yazılmalıdır. Bunun dört nedeni var:
- Bir kurum sunucusunu taşıdığında IP değişir, ama hostname aynı kalır. IP yazdıysanız saatiniz sessizce bayat bir adrese bakar.
- Pool isimleri her sorguda farklı adres döndürür. Bu bir hata değil, projenin çalışma biçimidir.
- Anycast servislerde aynı isim, bulunduğunuz yere göre en yakın noktaya gider.
- NTS, TLS sertifikasını hostname'e göre doğrular. Chrony belgesine göre IP adresi ancak sertifikada ayrıca yer alıyorsa çalışır.
Adresi yine de görmek istiyorsanız, kendiniz sorgulayın:
getent ahosts time.ume.tubitak.gov.tr
getent ahosts 0.tr.pool.ntp.orggetent her Ubuntu sisteminde vardır ve sistemin kendi DNS çözümleyicisini kullanır. İkinci komutu birkaç dakika arayla iki kez çalıştırın. Büyük ihtimalle farklı adresler göreceksiniz. Bu, pool isimlerinin neden yapılandırmaya sabit IP olarak yazılmaması gerektiğini gösterir.
IP'yi yalnızca başka bir şey sizi zorunlu kılıyorsa kullanın. Örneğin bir ağ cihazındaki güvenlik duvarı sadece IP kabul ediyor olabilir. Bu durumda adresi düzenli olarak yeniden kontrol edin.
Sunucunuzda hangi zaman servisi çalışıyor?
Kaynağı değiştirmeden önce, hangi zaman servisinin çalıştığını bilmeniz gerekir. Ubuntu 24.04 varsayılan olarak systemd-timesyncd ile gelir. Ubuntu 25.10'dan itibaren yeni kurulumlarda chrony gelir ve NTS açıktır. Ubuntu 26.04 LTS de chrony kullanır. Ama bunu varsaymayın. VPS sağlayıcınızın imajı farklı olabilir. Sürüm yükseltmesiyle gelen bir sistem de eski servisle kalmış olabilir. Canonical, 25.04'ten 25.10'a yükseltilen sistemlerin systemd-timesyncd ile kalacağını duyurmuştu. Sürüm farkları için Ubuntu 26.04.1'de nelerin değiştiğini anlatan yazıya bakabilirsiniz.
Kontrol etmek için:
systemctl is-active chrony systemd-timesyncd
timedatectlsystemctl is-active her servis için bir satır yazar. Hangi satır active diyorsa, sizin zaman servisiniz odur. timedatectl çıktısında NTP servisinin açık olup olmadığını ve saatin eşitlenip eşitlenmediğini gösteren satırlara bakın.
Ubuntu'da chrony ile Türkiye kaynaklarını ayarlama
Sisteminizde systemd-timesyncd çalışıyorsa ve NTS istiyorsanız, önce chrony'yi kurun. Ubuntu'da bu iki servis birlikte kurulu kalmaz. apt, chrony'yi kurarken systemd-timesyncd paketini kaldırır.
sudo apt update && sudo apt install -y chrony
systemctl is-active chrony systemd-timesyncdİkinci komutta artık chrony satırı active olmalıdır.
Şimdi ana yapılandırma dosyasının hangi dizinleri okuduğuna bakın. Dosya adını tahmin etmeyin, dosyanın kendisine sorun:
grep -E '^(pool|server|sourcedir|confdir)' /etc/chrony/chrony.conf
ls /etc/chrony/sources.d/Çıktıda sourcedir /etc/chrony/sources.d satırını görüyorsanız, kaynak dosyanızı bu dizine koyun. Chrony bu dizinde yalnızca adı .sources ile biten dosyaları okur. Çıktıda doğrudan pool veya server satırları da varsa, onlar da aktif kaynaktır. Bu satırları düzenlemek için /etc/chrony/chrony.conf dosyasında başlarına # koyun.
Türkiye kaynaklarını yeni bir dosyaya yazın:
sudo tee /etc/chrony/sources.d/turkiye.sources > /dev/null <<'EOF'
server time.ume.tubitak.gov.tr iburst
pool 0.tr.pool.ntp.org iburst maxsources 2
server time.cloudflare.com iburst nts
EOFiburst, servis başlarken ilk birkaç isteği hızlı arka arkaya gönderir. Böylece ilk eşitleme dakikalar yerine saniyeler sürer. nts yalnızca Cloudflare satırında vardır, çünkü listede NTS belgeleyen tek sunucu odur.
Ubuntu 26.04'te bu dizinde bir de ubuntu-ntp-pools.sources dosyası bulunur. Ubuntu belgesine göre bu dosyadaki NTS havuzları prefer seçeneğiyle gelir, yani chrony onları öncelikli seçer. Onları bırakabilirsiniz. Ama Türkiye kaynaklarının öncelikli olmasını istiyorsanız, dosyanın adını değiştirerek devre dışı bırakın. Chrony .sources ile bitmeyen dosyaları okumaz:
sudo mv /etc/chrony/sources.d/ubuntu-ntp-pools.sources /etc/chrony/sources.d/ubuntu-ntp-pools.sources.disabled
sudo systemctl restart chronyBir uyarı: NTS, sertifika kontrolü için saatin kabaca doğru olmasını ister. Saat günlerce geride kalmışsa, sertifika henüz geçerli değilmiş gibi görünür. Bu durumda NTS anahtar değişimi başarısız olur, HTTPS'te olduğu gibi. Böyle bir sistemle karşılaşırsanız, önce saat kaymasını düzeltme adımlarına bakın.
systemd-timesyncd ile kalmak isterseniz
systemd-timesyncd basit bir istemcidir. Aynı anda tek bir sunucuyla konuşur ve NTS desteklemez. NTS gerekmiyorsa ve paket eklemek istemiyorsanız, bir drop-in dosyasıyla kaynağı değiştirebilirsiniz:
sudo mkdir -p /etc/systemd/timesyncd.conf.d
sudo tee /etc/systemd/timesyncd.conf.d/turkiye.conf > /dev/null <<'EOF'
[Time]
NTP=time.ume.tubitak.gov.tr 0.tr.pool.ntp.org
FallbackNTP=time.cloudflare.com
EOF
sudo systemctl restart systemd-timesyncd
timedatectl timesync-statustimedatectl timesync-status hangi sunucuyla konuştuğunu gösterir. Orada time.ume.tubitak.gov.tr ya da havuzdan bir adres görmelisiniz. FallbackNTP satırı Ubuntu'nun varsayılan yedek sunucusunun yerine geçer. Buraya time.google.com yazmayın. Yedek sunucu da bir kaynaktır ve aynı karıştırma sorunu burada da geçerlidir.
Çalıştığını nasıl kontrol edersiniz?
Chrony kullanıyorsanız, şu üç komutu çalıştırın:
chronyc -N sources
chronyc -N authdata
timedatectl-N seçeneği IP yerine yapılandırmadaki isimleri gösterir. chronyc -N sources çıktısında satırın başındaki işaretlere bakın. ^* şu anda seçili olan kaynaktır. ^+ ise hesaba katılan diğer iyi kaynaklardır. ^? ile işaretli bir kaynağa ulaşılamıyor demektir. Reach sütunu son sekiz isteğin sonucunu sekizlik tabanda tutar. 377 sekiz isteğin hepsine cevap geldiğini gösterir. 0 ise hiç cevap gelmediği anlamına gelir.
chronyc -N authdata her kaynağın kimlik doğrulama durumunu gösterir. Cloudflare satırının Mode sütununda NTS görmelisiniz. UME ve havuz satırlarında kimlik doğrulaması olmaz, bu beklenen bir durumdur. Cloudflare satırı NTS göstermiyorsa veya sources çıktısında bu kaynağın Reach değeri 0'da kalıyorsa, NTS anahtar değişimi tamamlanmıyor demektir. En sık sebep, giden TCP 4460 trafiğinin engellenmesidir.
timedatectl çıktısında saatin eşitlendiğini gösteren satırı kontrol edin. Servisi yeni başlattıysanız bir iki dakika bekleyin.
Güvenlik duvarı: giden UDP 123 ve TCP 4460
Bir NTP istemcisinin dışarı çıkabilmesi gerekir. Düz NTP için giden UDP 123, NTS anahtar değişimi için giden TCP 4460 açık olmalıdır. ufw varsayılan olarak giden trafiğe izin verir, bu yüzden çoğu sistemde bir şey yapmanız gerekmez. Giden trafiği varsayılan olarak kapattıysanız, bu iki portu açın:
sudo ufw allow out 123/udp
sudo ufw allow out 4460/tcp
sudo ufw status verboseGelen 123 portunu açmayın. Sunucunuz burada istemcidir, başkalarına zaman dağıtmaz. Chrony, yapılandırmada bir allow satırı yoksa istemcilere cevap vermez. Sağlayıcınızın panelinde ayrı bir ağ güvenlik duvarı varsa, oradaki giden kuralları da kontrol edin. ufw kurallarının mantığı için VPS'te ufw güvenlik duvarı temelleri yazısına bakın.
Saat doğru ama üç saat fark var: bu NTP sorunu değil
NTP yalnızca UTC taşır. Saat dilimini bilmez. Türkiye 2016'dan beri yıl boyunca UTC+3 kullanır ve Linux'taki adı Europe/Istanbul'dur. chronyc -N sources iyi görünüyor ama date üç saat farklı bir saat gösteriyorsa, sorun kaynakta değil saat dilimindedir. Bunu düzeltmek için Linux sunucuda saat dilimini ayarlama yazısına bakın. Birçok yönetici sunucuyu UTC'de bırakmayı tercih eder, çünkü loglar ülkeler arasında daha kolay karşılaştırılır.
Docker kullanıyorsanız, konteynerlerin içinde ayrıca NTP çalıştırmayın. Konteynerler sunucunun çekirdek saatini paylaşır, bu yüzden sunucunun saati doğruysa konteynerin saati de doğrudur. Konteyner içinde farklı görünen şey genelde saat dilimidir. Bunu Docker Compose'da TZ ayarı ve konteyner saati yazısında anlatıyoruz.
Son bir not: NTP ile eşitlenmiş bir sistem saati, hukuki anlamda bir zaman damgası değildir. Nitelikli zaman damgası ayrı bir hizmettir ve bu yazının konusu dışındadır.
FAQ: Sıkça sorulan sorular
TÜBİTAK NTP sunucusunun IP adresi nedir?
Yapılandırmaya IP yerine time.ume.tubitak.gov.tr hostname'ini yazın. Bir kurum sunucusunu taşıdığında IP değişebilir, ama hostname aynı kalır. Güncel adresi görmek için getent ahosts time.ume.tubitak.gov.tr komutunu kendi sunucunuzda çalıştırın. IP'yi yalnızca sadece adres kabul eden bir güvenlik duvarı gibi zorunlu bir durumda kullanın ve düzenli olarak yeniden kontrol edin.
time.google.com ile TÜBİTAK UME aynı anda kullanılabilir mi?
Hayır. Google artık saniyeyi 24 saate yayar. UME ise onu gece yarısı tek seferde ekler. Bu 24 saat içinde iki kaynak arasında yarım saniyeye kadar fark olur ve chrony'nin hangisini seçeceği önceden bilinemez. Google'ın kendi istemci rehberi de Google Public NTP'nin artık saniyeyi yaymayan sunucularla birlikte yapılandırılmamasını önerir. Google'ı kullanacaksanız onu tek kaynak yapın.
TÜBİTAK UME NTS destekliyor mu?
Ekim 2026 itibarıyla UME'nin laboratuvar sayfası NTS desteğinden söz etmiyor. UME'yi düz NTP kaynağı olarak kullanın ve satırına nts seçeneği eklemeyin. Kimliği doğrulanmış bir kaynak için server time.cloudflare.com iburst nts satırını ekleyin. Chrony'nin varsayılan mix modunda, doğrulanmış kaynakla uyuşmayan düz NTP kaynakları kullanılmaz.
Ubuntu 26.04'te hangi zaman servisi çalışır?
Ubuntu 25.10'dan beri yeni kurulumlarda chrony gelir ve Ubuntu'nun kendi NTS havuzları açıktır. Ubuntu 26.04 LTS de chrony kullanır. Ubuntu 24.04 ise systemd-timesyncd ile gelir. VPS imajları ve yükseltilmiş sistemler farklı olabileceği için, değişiklik yapmadan önce systemctl is-active chrony systemd-timesyncd komutuyla kontrol edin.