Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


NTP-Client

NTP-Server ] Synchronisation ] [ NTP-Client ]


In diesem Unterkapitel wird vorgestellt, wie lokale Clients auf einem im lokalen Netzwerk bzw. im Internet befindlichen NTP-Server zugreifen können. Dabei werden Linux- und Windows-Clients berücksichtigt. Als Protokoll kommt das NTP bzw. SNTP zum Einsatz.

Synchronisation mit Linux-Cients

Bei der Synchronisation ist zwischen einer Einzelabfrage und einer kontinuierlich Abfrage und Korrektur der Zeit zu unterscheiden. Bei einer Einzelabfrage wird die Zeit einmal, z.B. beim Einschalten des Rechners synchronisiert. Bei einer kontinuierlichen Abfrage wird permanent in zyklischen Abständen die Zeit synchronisiert.

Synchronisation durch Einzelabfrage

Für die NTP-Einzelabfrage eignet sich das Programm: 'ntpdate' aus dem gleichnamigen Debian-Paket: 'ntpdate'. 'ntpdate' ist ein einfaches Konsolen-Programm zur expliziten Abfrage von Time-Servern.
Als Referenz-Server zur Abfrage bietet sich z.B. der Server der 'Physikalisch-Technischen Bundesanstalt' in Braunschweig an. Die Server finden sich unter den Namen 'ptbtime1.ptb.de' und  'ptbtime2.ptb.de'. Um nun die Zeit des eigenen Rechners mit dem Server der Physikalisch-Technischen Bundesanstalt in Braunschweig zu synchronisieren, ist folgendes Kommando einzugeben:

/usr/sbin/ntpdate ptbtime1.ptb.de ptbtime2.ptb.de

Es ist auch sinnvoll mehrere Time-Server anzugeben, ist der erste Time-Server nicht verfügbar, dann wird automatisch der nächste versucht.

Das Kommando: 'ntpdate' verändert jedoch nur die Systemzeit, verstellt aber nicht die CMOS-Uhr des Rechners.  D.h., wenn der Rechner ausschalten wird, wird beim Neustart wieder die alte CMOS-Uhrzeit verwenden. Die Systemzeit kann mit dem Kommando:

/sbin/hwclock -wu

in die CMOS-Uhr übertragen werden.

Auch ist es sinnvoll das Kommando: 'ntpdate' als cron-Job einzubauen:

Auszug aus: crontab

# Syncronisation mit externen Zeitservern
0 0,6,12,18 * * *  /usr/sbin/ntpdate -s
ptbtime1.ptb.de ptbtime2.ptb.de &

In diesem Beispiel wird alle sechs Stunden synchronisiert.

Praktikabel ist es auch, eine Synchronisation mit jedem Verbindungsaufbau zum Internet hin stattfinden zu lassen. Für temporäre Verbindungen ins Internet ist es sinnvoll, die Abfrage mit dem Einwahlvorgang zu koppeln. Für diesen Zweck kann die Datei: 'ip-up' im Verzeichnis: '/etc/ppp' um zwei Befehle ergänzt werden:

Auszug aus: /etc/ppp/ip_up

ip-up)
# ...
# echo -n "starting timesynchronisation ..." > /dev/tty10
/usr/sbin/ntpdate -s
ptbtime1.ptb.de ptbtime2.ptb.de
/sbin/hwclock -wu
# echo -n "time synchronisation done." > /dev/tty10
#...
;;

Bei jedem Verbindungsaufbau zum Internet hin, wird nun die Uhrzeit synchronisiert.

Synchronisation durch kontinuierlichen Abfrage

Das Verfahren durch kontinuierliche Synchronisation des Linux-Clients ist das selben, wie beim NTP-Server (vgl.: Unterkapitel: NTP-Server, Synchronisation), da ein NTP-Server auch gleichzeitig NTP-Client sein kann.
Bei eine kontinuierlichen Abfrage eines NTP-Servers ist der zu befragende Server in der Konfigurationsdatei: 'ntp.conf' einzutragen. Es können hier ebenfalls mehrere Server angegeben werden. Dabei erhöht sich der Stratuswert des Clients um eins, bei der Abfrage. Hier ein Ausschnitt aus der Konfigurationsdatei: 'ntp.conf':

Auszug aus: /etc/ntp.conf

##
## Outside source of synchronized time
##
server ptbtime1.ptb.de # erster Server der PTB
server ptbtime2.ptb.de # zweiter Server der PTB

Die Einträge für die lokale Uhr sollten weiterhin aktiviert bleiben, da diese eine Fallback-Lösung darstellt, falls die Server nicht erreichbar sind.

Synchronisation mit Windows-Clients

Für die Synchronisation von Windows-Clients gibt es zahlreiche autonome Programme, die das NTP- bzw. SNTP-Protokoll beherrschen. In diesem Unterkapitel werden einige freie Programme kurz vorgestellt:

