NTP Server abfragen und Netzwerk prüfen
NTP nutzt UDP Port 123. Ein normaler TCP-Portcheck ist daher nicht ausreichend. Mit Debian-Standardtools kann man vor allem prüfen, ob die Zeitsynchronisierung des Systems funktioniert.
Keine Zusatzpakete notwendig
Die folgenden Befehle verwenden Standardtools, die auf einem normalen Debian-System mit systemd vorhanden sind. Es wird nichts installiert und es wird kein sudo verwendet.
Wichtig: Mit diesen Standardtools kann man normalerweise keine beliebigen NTP-Server direkt einzeln abfragen. Man prüft stattdessen, ob der lokale Zeitdienst erfolgreich mit einem NTP-Server synchronisiert.
1. Zeitstatus des Systems prüfen
timedatectl status
Interessant sind vor allem:
System clock synchronizedNTP serviceTime zone
Wenn System clock synchronized: yes angezeigt wird, funktioniert die Zeitsynchronisierung grundsätzlich. Wenn dort no steht, kommt aktuell keine erfolgreiche Synchronisierung zustande.
2. NTP-Synchronisierung genauer prüfen
timedatectl timesync-status
Dieser Befehl zeigt, mit welchem Zeitserver das System synchronisiert und ob Antworten vom NTP-Server kommen.
Typische interessante Angaben sind:
ServeroderServer AddressStratumPoll IntervalPacket CountOffset
Wenn ein Server, Stratum-Wert und Paketinformationen angezeigt werden, kommen NTP-Antworten an. Wenn keine Serverdaten oder Fehler angezeigt werden, ist NTP möglicherweise nicht aktiv oder UDP Port 123 wird blockiert.
3. Maschinenlesbare Ausgabe prüfen
timedatectl show-timesync --all
Diese Ausgabe ist nützlich, wenn man gezielt Werte prüfen oder dokumentieren möchte.
Interessant sind zum Beispiel:
ServerName=ServerAddress=RootDistanceMaxUSec=PollIntervalUSec=NTPMessage=
4. Prüfen, ob systemd-timesyncd läuft
systemctl is-active systemd-timesyncd.service
Mögliche Ausgaben:
| Ausgabe | Bedeutung |
|---|---|
active |
Der Zeitdienst läuft. |
inactive |
Der Zeitdienst läuft aktuell nicht. |
failed |
Der Zeitdienst ist fehlgeschlagen. |
unknown |
Der Dienst ist nicht vorhanden oder nicht bekannt. |
5. DNS separat prüfen
getent ahosts pool.ntp.org
Wenn hier IP-Adressen angezeigt werden, funktioniert die Namensauflösung. Wenn keine IP-Adresse zurückkommt, liegt das Problem wahrscheinlich bei DNS und nicht direkt bei NTP.
6. Netzwerkroute prüfen
ip route get 1.1.1.1
Damit kann geprüft werden, ob das System grundsätzlich eine Route ins Netzwerk oder Internet hat. Das prüft aber nicht direkt NTP, sondern nur die allgemeine Erreichbarkeit über die Routing-Tabelle.
Warum nicht curl oder wget?
curl und wget eignen sich nicht für echte NTP-Abfragen. Beide sind für HTTP, HTTPS, FTP und ähnliche URL-basierte Protokolle gedacht. NTP läuft aber über UDP Port 123.
Man kann mit curl oder wget höchstens prüfen, ob HTTP/HTTPS und DNS grundsätzlich funktionieren:
curl -I https://www.debian.org
wget --spider https://www.debian.org
Diese Tests sagen aber nichts Sicheres darüber aus, ob NTP über UDP Port 123 erlaubt ist.
Ergebnis bewerten
| Ergebnis | Bedeutung |
|---|---|
System clock synchronized: yes |
Die Systemzeit wird erfolgreich synchronisiert. |
timedatectl timesync-status zeigt Serverdaten |
NTP-Antworten kommen grundsätzlich an. |
System clock synchronized: no |
Aktuell keine erfolgreiche Zeitsynchronisierung. |
systemd-timesyncd.service ist inactive oder failed |
Der lokale Zeitdienst läuft nicht korrekt. |
getent ahosts liefert keine IP-Adresse |
DNS-Auflösung funktioniert nicht. |
Kurzfazit
Mit Debian-Standardtools prüft man NTP am besten über timedatectl status, timedatectl timesync-status und timedatectl show-timesync --all. Wenn dort ein aktiver Server und erfolgreiche Synchronisierung angezeigt werden, funktionieren NTP-Abfragen aus dem Netzwerk grundsätzlich.
Für eine direkte Einzelabfrage gegen beliebige NTP-Server braucht man ein zusätzliches NTP-Werkzeug wie ntpdig. Ohne solche Zusatztools ist nur die Prüfung über den vorhandenen System-Zeitdienst möglich.