Jak ustawić synchronizację czasu sieciowego w systemie Linux

Chociaż może się wydawać, że powinno się to automatycznie zająć, ustawienia czasu w systemie Linux często mogą się zepsuć lub nieprawidłowo skonfigurować. Ponieważ ustawienia czasu w systemie Linux mogą być mylące dla przeciętnego użytkownika, zepsujemy i wyjaśnimy, jak skonfigurować synchronizację czasu sieci w systemie Linux.

Oprócz skonfigurowania NTP, wyjaśnimy również, jak naprawić irytujący błąd czasu podczas podwójnego rozruchu Linuksa i Windowsa.

Skonfiguruj protokół czasu sieciowego

Synchronizacja zegara programowego na komputerze z systemem Linux z serwerami czasu jest najczęstszym sposobem uzyskania dokładnego czasu. W większości dystrybucji Linuksa odbywa się to automatycznie. Jednak nie każda dystrybucja Linuksa używa NTPd. Co więcej, te, które to robią, mogą go zepsuć lub nieprawidłowo skonfigurować. Aby temu zaradzić, wyjaśnimy, jak łatwo jest ręcznie skonfigurować demona Network Time Protocol w systemie Linux.

Zacznij od otwarcia terminala i zainstalowania NTP, jeśli Twój komputer nie ma go zainstalowanego. Jest duża szansa, że ​​już go masz, ale dla bezpieczeństwa oto polecenia, aby go pobrać dla większości nowoczesnych dystrybucji Linuksa.

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 zainstalowaniu oprogramowania będziesz musiał połączyć się z serwerem NTP. Domyślnie większość dystrybucji Linuksa ma własne serwery NTP skonfigurowane w pliku /etc/ntp.conf. Jeśli jednak uważasz, że te serwery są zawodne, możesz zmienić je na bardziej niezawodny (na przykład oficjalny serwer Google NTP).

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

sudo nano /etc/ntp.conf

Jeśli chcesz, usuń wszystkie wpisy i zastąp je tymi (chociaż nie zalecamy tego). Aby uzyskać najlepsze wyniki, wklej wpisy Google NTP na samej górze.

Uwaga: ważne jest, aby iburst znajdował się na końcu każdego nowego wpisu. Opcja iburst wyśle ​​„serię” pakietów do serwerów tylko wtedy, gdy napotkasz problemy z połączeniem z serwerem czasu.

server time.google.com iburst

server time2.google.com iburst

server time3.google.com iburst

Po zakończeniu zapisz plik konfiguracyjny w Nano za pomocą Ctrl + O. Wyjdź z edytora za pomocą Ctrl + X.

Konfiguruj czas

NTP może automatycznie synchronizować czas z serwerami, ale najpierw musi znać strefę czasową. Zwykle podczas początkowej konfiguracji system operacyjny Linux zapyta o strefę czasową i ustawi ją. Jeśli coś poszło nie tak podczas instalacji, należy to naprawić ręcznie za pomocą tzselect.

Otwórz terminal i uruchom narzędzie strefy czasowej:

tzselect

Uruchomienie narzędzia Tzselect przeprowadzi Cię przez proces konfigurowania odpowiedniej strefy czasowej. Po zakończeniu będziesz mógł uruchomić NTPd.

Uruchamiam NTP

Wszystkie połączenia z serwerami czasu działają. Następnym krokiem procesu jest użycie systemu inicjującego Systemd do załadowania protokołu NTP podczas rozruchu. Zrozum, że jeśli twój system operacyjny Linux nie używa systemd, jak większość nowoczesnych, popularnych, musisz znaleźć alternatywę dla tych poleceń.

Najpierw uruchom NTPd:

sudo systemctl start ntpd.service

Następnie włącz go podczas rozruchu z włączoną funkcją systemctl.

sudo systemctl enable ntpd.service

Uruchomienie powyższych poleceń powinno natychmiast skonfigurować czas, ponieważ czas UTC w systemie BIOS jest teraz poprawny (dzięki Tzselect).

Użyj czasu lokalnego

Istnieją inne sposoby ustawiania czasu w systemie Linux, oprócz NTP. Najpopularniejszą alternatywą dla tej metody jest „czas lokalny”. Czas lokalny każe Linuksowi przechowywać czas, ale nie synchronizować go z czymkolwiek. Zasadniczo utrzyma samowystarczalność czasu i nie będzie w nic kolidować. Jest mniej niezawodny, ale działa. Pytanie brzmi, dlaczego chcesz to zrobić?

Głównym powodem, dla którego można by przejść z czasem lokalnym na coś takiego jak NTP, jest fakt, że podwójne uruchamianie powoduje bałagan z czasem. Jeśli kiedykolwiek załadowałeś Linuksa, a następnie ponownie uruchomiłeś system Windows 10, zauważysz przerwy w czasie. Dzieje się tak, ponieważ oba systemy operacyjne mają usługę synchronizacji czasu i walczą ze sobą. Głównym sposobem rozwiązania tego problemu jest wyłączenie synchronizacji czasu w systemie Linux.

Uwaga: pamiętaj, że nawet jeśli ustawiłeś Linuksa na używanie czasu lokalnego, system Windows może nadal napotkać problemy. Sprawdź ustawienia czasu systemu Windows, aby upewnić się, że nie ma dalszych konfliktów z dwoma systemami operacyjnymi.

Uruchomienie timedatectl powinno to naprawić:

sudo timedatectl set-local-rtc 1

Po powrocie do czasu lokalnego może być konieczne ponowne uruchomienie komputera. Po ponownym zalogowaniu wszystko powinno korzystać z czasu lokalnego.

Chcesz cofnąć czas lokalny? Jeśli tak, musisz ponownie uruchomić polecenie timedatectl. Wypróbuj poniższe polecenie.

sudo timedatectl set-local-rtc 0

Tak jak poprzednio, uruchom ponownie komputer z systemem Linux, aby uzyskać dobrą miarę. Przy następnym logowaniu czas lokalny nie powinien być używany.