Linux – synchronizacja czasu za pomocą protokołu NTP
Prawidłowy czas w systemie (nie ważne czy chodzi o komputer, router czy np. video rekorder) to rzecz, na którą zazwyczaj nie zwracamy uwagi, bo z reguły jego ustawienie odbywa się w sposób automatyczny. Nie mnie jednak warto poświęcić chwile, aby sprawdzić czy na zarządzanych przez nas urządzeniach jest on ustawiony prawidłowo. Zwykle o ustawieniach czasu przypominamy sobie, gdy coś się dzieje i potrzebny jest on nam (na podstawie analizy logów czy nagrań) do ustalenia czasu awarii.
W systemie Linux za wyświetlenie informacji o czasie odpowiada polecenie: timedatectl Wydanie go poinformuje nas o czasie lokalnym, uniwersalnym oraz RTC (ang. Real-Time Clock), dodatkowo zostanie wyświetlona informacja o ustawionej strefie czasowej i o wsparciu dla protokołu NTP (ang. Network Time Protocol). Protokół ten odpowiada za automatyczną synchronizacje czasu systemowego z zewnętrznym serwerem czasu.
Abu ustawić godzinę należy wydać polecenie: timedatectl set-time <godzina:minuty:sekundy> (pkt.1)
Jak widać po zrzucie poniżej polecenia nie udało się wykonać – aktywna jest funkcja synchronizacji czasu, która uniemożliwia jego ręczne ustawienie. Wyłączyć ją można po wydaniu polecenia: timedatectl set-ntp false (pkt.2)
Ponowna próba ustawienia czasu kończy się sukcesem (pkt.3).
Aby ustawić dzień, miesiąc, rok posłuż się poleceniem: timedatectl set-time <”rok-miesiąc-dzień godzina:minuty:sekundy”> np. timedatectl set-time „2023-05-02 11:00:00”
Listę wszystkich stref czasowych wyświetlisz za pomocą komendy: timedatectl list-timezones Aby ograniczyć listę do Europy do polecenia dodaj: | grep Europe
Gdy strefa czasowa jest nieprawidłowo ustawiona wydaj polecenie: timedatectl set-timezone <twoja_strefa_czasowa>
Aby ponownie włączyć użycie protokołu NTP posłuż się komendą: timedatectl set-ntp true.
Informacje o synchronizacji uzyskasz dzięki poleceniu: timedatectl show-timesync
Po analizie uzyskanych informacji, można zauważyć, że system Linux Ubuntu Server 22.04 czas domyślnie synchronizuje z serwerem: ntp.ubuntu.com Można to zmienić poprzez edycję pliku: /etc/systemd/timesyncd.conf Kasujemy znak: # poprzedzający słowo NTP i po znaku równa się wpisujemy adres serwera czasu. Został użyty adres IP bramy 192.168.88.1, gdyż za synchronizację czasu w sieci odpowiada router.
Po wprowadzeniu zmian restartujemy usługę – systemctl restart systemd-timesyncd.service
W systemie Windows, aby zmienić domyślny serwer NTP (time.windows.com) należy wyświetlić okno Data i godzina a następnie przejść na zakładkę Czas z Internetu i po kliknięciu na przycisk Zmień ustawienia wpisujemy jego adres.
Jeden komentarz
SpeX
Z poziomu DHCP nie da się „narzucić” hostowi serwera czasu? Tak jak to ma miejsce z DNSami?