Ubuntu NTP Installatiehandleiding: Houd uw servers gesynchroniseerd

目次

1. Inleiding: Waarom Tijdsynchronisatie Belangrijk is

Problemen Veroorzaakt door Systeemklok Drift

In Linux-systemen, inclusief Ubuntu, is het onderhouden van nauwkeurige tijd cruciaal. Hoewel het misschien lijkt op een klein probleem van klokonjuistheden, kan tijd drift leiden tot kritieke problemen in serverbediening en applicatie-uitvoeringsomgevingen.

Bijvoorbeeld, de volgende problemen kunnen optreden:

  • Inconsistente Logs Als de tijdstempels in systeemplogs en applicatielogs niet aligned zijn, wordt het moeilijk om de oorzaak van problemen te pinpointen tijdens probleemoplossing.
  • Malfunctionerende cron Jobs Geplande taken (zoals back-ups en batchverwerking) zouden niet op de juiste tijden kunnen uitvoeren, potentieel draaiend op onverwachte momenten.
  • SSL Certificaat en Veiligheidsauthenticatie Fouten Nauwkeurige tijdsinformatie is noodzakelijk voor HTTPS-communicatie en SSH-authenticatie. Als de systeemtijd onjuist is, zouden certificaten als “verlopen” kunnen worden beschouwd, leidend tot verbindingsfouten.

Deze problemen kunnen een bijzonder ernstige impact hebben bij het opereren van meerdere servers gesynchroniseerd over een netwerk.

De Rol en Belang van NTP

Om dergelijke problemen te voorkomen, wordt NTP (Network Time Protocol) gebruikt. NTP communiceert met tijdservers op het internet of een lokaal netwerk om de systeemtijd automatisch te corrigeren.

Ubuntu biedt verschillende NTP-gerelateerde tools, inclusief ntpd, chrony en systemd-timesyncd. Dit artikel zal zich richten op ntpd (Network Time Protocol daemon), een gedetailleerde uitleg gevend van de installatie en benutting op Ubuntu.

Vooral voor servers bedoeld voor langdurige operatie en systemen die logconsistentie vereisen, wordt de stabiliteit van ntpd hoog gewaardeerd.

Het volgende hoofdstuk zal introduceren wat ntpd is, zijn basisrollen en de beschikbare opties in Ubuntu.

2. Wat is ntpd? Zijn Rol en Opties in Ubuntu

Overzicht en Kenmerken van ntpd

ntpd (Network Time Protocol Daemon) is een daemon-programma dat NTP gebruikt om nauwkeurige systeemtijd te onderhouden. Het communiceert periodiek met NTP-servers op het internet of een lokaal netwerk en past de systeemklok automatisch aan.

Een belangrijke kenmerk van ntpd is zijn “vloeiende synchronisatie”, die tijdverschillen geleidelijk corrigeert. Dit ontwerp vermijdt abrupte tijdveranderingen die een negatieve impact zouden kunnen hebben op draaiende systemen en applicaties.

Bovendien ondersteunt ntpd geavanceerde NTP-functies zoals symmetrische actieve modus en authenticatie, waardoor het een robuuste tijdsynchronisatieservice is die geschikt is voor bedrijfsomgevingen.

Tijdsynchronisatietools Beschikbaar in Ubuntu

Ubuntu biedt de volgende opties voor tijdsynchronisatie:

  • ntpd (ntp-pakket) Breed gebruikt in omgevingen die langdurige operatie en gedetailleerde configuratie vereisen. Het biedt uitstekende flexibiliteit en stabiliteit, waardoor hoogpreciese tijdsynchronisatie mogelijk is door verbinding te maken met openbare NTP-servers.
  • chrony Een alternatief voor ntpd dat aandacht heeft gekregen vanwege zijn hoge nauwkeurigheid en snelle synchronisatiesnelheid na opstarten. Het werkt goed in laag-spec-omgevingen en virtuele machines, en veel moderne distributies adopteren chrony als standaard.
  • systemd-timesyncd Een lichtgewicht tijdsynchronisatieservice die standaard is ingeschakeld in Ubuntu 20.04 en later. Het is eenvoudig en gemakkelijk in gebruik, maar de functies zijn beperkt, waardoor het ongeschikt is voor geavanceerde configuraties of opereren als een lokale NTP-server.

Redenen om ntpd te Kiezen en Zijn Voordelen

