[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] Dieser Artikel beschreibt die Synchronisation der Software-Uhrzeit anhand des '''Network Time Protocol (NTP) daemon''' ntpd. Dieser arbeitet mit dem standardisierten Protokoll [wikipedia:Network_Time_Protocol: NTP]. {{{#!vorlage Hinweis Die Abkürzung NTP/ntp ist mehrdeutig. Dieser Artikel versucht, '''ntp''' als [:Dienste: Dienst] gegenüber '''NTP''' als dem verwendeten Protokoll abzugrenzen. }}} {{{#!vorlage Warnung Ubuntu synchronisiert die Software-Uhr seit Version [:16.04:] bereits standardmäßig anhand [:systemd/timesyncd: timesyncd]. }}} = Installation = ntp kann direkt aus den Quellen installiert werden[1] {{{#!vorlage Paketinstallation ntp }}} == Benutzung == Nach der Installation läuft der Dienst bereits und synchronisiert die Systemzeit anhand öffentlicher [#Zeitserver Zeitserver]. Dies zeigt auch die Ausgabe von[2] {{{#!vorlage Befehl 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 }}} [[Anker(Zeitserver)]] = 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: ||<-2 tablestyle="width: 95%;" cellstyle="text-align: center; background-color: #E2C890;">'''Zeitserver'''|| ||'''Server'''||'''Beschreibung'''|| || `0.de.pool.ntp.org` ... `3.de.pool.ntp.org` || [https://www.pool.ntp.org/de/ Projektseite] {de} || || `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` [[BR]] `ch.pool.ntp.org` [[BR]] `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 || {{{#!vorlage Hinweis Mittels [:Samba:] ist es möglich, dass Windows-Clients ihre Zeit mit dem Server synchronisieren können (siehe [:/Samba_Server/smb.conf#Zeit-Synchronisation:]). }}} = Externe lokale Zeitquellen nutzen = Die Nutzung von ntp in Kombination mit einer externen lokalen Zeitquelle ist im Artikel [:ntpd/ntp_mit_externen_lokalen_Zeitquellen/: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: {{{#!vorlage Befehl # 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: {{{#!vorlage Befehl sudo service ntp restart }}} Eine weitere Problemquelle sind zu große Abweichungen zwischen lokaler und Internet-Zeit. Dann wird zuerst der ntp-Dienst beendet: {{{#!vorlage Befehl sudo service ntp stop }}} Nun setzt man die Zeit manuell: {{{#!vorlage Befehl sudo ntpd -q -g -x -n }}} Zum Schluss wird der ntp-Dienst wieder gestartet: {{{#!vorlage Befehl 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. [[Anker(dualboot)]] == 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 [wikipedia:UTC: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: {{{#!vorlage Befehl 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 [heise:-2087846:Kommt Zeit, kommt – DDoS-Angriff] {de} zu entnehmen (Stand: 01/2014). = Links = * [https://www.eecis.udel.edu/~mills/ntp/html/release.html NTP Version 4 Release Notes (David L. Mills, PhD, Professor)] {en} * [https://www.eecis.udel.edu/~mills/ntp.html Network Time Synchronization Research Project (David L. Mills, PhD, Professor)] {en} * [https://www.eecis.udel.edu/~mills/ntp/html/refclock.html#list Referenz-Uhren Hardwareliste (David L. Mills, PhD, Professor)] {en} * [https://www.ntp-zeit.de/ Allgemeine Erklärung des NTP Protokolls] {de} * [wikipedia:Network_Time_Protocol:Network Time Protocol (NTP)] # tag: Hardware, System, Systemzeit, NTP