In diesem Tutorial besprechen wir, wie Chrony installiert und konfiguriert wird , ein alternativer NTP-Client und -Server für Unix-ähnliche Systeme. Chrony kann die Systemuhr schneller mit besserer Zeitgenauigkeit synchronisieren und kann besonders nützlich für Systeme sein, die nicht ständig online sind. Chrony ist kostenlos, Open Source und unterstützt GNU/Linux- und BSD-Varianten wie FreeBSD, NetBSD, macOS und Solaris.
Chrony installieren
Chrony ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar. Wenn Sie Arch Linux verwenden, führen Sie den folgenden Befehl aus, um es zu installieren:
$ sudo pacman -S chrony
Unter Debian, Ubuntu, Linux Mint:
$ sudo apt-get install chrony
Auf Fedora:
$ sudo dnf install chrony
Starten Sie nach der Installation chronyd.service Daemon, falls er noch nicht gestartet ist:
$ sudo systemctl start chronyd.service
Machen Sie es so, dass es bei jedem Neustart automatisch startet, indem Sie den Befehl verwenden:
$ sudo systemctl enable chronyd.service
Um zu überprüfen, ob Chronyd.service gestartet wurde, führen Sie Folgendes aus:
$ sudo systemctl status chronyd.service
Wenn alles in Ordnung ist, sehen Sie eine Ausgabe wie unten.
● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: ena Active: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Main PID: 2482 (chronyd) Tasks: 1 (limit: 2320) CGroup: /system.slice/chrony.service └─2482 /usr/sbin/chronyd Oct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server... Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMON Oct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppm Oct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server. Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199 Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200
Wie Sie sehen können, wurde der Chrony-Dienst gestartet und funktioniert!
Chrony konfigurieren
Die NTP-Clients müssen wissen, welche NTP-Server sie kontaktieren sollen, um die aktuelle Uhrzeit zu erhalten. Wir können die NTP-Server im Server angeben oder Pool Direktive in der NTP-Konfigurationsdatei. Normalerweise ist die Standardkonfigurationsdatei /etc/chrony/chrony.conf oder /etc/chrony.conf abhängig von der Version der Linux-Distribution. Für eine bessere Zuverlässigkeit wird empfohlen, mindestens drei Server anzugeben.
Die folgenden Zeilen sind nur ein Beispiel von meinem Ubuntu 18.04 LTS-Server.
[...] # About using servers from the NTP Pool Project in general see (LP: #104525). # Approved by Ubuntu Technical Board on 2011-02-08. # See http://www.pool.ntp.org/join.html for more information. pool ntp.ubuntu.com iburst maxsources 4 pool 0.ubuntu.pool.ntp.org iburst maxsources 1 pool 1.ubuntu.pool.ntp.org iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 [...]
Wie Sie in der obigen Ausgabe sehen, NTP Pool Project wurde als Standard-Zeitserver festgelegt. Für diejenigen, die sich fragen, ist das NTP-Pool-Projekt der Cluster von Zeitservern, der NTP-Dienste für zig Millionen Clients auf der ganzen Welt bereitstellt. Es ist der Standard-Zeitserver für Ubuntu und die meisten anderen wichtigen Linux-Distributionen.
Hier,
- der iburst Option wird verwendet, um die anfängliche Synchronisierung zu beschleunigen.
- die maxsources bezieht sich auf die maximale Anzahl von NTP-Quellen.
Bitte stellen Sie sicher, dass die von Ihnen ausgewählten NTP-Server gut synchronisiert, stabil und in der Nähe Ihres Standorts sind, um die Genauigkeit der Zeit mit NTP-Quellen zu verbessern.
Chronyd über die Befehlszeile verwalten
Chrony verfügt über ein Befehlszeilenprogramm namens chronyc um die chrony zu steuern und zu überwachen Dämon (chronyd).
Um zu prüfen, ob chrony synchronisiert ist, können wir das Tracking verwenden Befehl wie unten gezeigt.
$ chronyc tracking Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com) Stratum : 3 Ref time (UTC) : Wed Oct 17 11:48:51 2018 System time : 0.000984587 seconds slow of NTP time Last offset : -0.000912981 seconds RMS offset : 0.007983995 seconds Frequency : 23.704 ppm slow Residual freq : +0.006 ppm Skew : 1.734 ppm Root delay : 0.089718960 seconds Root dispersion : 0.008760406 seconds Update interval : 515.1 seconds Leap status : Normal
Wir können die aktuellen Zeitquellen, die chrony verwendet, mit folgendem Befehl überprüfen:
$ chronyc sources 210 Number of sources = 8 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- chilipepper.canonical.com 2 10 377 296 +102ms[ +104ms] +/- 279ms ^- golem.canonical.com 2 10 377 302 +105ms[ +107ms] +/- 290ms ^+ pugot.canonical.com 2 10 377 297 +36ms[ +38ms] +/- 238ms ^- alphyn.canonical.com 2 10 377 279 -43ms[ -42ms] +/- 238ms ^- dadns.cdnetworks.co.kr 2 10 377 1070 +40ms[ +42ms] +/- 314ms ^* t1.time.sg3.yahoo.com 2 10 377 169 -13ms[ -11ms] +/- 80ms ^+ sin1.m-d.net 2 10 275 567 -9633us[-7826us] +/- 115ms ^- ns2.pulsation.fr 2 10 377 311 -75ms[ -73ms] +/- 250ms
Das Dienstprogramm Chronyc kann mithilfe von sourcestats die Statistiken jeder Quelle ermitteln, z. B. Driftrate und Offset-Schätzungsprozess Befehl.
$ chronyc sourcestats 210 Number of sources = 8 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== chilipepper.canonical.com 32 16 89m +6.293 14.345 +30ms 24ms golem.canonical.com 32 17 89m +0.312 18.887 +20ms 33ms pugot.canonical.com 32 18 89m +0.281 11.237 +3307us 23ms alphyn.canonical.com 31 20 88m -4.087 8.910 -58ms 17ms dadns.cdnetworks.co.kr 29 16 76m -1.094 9.895 -83ms 14ms t1.time.sg3.yahoo.com 32 16 91m +0.153 1.952 +2835us 4044us sin1.m-d.net 29 13 83m +0.049 6.060 -8466us 9940us ns2.pulsation.fr 32 17 88m +0.784 9.834 -62ms 22ms
Wenn Ihr System nicht mit dem Internet verbunden ist, müssen Sie Chrony benachrichtigen, dass das System nicht mit dem Internet verbunden ist. Führen Sie dazu Folgendes aus:
$ sudo chronyc offline [sudo] password for sk: 200 OK
Um den Status Ihrer NTP-Quellen zu überprüfen, führen Sie einfach Folgendes aus:
$ chronyc activity 200 OK 0 sources online 8 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Wie Sie sehen, sind im Moment alle meine NTP-Quellen ausgefallen.
Sobald Sie mit dem Internet verbunden sind, benachrichtigen Sie Chrony einfach mit dem Befehl:
, dass Ihr System wieder online ist$ sudo chronyc online 200 OK
Um den Status der NTP-Quelle(n) anzuzeigen, führen Sie Folgendes aus:
$ chronyc activity 200 OK 8 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Eine detailliertere Erklärung aller Optionen und Parameter finden Sie auf den Manpages.
$ man chronyc
$ man chronyd
Und das ist alles für jetzt. Hoffe, das war nützlich. In den folgenden Tutorials werden wir sehen, wie man einen lokalen NTP-Server mit Chrony einrichtet und die Clients so konfiguriert, dass sie ihn zum Synchronisieren der Zeit verwenden.
Bleiben Sie dran!