De primaire reden om ntpd in Ubuntu te adopteren is zijn betrouwbaarheid en stabiliteit. Het is een sterke keuze, vooral in de volgende gevallen:

  • Wanneer hoge tijdnauwkeurigheid vereist is voor langlopende servers.
  • Wanneer u een NTP-server wilt opbouwen binnen een lokaal netwerk.
  • Voor bedrijfsapplicaties die authenticatie en geavanceerde controle vereisen.

Bovendien heeft ntpd het voordeel van compatibiliteit met veel bestaande systemen en een bewezen track record, wat zorgen tijdens implementatie vermindert.

3. Installeren en Initiële Instelling van ntpd op Ubuntu

ntpd Installatieprocedure

Om ntpd op Ubuntu te gebruiken, moet je eerst het ntp‑pakket installeren. Je kunt het eenvoudig installeren met de volgende stappen:

sudo apt update
sudo apt install ntp

Deze opdracht installeert automatisch ntpd en de bijbehorende bestanden. Let op dat op sommige Ubuntu‑versies chrony of systemd-timesyncd standaard ingeschakeld kan zijn. In dat geval wordt aanbevolen om ze vooraf uit te schakelen of te verwijderen.

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

De service inschakelen en opstarten verifiëren

Zodra de installatie voltooid is, schakel je de ntpd‑service in en controleer je de opstartstatus.

sudo systemctl enable ntp
sudo systemctl start ntp
sudo systemctl status ntp

Als de status‑opdracht “active (running)” aangeeft, betekent dit dat ntpd succesvol is gestart.

Het initiële configuratiebestand controleren en bewerken

De ntpd‑configuratie wordt gedefinieerd in het bestand /etc/ntp.conf. De standaardconfiguratie na installatie bevat verschillende standaard‑NTP‑servers (meestal uit de pool.ntp.org‑reeks).

Laten we eerst de inhoud van het configuratiebestand bekijken.

cat /etc/ntp.conf

Wil je servers in de Verenigde Staten specificeren, dan kun je het als volgt bewerken:

server us.pool.ntp.org iburst

De iburst‑optie wordt aanbevolen omdat deze de synchronisatiesnelheid tijdens de eerste verbinding verbetert.

Na het aanbrengen van wijzigingen in de configuratie, herstart je de ntpd‑service om ze toe te passen.

sudo systemctl restart ntp

Automatische systeemklok‑synchronisatie verifiëren

Na het starten synchroniseert ntpd automatisch de tijd met de server. Om te controleren of dit correct werkt, is de volgende opdracht handig:

ntpq -p

Deze opdracht laat een lijst zien van verbonden NTP‑servers en gedetailleerde informatie zoals vertraging en offset.

4. NTP‑servers configureren en aanpassen

Aanbevolen NTP‑servers selecteren

Een belangrijk aspect van de ntpd‑configuratie is het kiezen van de NTP‑servers waarmee gesynchroniseerd wordt. Wanneer je via internet verbinding maakt, kan het specificeren van betrouwbare NTP‑servers in de Verenigde Staten zorgen voor een stabielere tijdsynchronisatie.

Typische openbare NTP‑servers in de VS zijn onder andere:

  • us.pool.ntp.org (een pool van NTP‑servers in de Verenigde Staten)
  • Je kunt ook regionale pools vinden, zoals north-america.pool.ntp.org of specifieke staats‑pools indien nodig.

Deze servers worden beheerd met behulp van hoogprecisie‑atomaire klokken en kunnen voor persoonlijk gebruik zonder speciale toestemming worden gebruikt.

Je kunt synchronisatie met deze servers configureren door het volgende in /etc/ntp.conf te plaatsen:

server us.pool.ntp.org iburst
server north-america.pool.ntp.org iburst

Gedetailleerde configuratie‑items in ntp.conf

Naast het specificeren van NTP‑servers biedt /etc/ntp.conf fijnmazige controle over het gedrag van ntpd. Hieronder enkele typische configuratie‑items:

  • restrict‑directive Stelt beperkingen en rechten in voor verbindingen van clients. Om veiligheidsredenen moeten onnodige verbindingen worden beperkt. Voorbeeld: verbindingen van het lokale netwerk toestaan
      restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    
  • driftfile Geeft het bestand op dat de drift van de systeemklok (subtiele afwijkingen) registreert. Meestal is de standaardinstelling prima.
      driftfile /var/lib/ntp/ntp.drift
    

