Sunucu sistemlerinde doğru zaman bilgisi oldukça önemlidir. Özellikle log kayıtlarının doğru tutulması, kimlik doğrulama servislerinin sağlıklı çalışması, yedekleme süreçleri, sanallaştırma altyapıları ve güvenlik analizleri için sistem saatinin doğru olması gerekir.
Ondan fazla sunucunun bulunduğu yapılarda her sunucunun farklı zaman kaynaklarından saat alması yerine, merkezi bir NTP Server yapılandırmak daha düzenli ve yönetilebilir bir çözümdür.
Bu makalemde Ubuntu Server 24.04 üzerinde Türkiye zaman dilimine uygun şekilde NTP Server kurulumu ve yapılandırmasını ele alacağız.
Bu yapılandırmada NTP servisi için Chrony kullanılacaktır.
Chrony modern Linux sistemlerde zaman senkronizasyonu için yaygın olarak kullanılan, hızlı ve kararlı bir servistir.

NTP Nedir?
NTP yani Network Time Protocol ağ üzerindeki cihazların saat bilgisini merkezi bir zaman kaynağı ile senkronize etmesini sağlayan protokoldür.
Örneğin bir kurum içinde birden fazla sunucu, firewall, switch, storage veya sanallaştırma host’u bulunuyorsa, bu cihazların hepsinin aynı zaman bilgisine sahip olması beklenir.
NTP sayesinde:
- Sunucu saatleri merkezi olarak eşitlenir.
- Log kayıtları doğru zaman bilgisiyle tutulur.
- Active Directory, Kerberos, LDAP gibi servislerde zaman kaynaklı sorunlar azalır.
- Güvenlik olayları daha kolay analiz edilir.
- Yedekleme ve zamanlanmış görevler daha sağlıklı çalışır.
Senaryo
Bu örnekte Ubuntu Server 24.04 üzerinde bir NTP Server kurulacaktır.
Örnek bilgiler;
NTP Server IP Adresi : 192.168.1.10
Yerel Ağ : 192.168.1.0/24
Zaman Dilimi : Europe/Istanbul
NTP Kaynakları : Türkiye NTP havuzu ve TÜBİTAK UME kullanılacak.
Kendi ortamınıza göre IP adresini ve ağ bilgisini değiştirebilirsiniz.
1) Sistem Zaman Dilimini Kontrol Etme
İlk olarak sunucunun mevcut tarih, saat ve zaman dilimi bilgilerini kontrol edelim.
timedatectl

Örnek çıktı şu şekilde olabilir:
Local time: Wed 2026-05-06 15:30:00 +03
Time zone: Europe/Istanbul (+03, +0300)
System clock synchronized: yes
NTP service: active
Eğer zaman dilimi Türkiye olarak görünmüyorsa aşağıdaki komut ile zaman dilimini Europe/Istanbul olarak ayarlayabilirsiniz.
sudo timedatectl set-timezone Europe/Istanbul
Ardından tekrar kontrol ediniz.
timedatectl
Bu aşamada zaman diliminin aşağıdaki gibi görünmesi gerekir.
Time zone: Europe/Istanbul

2) Chrony Paketinin Kurulması
Ubuntu Server 24.04 üzerinde NTP sunucusu olarak Chrony kullanacağız.
Öncelikle paket listesini güncelleyelim.
sudo apt update
Ardından Chrony paketini kuralım.
sudo apt install chrony -y

Kurulum tamamlandıktan sonra servisin durumunu kontrol edelim.
systemctl status chrony
Servis çalışıyorsa aşağıdakine benzer bir çıktı görürsünüz.

Active: active (running)
Eğer servis çalışmıyorsa aşağıdaki komutla başlatabilirsiniz.
sudo systemctl start chrony
Sunucu yeniden başladığında Chrony servisinin otomatik olarak başlaması için;
sudo systemctl enable chrony
Tek komutla hem başlatmak hem de otomatik başlamasını sağlamak isterseniz;
sudo systemctl enable --now chrony

