Aby skonfigurować serwer i klienta NTP w systemie Linux, należy wykonać szereg kroków obejmujących instalację, edycję konfiguracji, uruchamianie usług oraz weryfikację poprawności działania. Poniżej znajduje się szczegółowy poradnik, odpowiedni na stronę WWW dla osób początkujących i średniozaawansowanych.
1. Czym jest NTP i dlaczego jest ważny?
NTP (Network Time Protocol) umożliwia precyzyjną synchronizację czasu systemowego komputerów w sieci lokalnej oraz z publicznymi serwerami czasu. Spójność czasu jest kluczowa dla usług sieciowych, rejestrów zdarzeń, bezpieczeństwa oraz poprawnego działania rozproszonych aplikacji.
2. Instalacja NTP
Na serwerze (np. Ubuntu/Debian):
sudo apt update sudo apt install ntp
Na kliencie (np. Ubuntu/Debian):
sudo apt update sudo apt install ntp
Na systemach Red Hat/CentOS zamiast ntp
czasami używa się chrony
jako alternatywy, ale tutaj skupiamy się na klasycznym ntpd
.
3. Konfiguracja serwera NTP
Edycja pliku konfiguracyjnego
Plik konfiguracyjny: /etc/ntp.conf
Otwórz plik do edycji:
sudo nano /etc/ntp.conf
Najważniejsze elementy konfiguracji:
- Sekcja z serwerami upstream NTP, np.:
server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst server 3.pool.ntp.org iburst
Możesz zastąpić powyższe adresami najbliższych lub zaufanych serwerów, np. serwerami uczelnianymi lub własnym GPS.
- Zezwolenia dla sieci lokalnej (tak, by Twoi klienci mogli się synchronizować z tym serwerem):
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Dopasuj adresację sieci do swojej infrastruktury.
- Opcjonalnie ustawienia plików drift/trace (standardowo wystarczają domyślne):
driftfile /var/lib/ntp/ntp.drift
Zapisz plik i zamknij edytor.
Uruchomienie i automatyczne startowanie usługi
sudo systemctl restart ntp sudo systemctl enable ntp
Otworzenie portów na firewallu (jeśli jest włączony)
Typowo używany jest port UDP 123:
sudo ufw allow 123/udp
4. Konfiguracja klienta NTP
Domyślna konfiguracja klienta NTP polega na dodaniu adresu serwera czasu do pliku /etc/ntp.conf
.
Otwórz plik na kliencie:
sudo nano /etc/ntp.conf
Zmień/usuń istniejące wpisy server
i dodaj swój serwer NTP, np.:
server 192.168.1.10 prefer iburst
(Adres IP należy zamienić na adres Twojego serwera NTP.)
Zapisz plik. Następnie zrestartuj usługę:
sudo systemctl restart ntp sudo systemctl enable ntp
5. Weryfikacja działania synchronizacji
Na serwerze i kliencie można sprawdzić status:
ntpq -p
Ta komenda pokazuje listę serwerów, z których pobierany jest czas oraz szczegóły synchronizacji (offset, delay, jitter).
Dla usług systemowych wartość synchronizacji można sprawdzić również przez:
timedatectl status
(W przypadku korzystania z systemd-timesyncd
.)
6. Diagnozowanie problemów
- Sprawdź czy usługa jest uruchomiona:
sudo systemctl status ntp
- Upewnij się, że serwer jest widoczny w sieci (np.
ping
,telnet
, sprawdź firewall). - Sprawdź logi systemowe:
sudo journalctl -u ntp
7. Najczęstsze błędy i ich przyczyny
- Brak synchronizacji (status UNSYNC) – zablokowany port UDP 123, błędny adres serwera, różnice czasowe przekraczające 1000 s.
- Błędy uprawnień – Restrictive
restrict
w ntp.conf.
8. Przykładowa konfiguracja — plik /etc/ntp.conf
Na serwerze NTP –
driftfile /var/lib/ntp/ntp.drift server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst restrict 127.0.0.1 restrict ::1 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Na kliencie –
driftfile /var/lib/ntp/ntp.drift server 192.168.1.10 iburst
9. Dodatki i dobre praktyki
- Używaj kilku serwerów upstream dla redundancji.
- Regularnie sprawdzaj synchronizację i logi.
- W środowiskach produkcyjnych stosuj stabilny hardware do źródła czasu.
Poradnik opiera się na wiedzy z dokumentacji IBM, praktycznych artykułach oraz społecznościowych poradnikach krok po kroku.