Een NTP‑server opzetten binnen een lokaal netwerk

Je kunt ntpd op Ubuntu ook gebruiken als een NTP‑server die tijd distribueert naar andere apparaten binnen je lokale netwerk. Deze configuratie is effectief in omgevingen zonder internettoegang of waar consistente tijdsbeheer over meerdere apparaten vereist is.

Hier volgt een voorbeeld van de configuratieprocedure:

  1. Voeg een restrict‑regel toe aan /etc/ntp.conf om lokale toegang toe te staan: restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
  2. Configureer op client‑pc’s dat ze naar deze lokale NTP‑server verwijzen: server 192.168.1.10 iburst # Lokale IP van de NTP‑server
  3. Open de poort van de NTP‑server (sta UDP‑poort 123 toe in de firewall): sudo ufw allow 123/udp

Als de communicatie geblokkeerd is, zal tijdsynchronisatie mislukken en zal het ntpq‑commando de verbindingsstatus met de server niet tonen.

5. Verifiëren van ntpd‑werking en probleemoplossing

Hoe de servicestatus controleren

Om te verifiëren dat ntpd correct draait, gebruik je het volgende commando:

sudo systemctl status ntp

Als het active (running) weergeeft, werkt ntpd normaal. Als het inactive of failed toont, kan er een configuratiefout of een afhankelijkheidsprobleem zijn dat voorkomt dat het start.

Om de logboeken gedetailleerd te bekijken, is het volgende commando handig:

journalctl -u ntp

Dit stelt je in staat om de opstartgeschiedenis en foutmeldingen van de ntpd‑service in chronologische volgorde te bekijken.

Commando om synchronisatiestatus te controleren (ntpq -p)

Het ntpq -p‑commando wordt het meest gebruikt om te controleren of ntpd correct synchroniseert met NTP‑servers.

ntpq -p

Voorbeeldoutput:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.cloudflare. 172.64.250.202  2 u   57   64  377    0.876   -0.012   0.009
+ntp.ubuntu.com   170.247.169.130  2 u   49   64  377    1.234   +0.056   0.015
 stratum2.ntp.br 162.229.5.20    2 u   51   64  377  105.234   -0.123   0.021
 LOCAL(0)        .LOCL.         10 l   --   64    0    0.000    0.000   0.000

De betekenis van elke kolom is als volgt:

  • remote : De naam van de verbonden NTP‑server
  • st : Het stratum van de server (hiërarchisch niveau), waarbij 1 het meest nauwkeurig is (bijv. atoomklok)
  • reach : Een 8‑bit shift‑register dat de succesgeschiedenis van de laatste acht verbindingspogingen aangeeft
  • delay : De netwerkrondvertraging in milliseconden (ms)
  • offset : Het tijdsverschil tussen jouw systeem en de server in milliseconden (ms)
  • jitter : De statistische variantie van de offset over meerdere monsters

De server met een sterretje (*) aan het begin is de momenteel geselecteerde synchronisatiebron.

Veelvoorkomende fouten en hun oplossingen

Hier zijn enkele veelvoorkomende fouten die je kunt tegenkomen bij het implementeren van ntpd en hun bijbehorende oplossingen:

1. Niets wordt weergegeven met ntpq -p / reach is 0

  • Oorzaak : UDP‑poort 123 kan geblokkeerd zijn door een firewall of router.
  • Oplossing : Controleer de firewallinstellingen op zowel de server als de client om te verzekeren dat NTP‑verkeer is toegestaan.
    sudo ufw allow 123/udp
    

2. System clock not synchronized wordt weergegeven

  • Oorzaak : ntpd draait mogelijk niet, of er is een conflict met een andere synchronisatieservice (zoals systemd-timesyncd).
  • Oplossing : Schakel onnodige tijdsynchronisatieservices uit en herstart ntpd.
    sudo systemctl disable systemd-timesyncd
    sudo systemctl restart ntp
    

3. Kan NTP‑servernamen niet oplossen

  • Oorzaak : DNS‑configuratieproblemen of netwerkproblemen.
  • Oplossing : Controleer of naamresolutie werkt (bijv. met ping us.pool.ntp.org) en corrigeer indien nodig de DNS‑serverinstellingen.

