Jak włączyć w Ubuntu Linux synchronizację czasu z serwerem NTP?

Prawidłowy czas systemowy w Linuxie jest znacznie ważniejszy, niż mogłoby się wydawać. Synchronizacja zegara wpływa nie tylko na poprawne wyświetlanie godziny, ale także na działanie:

  • HTTPS i certyfikatów SSL,
  • logów systemowych,
  • baz danych,
  • klastrów i serwerów,
  • VPN,
  • Docker i Kubernetes,
  • cronów i automatyzacji,
  • systemów monitoringu.

W Ubuntu synchronizacja czasu realizowana jest zwykle przez usługę systemd-timesyncd, która komunikuje się z serwerami czasu NTP.

W tym artykule pokażę:

  • czym jest serwer czasu NTP,
  • dlaczego warto synchronizować czas,
  • jak włączyć synchronizację czasu w Ubuntu,
  • jak sprawdzić status synchronizacji,
  • jak ustawić własne serwery czasu NTP,
  • jak zautomatyzować konfigurację z poziomu terminala.

Co to jest NTP?

NTP oznacza:

Network Time Protocol

Jest to protokół służący do synchronizacji czasu komputerów przez sieć.

Serwery NTP pobierają wzorcowy czas z:

  • zegarów atomowych,
  • odbiorników GPS,
  • krajowych laboratoriów czasu,
  • centrów synchronizacji czasu.

Następnie udostępniają go urządzeniom w Internecie i sieciach lokalnych.

Linux okresowo:

  • odpyta serwer NTP,
  • oblicza opóźnienia sieci,
  • koryguje lokalny zegar systemowy.

Dlaczego synchronizacja czasu jest ważna?

Certyfikaty SSL i HTTPS

Niepoprawny czas systemowy często powoduje błędy:

  • „Certificate expired”
  • „Certificate not yet valid”

Nawet kilka minut różnicy może unieważnić certyfikaty TLS.

Logi systemowe

Jeśli czas jest błędny:

  • logi będą miały złą kolejność,
  • trudniej diagnozować awarie,
  • monitoring może działać niepoprawnie.

Serwery i klastry

W systemach rozproszonych synchronizacja czasu jest krytyczna:

  • Kubernetes,
  • Ceph,
  • PostgreSQL replication,
  • Proxmox,
  • Active Directory,
  • LDAP.

Różnice czasu między hostami mogą powodować:

  • błędy autoryzacji,
  • problemy z replikacją,
  • niestabilność klastra.

Jak sprawdzić status synchronizacji czasu?

Ubuntu posiada narzędzie:

timedatectl

Wyświetli ono:

  • aktualną godzinę,
  • strefę czasową,
  • status synchronizacji NTP.

Przykładowy wynik:

System clock synchronized: yes
NTP service: active

Jak włączyć synchronizację czasu NTP?

W Ubuntu można to zrobić jedną komendą:

sudo timedatectl set-ntp true

Po chwili system uruchomi usługę synchronizacji czasu.

Jak sprawdzić, czy synchronizacja działa?

Użyj:

timedatectl status

lub krócej:

timedatectl

Szukaj:

System clock synchronized: yes

Jak wyłączyć synchronizację czasu?

sudo timedatectl set-ntp false

Jakie serwery NTP wykorzystuje Ubuntu?

Domyślnie Ubuntu korzysta zwykle z:

  • ntp.ubuntu.com
  • puli pool.ntp.org

Aktualną konfigurację można sprawdzić:

cat /etc/systemd/timesyncd.conf

Jak ustawić własny serwer NTP?

Edytuj plik:

sudo nano /etc/systemd/timesyncd.conf

Przykład:

[Time]
NTP=time.google.com time.cloudflare.com
FallbackNTP=pool.ntp.org

Po zmianach zrestartuj usługę:

sudo systemctl restart systemd-timesyncd

Popularne publiczne serwery NTP

Google

time.google.com

Cloudflare

time.cloudflare.com

NTP Pool Project

pool.ntp.org

Jak sprawdzić dokładność synchronizacji?

Przydatne polecenie:

timedatectl timesync-status

Wyświetla między innymi:

  • aktualny serwer,
  • offset czasu,
  • jitter,
  • dokładność synchronizacji.

Automatyzacja konfiguracji NTP

Poniższy skrypt:

  • włącza synchronizację,
  • ustawia serwery Google i Cloudflare,
  • restartuje usługę,
  • pokazuje status.
#!/bin/bash

sudo timedatectl set-ntp false

sudo tee /etc/systemd/timesyncd.conf > /dev/null <<EOF
[Time]
NTP=time.google.com time.cloudflare.com
FallbackNTP=pool.ntp.org
EOF

sudo systemctl restart systemd-timesyncd

sudo timedatectl set-ntp true

timedatectl status

Nadaj prawa wykonania:

chmod +x ntp-setup.sh

Uruchom:

./ntp-setup.sh

Synchronizacja czasu a BIOS/RTC

Linux korzysta z:

  • zegara systemowego,
  • RTC (Real Time Clock) w BIOS/UEFI.

Można zsynchronizować RTC z czasem systemowym:

sudo hwclock --systohc

To szczególnie przydatne:

  • po wymianie baterii CMOS,
  • w maszynach offline,
  • przy dual-boot z Windows.

Czy warto używać chrony zamiast systemd-timesyncd?

W bardziej wymagających środowiskach często używa się:

  • chrony
  • ntpd

chrony oferuje:

  • lepszą dokładność,
  • szybszą synchronizację,
  • lepsze działanie przy niestabilnym Internecie,
  • obsługę serwerów czasu.

Instalacja:

sudo apt install chrony

Status:

chronyc tracking

Najczęstsze problemy z synchronizacją czasu

Brak synchronizacji

Sprawdź:

systemctl status systemd-timesyncd

Firewall blokuje UDP 123

NTP używa:

UDP/123

Zła strefa czasowa

Sprawdź:

timedatectl

Lista stref:

timedatectl list-timezones

Ustawienie:

sudo timedatectl set-timezone Europe/Warsaw

Podsumowanie

Synchronizacja czasu przez NTP to jedna z podstawowych funkcji każdego nowoczesnego systemu Linux.

W Ubuntu konfiguracja jest bardzo prosta i zwykle sprowadza się do jednej komendy:

sudo timedatectl set-ntp true

Warto pamiętać, że poprawny czas systemowy wpływa na:

  • bezpieczeństwo,
  • certyfikaty HTTPS,
  • logi,
  • działanie serwerów,
  • automatyzację,
  • stabilność usług sieciowych.

Dzięki systemd-timesyncd Ubuntu oferuje wygodny i lekki mechanizm synchronizacji czasu bez konieczności instalowania dodatkowego oprogramowania.

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.