3) Türkiye’ye Uygun NTP Kaynaklarının Belirlenmesi
NTP Server’ın doğru zamanı alabilmesi için güvenilir zaman kaynaklarına ihtiyaç vardır.
Türkiye için kullanılabilecek zaman kaynakları şunlardır;
time.ume.tubitak.gov.tr
0.tr.pool.ntp.org
1.tr.pool.ntp.org
2.tr.pool.ntp.org
3.tr.pool.ntp.org
Burada time.ume.tubitak.gov.tr TÜBİTAK UME zaman kaynağıdır.
Diğer adresler ise Türkiye NTP havuzuna ait sunuculardır.
Yapılandırmada birden fazla NTP kaynağı kullanmak daha sağlıklıdır. Çünkü herhangi bir zaman kaynağına erişilemediğinde Chrony diğer kaynaklardan zaman bilgisini almaya devam edebilir.
4) Chrony Yapılandırma Dosyasını Düzenleme
Chrony yapılandırma dosyası aşağıdaki konumdadır:
sudo nano /etc/chrony/chrony.conf
Dosyayı açtıktan sonra mevcut pool veya server satırlarını düzenleyebilir ya da yorum satırı haline getirebilirsiniz.
Türkiye’ye uygun örnek yapılandırma aşağıdaki gibi olabilir:
# Türkiye zaman kaynakları
server time.ume.tubitak.gov.tr iburst
server 0.tr.pool.ntp.org iburst
server 1.tr.pool.ntp.org iburst
server 2.tr.pool.ntp.org iburst
server 3.tr.pool.ntp.org iburst
# Saat sapma bilgisinin saklanacağı dosya
driftfile /var/lib/chrony/chrony.drift
# İlk senkronizasyonda saat farkı büyükse hızlı düzeltme yap
makestep 1.0 3
# Sistem saatini donanım saatine yaz
rtcsync
# Yerel ağdaki istemcilere NTP hizmeti ver
allow 192.168.1.0/24
# Log dosyalarının tutulacağı dizin
logdir /var/log/chrony
Bu yapılandırmada en önemli satırlardan biri aşağıdakidir.
allow 192.168.1.0/24
Bu satır ile 192.168.1.0/24 ağındaki istemcilerin bu sunucudan NTP hizmeti almasına izin verir.
Yani bu örnekte aşağıdaki IP adresleri bu NTP sunucusunu kullanabilir:
192.168.1.1
192.168.1.20
192.168.1.50
192.168.1.100
Eğer farklı bir ağ kullanıyorsanız bu alanı kendi yapınıza göre değiştirmelisiniz.
Örneğin ağınız 10.10.10.0/24 ise:
allow 10.10.10.0/24
Sadece belirli bir istemciye izin vermek isterseniz.
allow 192.168.1.50
Not : Tüm IPv4 networklerden NTP erişimine izin vermek için aşağıdaki kayıt eklenebilir.
allow 0/0
Önerilen yöntem: Sadece kurum içi networkleri açmaktır !!!
Eğer “bütün networkler” den yani kendi iç ağınızdaki tüm network’den en tüm private network bloklarını tek tek tanımlamaktır.
allow 10.0.0.0/8
allow 172.16.0.0/12
allow 192.168.0.0/16
Bu yapılandırma ile aşağıdaki networklerden gelen istemciler NTP sunucusunu kullanabilir:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Chrony’de NTP hizmeti verebilmek için allow kuralı tanımlanması gerekir.
Varsayılan durumda Chrony istemcilere NTP sunucusu olarak hizmet vermez allow ile hangi istemci veya ağların bağlanabileceği belirtilir.
Tüm IPv4 networklere açmak !!!
Eğer tüm IPv4 adreslerinden bağlantı kabul etmek istiyorsanız Chrony yapılandırmasına şu satırı ekleyebilirsiniz.
allow 0/0
Alternatif olarak tüm IPv4 ve IPv6 istemciler için şu kullanım da mümkündür:
allow
Chrony dokümantasyonuna göre allow 0/0 tüm IPv4 adreslerine, allow ::/0 tüm IPv6 adreslerine, parametresiz allow ise hem IPv4 hem IPv6 tüm adreslere izin verir.
5) Chrony Servisini Yeniden Başlatmak
Yapılandırma değişikliğinden sonra Chrony servisini yeniden başlatmamız gerekir.
sudo systemctl restart chrony
Servis durumunu kontrol edelim:
systemctl status chrony
Servisin aktif olarak çalıştığını görmelisiniz:
Active: active (running)

6) Firewall Üzerinde NTP Portunu Açma
NTP servisi UDP 123 portunu kullanır.
Eğer sunucuda UFW aktifse, yerel ağdan gelen NTP isteklerine izin vermeniz gerekir.
sudo ufw allow from 192.168.1.0/24 to any port 123 proto udp
Firewall durumunu kontrol etmek için:
sudo ufw status
Örnek çıktı:
123/udp ALLOW 192.168.1.0/24
Eğer UFW aktif değilse bu adımı uygulamanız zorunlu değildir. Ancak üretim ortamlarında firewall kurallarının kontrollü şekilde yapılandırılması önerilir.
7) NTP Sunucusunun Çalışmasını Kontrol Etme
Chrony’nin hangi zaman kaynaklarını kullandığını görmek için aşağıdaki komutu çalıştırabilirsiniz:
chronyc sources -v
Örnek çıktı:

Bu çıktıda ^* işareti, aktif olarak kullanılan zaman kaynağını gösterir.
Diğer önemli işaretler:
^* Aktif olarak kullanılan zaman kaynağı
^+ Kullanılabilir durumda olan alternatif kaynak
^- Kullanılabilir fakat tercih edilmeyen kaynak
^? Ulaşılamayan veya henüz doğrulanmamış kaynak
Detaylı senkronizasyon durumunu görmek için:
chronyc tracking