4. Tijd wijkt sterk af maar synchroniseert niet

  • Oorzaak : ntpd past de tijd niet automatisch als het verschil te groot is (om veiligheidsredenen).
  • Oplossing : Stel handmatig de initiële tijd in en herstart vervolgens ntpd.
    sudo ntpd -gq  # Perform an immediate synchronization once
    sudo systemctl restart ntp
    

Voor continue bewaking

In een productieomgeving is het verstandig om een script in te stellen dat periodiek de output van ntpq -p logt en waarschuwingen genereert bij anomalieën. Het opmerken van plotselinge onderbrekingen in de logs of een consequent lage reach‑waarde kan helpen bij het vroegtijdig detecteren van problemen.

6. Vergelijking van ntpd met andere tijdsynchronisatietools

Belangrijkste tijdsynchronisatietools die in Ubuntu worden gebruikt

Er zijn verschillende tools beschikbaar voor tijdsynchronisatie in Ubuntu‑omgevingen. Elke tool heeft zijn eigen kenmerken, en de keuze hangt af van het beoogde gebruik en de systeemvereisten. De drie belangrijkste tools zijn:

  • ntpd (ntp‑pakket)
  • chrony
  • systemd-timesyncd

Het begrijpen van de verschillen tussen hen helpt u de optimale synchronisatiemethode voor uw omgeving te kiezen.

Kenmerken van ntpd

  • Voordelen
  • Al lang bestaand en stabiel met zeer hoge betrouwbaarheid.
  • Rijk aan functies en staat gedetailleerde configuratie toe (opzetten van een lokale NTP‑server, authenticatie, symmetrische modi, enz.).
  • Zeer compatibel met publieke NTP‑servers, met veel beschikbare probleemoplossingsinformatie.
  • Nadelen
  • De initiële synchronisatie na het opstarten kan soms even duren.
  • De aanpasbaarheid aan moderne netwerkomgevingen (virtualisatie, variabele netwerken) is enigszins lager.

Kenmerken van chrony

  • Voordelen
  • Snelle initiële synchronisatie, corrigeert tijdsverschillen snel na het opstarten.
  • Hoge nauwkeurigheid zelfs in virtuele machines en variabele netwerkomgevingen (laptops, VPN‑gebruik).
  • Autonome leermogelijkheden (verbeterde nauwkeurigheid op basis van omgevingscondities), vaak betere nauwkeurigheid dan ntpd.
  • Nadelen
  • Configuratie voor het functioneren als lokale NTP‑server is iets complexer.
  • Documentatie en voorbeelden zijn minder uitgebreid dan bij ntpd.

Kenmerken van systemd-timesyncd

  • Voordelen
  • Standaard ingeschakeld in Ubuntu 20.04 en later, zeer eenvoudig te installeren en te beheren.
  • Minimale synchronisatiefuncties met zeer laag resourceverbruik.
  • Goed geïntegreerd met systemd, waardoor het eenvoudig te gebruiken is met standaard Ubuntu‑configuraties.
  • Nadelen
  • Beperkte functionaliteit, kan niet worden gebruikt voor geavanceerde handmatige configuraties of als lokale NTP‑server.
  • Nauwkeurigheid en logboekfuncties zijn basaal, niet geschikt voor grootschalige systemen.

Vergelijkingstabel van tools (Samenvatting)

Featurentpdchronysystemd-timesyncd
AccuracyHighVery HighNormal
Initial Sync SpeedCan be slowVery FastNormal
Local NTP Server○ (Slightly complex)× (Not possible)
Configuration FlexibilityHighMediumLow
Adaptability to Virtual Environments
Proven Track Record & Information
Recommended Use CasesServers, organizational uniformityVirtual environments, laptopsSingle PCs, beginners

Aanbevelingen per gebruiksscenario

  • Servergebruik (vooral altijd‑aan omgevingen)ntpd of chrony worden aanbevolen. Stabiliteit en nauwkeurigheid zijn belangrijk.
  • Cloud‑omgevingen, virtuele machines, laptopschrony is het meest flexibel en nauwkeurig.
  • Eenvoudige tijdsynchronisatie voor één pcsystemd-timesyncd is voldoende.

7. Veelgestelde vragen (FAQ)

V1. Is ntpd standaard geïnstalleerd op Ubuntu 22.04?

