ntpd
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel beschreibt die Synchronisation der Software-Uhrzeit anhand des Network Time Protocol (NTP) daemon ntpd. Dieser arbeitet mit dem standardisierten Protokoll NTP.
Hinweis:
Die Abkürzung NTP/ntp ist mehrdeutig. Dieser Artikel versucht, ntp als Dienst gegenüber NTP als dem verwendeten Protokoll abzugrenzen.
Achtung!
Installation¶
ntp kann direkt aus den Quellen installiert werden[1]
ntp
Befehl zum Installieren der Pakete:
sudo apt-get install ntp
Oder mit apturl installieren, Link: apt://ntp
Benutzung¶
Nach der Installation läuft der Dienst bereits und synchronisiert die Systemzeit anhand öffentlicher Zeitserver. Dies zeigt auch die Ausgabe von[2]
service ntp status
Konfiguration¶
Die Konfigurationsdatei des Dienstes ist /etc/ntp.conf. Beispiel (Minimal-Variante):
# /etc/ntp.conf, minimal configuration for ntpd; see ntp.conf(5) for help server de.pool.ntp.org iburst
Empfehlenswerte Zeitserver¶
Es empfiehlt sich, mehrere Zeitserver anzugeben, wenn möglich geographisch naheliegende. Es macht wenig Sinn, in Europa einen Zeitserver aus Amerika zu verwenden. ntp beobachtet und bewertet die angegebenen Zeitserver und sucht sich dabei selber den aktuell genauesten und besterreichbaren heraus. Der genaueste Server (Stratum 1) ist der, der sich hierarchisch am nächsten an der Originalzeitquelle (Stratum 0) befindet. Originalzeitquellen (Stratum 0) sollten in der Regel nicht selbst direkt abgefragt werden. Um eine Überlastung einzelner Zeitserver durch zu viele und zu häufige Anfragen zu vermeiden, wird empfohlen, keinen Zeitserver explizit anzugeben (z.B. ptbtime1.ptb.de), sondern einen der unten genannten Pools zu nutzen, für Deutschland z.B. aus dem pool.ntp.org Projekt.
Vorschläge für sinnvolle Zeitserver:
Zeitserver | |
Server | Beschreibung |
0.de.pool.ntp.org ... 3.de.pool.ntp.org | Projektseite 🇩🇪 |
ptbtime1.ptb.de | Physikalisch-Technische Bundesanstalt (Braunschweig) |
ptbtime2.ptb.de | wie oben, alternativer Server |
ptbtime3.ptb.de | wie oben, alternativer Server |
time-a.nist.gov | National Institute of Standards and Technology (USA) |
time-b.nist.gov | wie oben, alternativer Server |
pool.ntp.org | wählt bei jedem Neustart per Zufall einen von etwa 4500 empfohlenen Zeitservern aus |
at.pool.ntp.org ch.pool.ntp.org de.pool.ntp.org | wie oben, wählt aber nur Zeitserver aus dem angegebenen Land |
europe.pool.ntp.org | wie oben, wählt aber nur europäische Zeitserver aus (ca. 3000) |
ntp.ubuntu.com | Zeitserver von Ubuntu |
0.debian.pool.ntp.org ... 3.debian.pool.ntp.org | Zeitserver Pool von Debian |
0.ubuntu.pool.ntp.org ... 3.ubuntu.pool.ntp.org | Zeitserver Pool von Ubuntu |
Hinweis:
Mittels Samba ist es möglich, dass Windows-Clients ihre Zeit mit dem Server synchronisieren können (siehe Samba Server/smb.conf (Abschnitt „Zeit-Synchronisation“)).
Externe lokale Zeitquellen nutzen¶
Die Nutzung von ntp in Kombination mit einer externen lokalen Zeitquelle ist im Artikel ntp mit externen lokalen Zeitquellen erklärt.
Interne lokale Zeitquellen nutzen¶
Die Nutzung von ntp in Kombination mit einer internen lokalen Zeitquelle wie beispielsweise einem Router wird durch Ergänzung der Zeitserver in der Konfigurationsdatei /etc/ntp.conf durch den zusätzlichen lokalen Server oder IP des Routers erledigt.
Bsp.
server fritz.box
oder
server xxx.xxx.xxx.xxx
Problembehebung¶
Abweichung zu Zeitservern anzeigen¶
Will man herausfinden, um wie weit die Systemzeit von den angegebenen Zeitservern abweicht ("offset"), kann einer der beiden folgenden Befehle im Terminal[2] ausgeführt werden:
# Offset zu jedem einzelnen Zeitserver (in ms) ntpq -p # für ntp relevanter Offset (in s) # nach einem Neustart des ntp-Servers kann einige Zeit vergehen, bis hier ein Wert steht ntpdc -c loopinfo
Hierbei ist allerdings zu beachten, dass die Systemzeit außer bei sehr großen Abweichungen "fließend" bzw. "schleichend" angepasst wird. Das heißt, dass die Systemzeit minimal langsamer oder schneller läuft, als sie eigentlich laufen müsste. Dadurch geht die Synchronisation nur langsam vonstatten, aber es treten keine Fehler durch Zeitsprünge auf. Beim Herunterfahren des Systems wird hingegen die Uhrzeit der Hardware-Uhr mit der vollen Abweichung überschrieben.
ntp korrigiert die Rechner-Uhrzeit nicht¶
Läuft der ntp-Dienst nicht korrekt (z.B. unsinnige Ausgabe bei ntpq -p
bzw. ntpdc -c loopinfo
), so hilft ggf. der Befehl[2][3] zum Neustarten des Dienstes:
sudo service ntp restart
Eine weitere Problemquelle sind zu große Abweichungen zwischen lokaler und Internet-Zeit. Dann wird zuerst der ntp-Dienst beendet:
sudo service ntp stop
Nun setzt man die Zeit manuell:
sudo ntpd -q -g -x -n
Zum Schluss wird der ntp-Dienst wieder gestartet:
sudo service ntp start
Wer besonders vorsichtig sein möchte startet den Rechner nach dieser Prozedur neu, da der auftretende "Zeitsprung" unvorhersehbare Konsequenzen haben kann.
Falsche Uhrzeit bei Windows-/Mac-/Linux-Parallelinstallation¶
Das System muss neben der Zeitzone auch wissen, wie die Hardware-Uhr konfiguriert ist. Unter UNIX und Mac OS X läuft sie standardmäßig nach koordinierter Weltzeit (UTC), während unter DOS/Windows die Hardware-Uhr nach lokaler Zeit gestellt wird. Dadurch geht in Windows die Zeit um eine (Winter-) bzw. zwei (Sommerzeit) Stunden nach, wenn man sie unter Linux korrekt stellt. Es empfiehlt sich daher, beide Systeme auf die selbe Methode einzustellen.
Windows auf UTC umstellen¶
Windows kann man über die Systemregistrierung auf UTC umstellen bzw. mit UTC betreiben. Dazu legt man mit dem Windows-Editor eine Datei namens utc.reg an und fügt folgenden Inhalt ein:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
Wichtig sind zwei Leerzeilen am Ende der Datei! Danach speichert man die Datei ab und führt sie als Administrator mit einem Doppelklick aus. Teilweise ist ein Neustart erforderlich, damit die Uhrzeit korrekt angezeigt wird.
Alternativ kann auch folgender Windows-Befehl als Administrator ausgeführt werden:
reg.exe add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
Auch hier ist manchmal ein Neustart zur korrekten Anzeige der Uhrzeit erforderlich.
Eigene Zeitserver¶
Wer einen eigenen öffentlich über das Internet erreichbaren Zeitserver betreibt, tut gut daran, diesen gegen Angriffe abzusichern. Mehr Hintergrundinformationen und weitere Maßnahmen sind der Anleitung Kommt Zeit, kommt – DDoS-Angriff 🇩🇪 zu entnehmen (Stand: 01/2014).
Links¶
NTP Version 4 Release Notes (David L. Mills, PhD, Professor) 🇬🇧
Network Time Synchronization Research Project (David L. Mills, PhD, Professor) 🇬🇧
Referenz-Uhren Hardwareliste (David L. Mills, PhD, Professor) 🇬🇧