Bu komut ile sistem saatinin hangi kaynağa göre senkronize edildiğini zaman farkını ve saat sapma bilgilerini görebilirsiniz.
8) NTP İstemcilerini Kontrol Etme
NTP sunucusuna bağlanan istemcileri görmek için aşağıdaki komut kullanılabilir:
sudo chronyc clients
Bu komut ile sunucudan zaman bilgisi alan sistemleri listeler.
Örnek çıktı:
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
192.168.1.20 12 0 6 - 20 0 0 - -
192.168.1.30 8 0 6 - 35 0 0 - -
Bu çıktı sayesinde hangi istemcilerin NTP sunucunuza bağlandığını görebilirsiniz.
9) Linux İşletim Sistemleri Tarafında NTP Sunucusunu Tanımlamak
Yerel ağdaki başka bir Ubuntu sunucunun bu NTP sunucusundan zaman almasını istiyorsanız, istemci üzerinde de Chrony kurulabilir.
İstemci sunucuda Chrony kurulumu;
sudo apt update
sudo apt install chrony -y
Yapılandırma dosyasını açınız.
sudo nano /etc/chrony/chrony.conf
İstemci tarafında kendi NTP sunucunuzu tanımlayınız.
server 192.168.1.10 iburst prefer
Burada 192.168.1.10 NTP Server olarak yapılandırdığımız Ubuntu sunucunun IP adresidir.
Daha sade bir istemci yapılandırması şu şekilde olabilir:
server 192.168.1.10 iburst prefer
driftfile /var/lib/chrony/chrony.drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
Değişiklikten sonra istemci üzerinde Chrony servisini yeniden başlatınız.
sudo systemctl restart chrony
Kontrol etmek için:
chronyc sources -v
Eğer istemci, yerel NTP sunucusunu doğru şekilde görüyorsa aşağıdakine benzer bir çıktı alırsınız:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.1.10 2 6 377 21 +100us[ +120us] +/- 15ms
10) Windows İşletim Sistemi İçin NTP Sunucusu Tanımlamak
Eğer Windows istemcilerin de bu NTP sunucusunu kullanmasını istiyorsanız, yönetici olarak Komut İstemi veya PowerShell açıp aşağıdaki komutları çalıştırabilirsiniz:
w32tm /config /manualpeerlist:"192.168.1.10" /syncfromflags:manual /reliable:YES /update
Windows Time servisini yeniden başlatın:
net stop w32time
net start w32time
Manuel senkronizasyon başlatmak için:
w32tm /resync
Durumu kontrol etmek için:
w32tm /query /status
Kullanılan NTP kaynağını görmek için:
w32tm /query /source
11) Sık Kullanılan Chrony Komutları
Chrony servis durumunu kontrol etmek için.
systemctl status chrony
Zaman kaynaklarını görüntülemek için.
chronyc sources -v
Detaylı senkronizasyon bilgisini görmek için.
chronyc tracking
Bağlanan istemcileri listelemek için.
sudo chronyc clients
Chrony servisini yeniden başlatmak için.
sudo systemctl restart chrony
Chrony servisini açılışta otomatik başlatmak için.
sudo systemctl enable chrony
12) Sorun Giderme
a) Chrony servisi çalışmıyorsa,
Servis durumunu kontrol edin:
systemctl status chrony
Servisi yeniden başlatın:
sudo systemctl restart chrony
Log kayıtlarını incelemek için:
journalctl -u chrony -xe

b) Zaman kaynakları görünmüyorsa,
Aşağıdaki komut ile kaynakları kontrol edin:
chronyc sources -v
Eğer kaynakların yanında ^? işareti varsa, sunucu ilgili NTP kaynağına ulaşamıyor olabilir.
Bu durumda şunları kontrol edin:
- Sunucunun internet erişimi var mı?
- DNS çözümlemesi çalışıyor mu?
- Firewall UDP 123 trafiğini engelliyor mu?
- NTP adresleri doğru yazılmış mı?
DNS kontrolü için:
ping time.ume.tubitak.gov.tr
NTP portu için ağ veya firewall kurallarınızı kontrol etmeniz gerekebilir.
c) Client Sistemlerin NTP sunucusuna bağlanamıyorsa
Sunucu tarafında allow satırını kontrol edin:
allow 192.168.1.0/24
Firewall kuralını kontrol edin:
sudo ufw status
Gerekirse UDP 123 portuna izin verin:
sudo ufw allow from 192.168.1.0/24 to any port 123 proto udp
İstemci tarafında doğru NTP sunucusunun tanımlı olduğundan emin olun:
server 192.168.1.10 iburst prefer
![[TR] Ubuntu Server üzerine NTP Server Kurulumu ve Yapılandırılması](https://kadirkozan.com/wp-content/uploads/2026/03/27ce25e0-1b0e-475e-9233-d088f6756076-1024x683.png)