A1.
Nee, ntpd is niet standaard geïnstalleerd op Ubuntu 22.04. systemd-timesyncd is standaard ingeschakeld voor basis tijdsynchronisatie. Om ntpd te gebruiken, moet je expliciet het ntp‑pakket installeren.

sudo apt install ntp

Na installatie wordt ook aanbevolen om systemd-timesyncd uit te schakelen om conflicten te voorkomen.

V2. ntpq -p wordt niet correct weergegeven. Wat moet ik doen?

A2.
Verschillende oorzaken kunnen dit veroorzaken:

  • Dienst draait niet : Controleer met sudo systemctl status ntp en start indien nodig.
  • Communicatie met NTP‑server mislukt : Controleer of uw firewall UDP‑poort 123 blokkeert.
  • Fouten in het configuratiebestand : Verifieer dat er geen typefouten in /etc/ntp.conf staan.

Controleer eerst de basiswerking met het volgende commando:

ntpq -p

Als de output leeg is of de reach‑waarde 0 is, kan er een probleem zijn met de communicatie met externe servers.

V3. Moet ik ntpd of chrony kiezen?

A3.
De beste tool hangt af van uw gebruiksomgeving:

  • Langdurige fysieke servers of het opzetten van een lokale NTP‑serverntpd wordt aanbevolen vanwege zijn stabiliteit.
  • Virtuele omgevingen, laptops of variabele netwerkomgevingen (Wi‑Fi, enz.)chrony biedt hogere nauwkeurigheid en snelheid.
  • Eenvoudige tijdsaanpassing is voldoendesystemd-timesyncd kan dit gemakkelijk afhandelen.

Q4. Wat doet het commando ntpd -gq?

A4.
ntpd -gq is een commando dat een eenmalige synchronisatie met de NTP‑server uitvoert en daarna onmiddellijk afsluit.

  • -g : Staat grote tijdsprongen toe om grote afwijkingen te corrigeren.
  • -q : Sluit af na één synchronisatie (draait niet als daemon).

Dit commando kan worden gebruikt om de juiste tijd initieel in te stellen als de systeemtijd sterk afwijkt en niet wordt gecorrigeerd door de reguliere ntpd‑service.

Q5. Zijn er voordelen aan het opgeven van meerdere NTP‑servers?

A5.
Ja, het opgeven van meerdere NTP‑servers biedt redundantie en verbetert de betrouwbaarheid. Als één server faalt of onbereikbaar wordt, kan uw systeem nog steeds tijdsinformatie van de andere servers verkrijgen, waardoor een stabiele synchronisatie wordt gegarandeerd.

Voorbeeldconfiguratie (/etc/ntp.conf):

server us.pool.ntp.org iburst
server time.google.com iburst
server ntp.cloudflare.com iburst

8. Conclusie: Verbeter de systeembetrouwbaarheid met stabiele tijdsynchronisatie

De voordelen van ntpd bevestigen

In Ubuntu‑systemen is nauwkeurige tijdsynchronisatie niet alleen een kwestie van gemak, maar een cruciaal element dat direct invloed heeft op beveiliging, probleemoplossing, logbeheer en de nauwkeurigheid van geautomatiseerde processen.

Dit artikel heeft uitgebreid de basisprincipes van NTP (Network Time Protocol) uitgelegd, het mechanisme van tijdsynchronisatie met ntpd, installatiemethoden, configuratie‑aanpassingen, verificatie van de werking, en zelfs vergelijkingen met andere tools.

Advies voor lezers

De keuze voor welk tijdsynchronisatietool u in Ubuntu gebruikt, hangt af van het doel van het systeem, de configuratie en de beschikbaarheidseisen.
Het principe dat “stabiele werking zonder nauwkeurige tijd onmogelijk is” geldt echter voor alle omgevingen.

  • Voor servergebruik en wanneer logbeheer belangrijk is → Configureer ntpd of chrony correct.
  • Voor eenvoudig gebruik op één pcsystemd-timesyncd biedt een eenvoudige implementatie.

De nauwkeurigheid van tijdsynchronisatie valt misschien niet op in de dagelijkse werking, maar zal ongetwijfeld dienen als een waardevol referentiepunt tijdens probleemoplossing.

We moedigen u aan dit artikel te gebruiken als leidraad om het optimale tijdsynchronisatiemechanisme voor uw Ubuntu‑omgeving in te stellen.

侍エンジニア塾