ubuntuusers.de

ntpd

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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!

Ubuntu synchronisiert die Software-Uhr seit Version 16.04 bereits standardmäßig anhand timesyncd.

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
ServerBeschreibung
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).

Diese Revision wurde am 1. April 2022 09:41 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Systemzeit, NTP, Hardware, System