Das ist zum einen das Freeware-Programm: 'Automachron', das es in der aktuellen Version 5.x erhältlich ist.

Als weiteres Freeware-Programm ist 'Dimension 4' von der Firma: ThinkMan zu erwähnen.

Bei 'Automachron' und 'Dimension 4' beschränkt sich die Konfiguration auf die Angabe des NTP-Servers mit entsprechenden Port. Als Protokoll ist SNTP zu wählen, danach sollten beide Programme ihren Dienst verrichten.

Als weiteres gutes Freeware-Programm ist das Programm: 'NetTime' zu nenne:

'NetTime' ist einfach zu konfigurieren und verfügt über eine Liste von öffentlichen Time-Servern, deren Erreichbarkeit sofort getestet werden kann.

Zeitsynchronisierung über das SMB-Protokoll

Eine weitere Möglichkeit, wobei kein spezielles Client-Programme benötigt wird, ist die Abstimmung der Zeit durch das SMB-Protokoll. Das SMB-Protokoll ist auf dem Linux-System vorhanden, sofern Samba (ein SMB-Server) aktiv ist. Damit Samba nun die Zeit übermitteln kann, muss der Eintrag: 'time server = true' in der '/etc/smb.conf' vorhanden sein.

Durch Eingabe des Kommandos (am Windows-Client):

net time \\<Time-Server> /set /yes

synchronisiert sich der Client. Dabei steht die Option: '/set' für das setzen der Zeit in der CMOS-Uhr und die Option: '/yes' unterdrückt die Abfragebestätigung. Am besten verwendet man das Kommando bei jeden Hochlauf des Rechners.

Zeitsynchronisierung bei Windows XP

Ab der Version von Windows-XP ist es auch mit Betriebssystemmitteln möglich, eine Zeitsynchronisierung der Systemuhr mit einem Zeit-Server durchzuführen. Dazu ist das Dienstprogramm: 'Datum und Uhrzeit' unter 'Start » Systemsteuerung' zu öffnen und das Kontrollkästchen: 'Automatisch mit einem Internetzeitserver synchronisieren' zu aktiviert. Im Feld: 'Server' ist dann der zu befragende Time-Server einzutragen.

Mit der Schaltfläche: 'Jetzt aktualisieren' kann eine sofortige Aktualisierung eingeleitet werden. Wenn die Synchronisierung aktiviert ist, wird die Computeruhr ein Mal in der Woche mit einem Internetzeitserver synchronisiert.

Anmerkungen

In einem Unix/Linux-Systemen gibt es zwei Uhren, zum einen die Hardware CMOS-Uhr, die gespeist durch eine Batterie auch bei ausgeschalteten Rechner weiter läuft. Zum anderen die System-Uhr, die im Kernel geführt wird und beim Hochfahren des Systems eine Kopie der der Zeitinformation von der CMOS-Uhr bekommt und dann autonom arbeitet.
Bei Linux-Rechnern wird normalerweise zwischen der UTC (Coordinated Universal Time) und der so genannten 'localtime' unterschieden. Die UTC entspricht der GMT (Greenwich Mean Time). Dies ist quasi die Zeit, auf die sich alle anderen Zeitzonen beziehen mit einem bestimmten Versatz von ganzen Stunden. Die 'localtime' ist auf die jeweils gültige Zeitzone des Rechnerstandortes eingestellt.
Mit dem Kommandozeilen-Tool: '/usr/sbin/base-config' kann festgelegt werden, ob die die Hardware-Uhr auf lokaler oder GMT-Zeit eingestellt, bzw. welche Zeitzone verwendet werden soll.
Bei Unix-Systemen ist der Betrieb der Hardware-Uhr mit UTC-Einstellung korrekt und auch üblich. Sinn bringt es nur die Hardware-Uhr mit 'localtime' zu betreiben, wenn auf dem Rechner z.B. ein zweites Betreibsystem wie Windows installiert ist und der Rechner alternativ mit Linux oder Windows gebootet wird. Windows nutzt im Gegensatz zu Unix nur eine Zeit.
Um die CMOS-Uhr mit der Zeit der System-Uhr zu setzen, eignet sich das Kommando:

hwclock -uw

Bzw. wenn die Rechnerzeit auf 'localtime' eingestellt ist:

hwclock -w

Weitere Infos

Manualseiten zu: ntpdate man ntpdate
Manualseiten zu: hwclock man hwclock
Publishers of Time and Frequency Software http://www.boulder.nist.gov/timefreq/general/softwarelist.htm
Homepage: Automachron http://www.oneguycoding.com/automachron/
Homepage: 'Dimension 4' http://www.thinkman.com/dimension4/index.html
Homepage: NetTime http://nettime.sourceforge.net/

Home ] Nach oben ] NTP-Server ] Synchronisation ] [ NTP-Client ]

letzte Änderung: 24. März 2005

 

Copyright © 2004 Norbert Eusterholz