Jak ustawić synchronizację czasu sieciowego w systemie Linux

Chociaż może się wydawać, że synchronizacja czasu powinna być automatyczna, w systemie Linux często zdarza się, że ustawienia czasu są błędne lub źle skonfigurowane. Aby pomóc przeciętnemu użytkownikowi, wyjaśnimy, jak poprawnie ustawić synchronizację czasu sieciowego w systemie Linux oraz jak rozwiązać problem z czasem podczas podwójnego rozruchu Linuxa i Windowsa.

Konfiguracja protokołu czasu sieciowego

Synchronizacja zegara systemowego z serwerami czasu to najczęstszy sposób na uzyskanie precyzyjnego czasu w systemie Linux. W większości dystrybucji jest to proces automatyczny, jednak nie wszystkie z nich korzystają z NTPd, a te, które go mają, mogą być źle skonfigurowane. W tym artykule pokażemy, jak ręcznie skonfigurować demona Network Time Protocol w systemie Linux.

Aby rozpocząć, otwórz terminal i zainstaluj NTP, jeśli nie jest on jeszcze zainstalowany. Jest duża szansa, że już go posiadasz, ale dla pewności przedstawiamy polecenia do instalacji dla większości nowoczesnych dystrybucji Linuxa.

Ubuntu

sudo apt install ntp

Debian

sudo apt-get install ntp

Arch Linux

sudo pacman -S ntp

Fedora

sudo dnf install ntp

OpenSUSE

sudo zypper install ntp

Po zakończeniu instalacji musisz połączyć się z serwerem NTP. Domyślnie wiele dystrybucji Linuksa ma już skonfigurowane własne serwery NTP w pliku /etc/ntp.conf. Jeśli jednak uważasz, że te serwery są niewiarygodne, możesz je zmienić, korzystając z bardziej niezawodnych, na przykład oficjalnych serwerów Google NTP.

Aby dodać serwery Google NTP, edytuj plik ntp.conf.

sudo nano /etc/ntp.conf

Możesz usunąć istniejące wpisy i zastąpić je nowymi (choć nie jest to zalecane). Aby uzyskać najlepsze rezultaty, wklej wpisy Google NTP na samym początku pliku.

Pamiętaj, aby na końcu każdego nowego wpisu dodać opcję iburst, która wysyła „serię” pakietów do serwerów w przypadku problemów z połączeniem.

server time.google.com iburst
server time2.google.com iburst
server time3.google.com iburst

Po zakończeniu edytowania zapisz zmiany w pliku przy użyciu Ctrl + O, a następnie wyjdź z edytora za pomocą Ctrl + X.

Ustawianie strefy czasowej

NTP automatycznie synchronizuje czas z serwerami, ale musi najpierw znać strefę czasową. Zazwyczaj podczas początkowej konfiguracji system pyta o strefę czasową i ustawia ją. Jeśli jednak wystąpiły problemy, możesz to naprawić ręcznie, używając narzędzia tzselect.

W terminalu uruchom narzędzie do ustawiania strefy czasowej:

tzselect

To narzędzie przeprowadzi Cię przez proces wyboru odpowiedniej strefy czasowej. Po zakończeniu będziesz mógł uruchomić NTPd.

Uruchamianie NTP

Po nawiązaniu połączenia z serwerami czasu kolejnym krokiem jest włączenie NTP przy starcie systemu, korzystając z systemu init Systemd. Jeśli Twój system operacyjny nie używa systemd, musisz znaleźć alternatywne polecenia.

Najpierw uruchom NTPd:

sudo systemctl start ntpd.service

Następnie włącz go, aby działał przy każdym uruchomieniu systemu:

sudo systemctl enable ntpd.service

Wykonanie tych poleceń powinno natychmiast ustawić poprawny czas, ponieważ czas UTC w BIOSie został już poprawnie skonfigurowany (dzięki tzselect).

Alternatywa: czas lokalny

Oprócz NTP istnieją inne metody synchronizacji czasu w systemie Linux. Najpopularniejszą alternatywą jest „czas lokalny”, który polega na tym, że system Linux przechowuje czas, ale nie synchronizuje go z serwerami. Ta metoda jest mniej niezawodna, ale działa. Dlaczego chcesz to zastosować?

Głównym powodem przejścia na czas lokalny z NTP jest problem z podwójnym uruchamianiem, który może powodować problemy z czasem. Jeśli kiedykolwiek załadowałeś Linuxa, a następnie uruchomiłeś ponownie Windows 10, mogłeś zauważyć problemy z czasem. To dzieje się, ponieważ oba systemy mają swoje usługi synchronizacji czasu, co prowadzi do konfliktów. Aby rozwiązać ten problem, możesz wyłączyć synchronizację czasu w systemie Linux.

Pamiętaj, że nawet jeśli ustawisz czas lokalny w Linuxie, Windows może nadal mieć problemy. Sprawdź ustawienia czasu w systemie Windows, aby upewnić się, że nie występują dalsze konflikty między dwoma systemami operacyjnymi.

Możesz naprawić to, uruchamiając polecenie timedatectl:

sudo timedatectl set-local-rtc 1

Po przejściu na czas lokalny konieczne może być ponowne uruchomienie komputera. Po zalogowaniu wszystko powinno korzystać z czasu lokalnego.

Chcesz wrócić do synchronizacji czasu? W takim razie uruchom ponownie polecenie timedatectl:

sudo timedatectl set-local-rtc 0

Podobnie jak wcześniej, ponowne uruchomienie systemu Linux zapewni, że czas lokalny nie będzie już używany.


newsblog.pl