- Vrealmatic
- Ubuntu Server
- Synchronizace času
Synchronizace času – možnosti a řešení problémů na Ubuntu Serveru
Řada systémových služeb, logů a síťových operací závisí na přesném a synchronizovaném čase. Pokud se hodiny operačního systému odchýlí nebo se čas nesynchronizuje správně, může dojít k problémům s připojením, SSL certifikáty nebo k nesrovnalostem v časových údajích logů a aplikací.

Kontrola stavu systémového času
Aktuální stav synchronizace času lze zjistit příkazem:
timedatectl statusSprávně synchronizovaný systém obvykle ukazuje:
Local time: Thu 2025-10-09 11:38:42 CEST
Universal time: Thu 2025-10-09 09:38:42 UTC
RTC time: Thu 2025-10-09 09:38:42
<mark>System clock synchronized: yes</mark>
<mark>NTP service: active</mark>
RTC in local TZ: no✅ Na co se zaměřit:
- System clock synchronized: yes
- NTP service: active
Pokud některá z hodnot ukazuje ne nebo neaktivní, systém není aktuálně synchronizován.
Výchozí synchronizace času (systemd-timesyncd)
Ve výchozím nastavení většina linuxových distribucí používá systemd-timesyncd – jednoduchého NTP klienta, který synchronizuje systémové hodiny pomocí UDP portu 123.
Stav služby můžete ověřit příkazem:
systemctl status systemd-timesyncdPokud není aktivní, zapněte ji:
sudo timedatectl set-ntp onTato služba však může přestat fungovat v určitých síťových podmínkách, zejména pokud:
- Používáte VPN, která blokuje UDP/123
- Váš router nebo firewall zahazuje NTP pakety
- Váš poskytovatel připojení (ISP) filtruje nebo blokuje NTP provoz
Proto se doporučuje občas zkontrolovat výstup timedatectl status a ujistit se, že systém zůstává synchronizovaný.
Řešení problémů se synchronizací času při použití systemd-timesyncd
Pokud synchronizace funguje při vypnutém VPN klientovi, je nutné vyloučit NTP provoz z VPN tunelu.
Řešení: Nastavte Split Tunnel pro
systemd-timesyncdAlternativní řešení: Přepněte na Chrony
Pokud synchronizace funguje na jiné síti (např. mobilním hotspotu), váš primární poskytovatel internetu pravděpodobně blokuje UDP port 123.
Řešení: Přepněte na
Chrony.Pokud synchronizace začne po restartu routeru fungovat, ale po nějaké době se znovu zastaví, může mít router v tabulce NAT zastaralé záznamy pro NTP provoz (UDP 123).
Řešení: Nastavte na routeru automatický skript, který pravidelně odstraňuje staré NTP připojení. Podrobnosti naleznete v článku: MikroTik RouterOS – NTP Port Cleanup Scheduler.
Alternativní řešení: Přepněte na Chrony
Alternativní synchronizace času pomocí Chrony
Pokud systemd-timesyncd selhává kvůli síťovým omezením (např. blokovaný UDP 123), nebo chcete spolehlivější a modernější NTP/NTS klient, můžete přejít na Chrony. Chrony podporuje jak klasický NTP přes UDP, tak šifrovanou synchronizaci času přes TCP pomocíNetwork Time Security (NTS) protokolu.
Přechod z systemd-timesyncd na Chrony
Zastavte, zakažte a odinstalujte
systemd-timesyncdsudo systemctl disable --now systemd-timesyncd sudo apt remove -y systemd-timesyncdNainstalujte
Chronysudo apt update && sudo apt install -y chronyUpravte konfiguraci Chrony
Otevřete
sudo nano /etc/chrony/chrony.confa přidejte spolehlivé NTP servery, které bývají dostupné i za přísnými VPN nebo ISP firewally:pool time.cloudflare.com iburst pool time.google.com iburst pool ntp.ubuntu.com iburst pool pool.ntp.org iburst💡 Volitelné (pokročilé): Pokud jste v síťi, která umožňuje odchozí připojení na port
TCP 4460(např. v datacentru nebo u serveru bez NATu), a chcete mít šifrovanou a ověřenou synchronizaci času, můžete přidat NTS (Network Time Security) servery:# Použijte pouze v prostředí, kde je povolen TCP port 4460 server time.cloudflare.com iburst nts server time.google.com iburst ntsChrony automaticky upřednostní nejstabilnější a nejlépe dosažitelné zdroje. Pokud nejsou NTS servery dostupné, bude pokračovat v používání běžných NTP serverů přes UDP port 123.
Ověření a oprava oprávnění binárky
chronydV některých distribucích může mít binárka
chronydnedostatečná oprávnění k úpravě systémového času (CAP_SYS_TIME). Bez tohoto oprávnění se Chrony dokáže připojit k NTP serverům, ale nikdy skutečně neupraví čas systému.Zkontrolujte aktuální oprávnění příkazem:
sudo getcap /usr/sbin/chronydSprávný výstup by měl obsahovat:
/usr/sbin/chronyd = cap_sys_time,cap_net_bind_service+epPokud je výstup prázdný, přidejte potřebná oprávnění tímto příkazem:
sudo setcap cap_sys_time,cap_net_bind_service+ep /usr/sbin/chronyd💡 Tento krok zajistí, že má Chrony oprávnění měnit systémový čas. Bez něj zůstane stav synchronizace na
Stratum 0aLeap status: Not synchronised.Aktivujte a spusťte Chrony
sudo systemctl enable --now chronyPo spuštění Chrony převezme synchronizaci času na úrovni systému. Systémové hodiny i RTC zůstanou průběžně synchronizovány i při změnách sítě.
Sledujte stav synchronizace
Ověřte, že Chrony běží a správně komunikuje se vzdálenými servery:
chronyc tracking chronyc sources -vPříklad výstupu:
Reference ID : 55A3A8E3 (time.cloudflare.com) Stratum : 3 Ref time (UTC) : Thu Oct 09 09:24:38 2025 System time : 0.0005 seconds fast of NTP time Last offset : +0.0006 seconds RMS offset : 0.0003 seconds Frequency : 5.354 ppm slow Leap status : NormalStav můžete ověřit také přes:
timedatectl statusSystem clock synchronized: yes NTP service: inactive (handled by chronyd)
Návrat zpět k systemd-timesyncd
Pokud se chcete vrátit k výchozí službě:
sudo systemctl disable --now chrony
sudo apt remove -y chrony
sudo apt install -y systemd-timesyncd
sudo systemctl enable --now systemd-timesyncd

