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:

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
System clock synchronized: yes
NTP service: active
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-timesyncd

Pokud není aktivní, zapněte ji:

sudo timedatectl set-ntp on

Tato 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-timesyncd

    Alternativní ř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

  1. Zastavte, zakažte a odinstalujte systemd-timesyncd

    sudo systemctl disable --now systemd-timesyncd
    sudo apt remove -y systemd-timesyncd
  2. Nainstalujte Chrony

    sudo apt update && sudo apt install -y chrony
  3. Upravte konfiguraci Chrony

    Otevřete sudo nano /etc/chrony/chrony.conf a 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

    💡 Pro vyšší spolehlivost a možnost šifrované synchronizace přes TCP (pokud UDP 123 neprojde) můžete přidat NTS servery:

    server time.cloudflare.com iburst nts
    server time.google.com iburst nts

    Chrony automaticky vybírá nejstabilnější a nejlépe dostupné zdroje a přepíná mezi UDP a TCP podle potřeby.

  4. Aktivujte a spusťte Chrony

    sudo systemctl enable --now chrony

    Po 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ě.

  5. Sledujte stav synchronizace

    Ověřte, že Chrony běží a správně komunikuje se vzdálenými servery:

    chronyc tracking
    chronyc sources -v

    Pří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     : Normal

    Stav můžete ověřit také přes:

    timedatectl status
    System 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