NTP je zkratka pro National Time Protocol a používá se pro synchronizaci hodin mezi více počítači. Server NTP je zodpovědný za udržování sady počítačů ve vzájemné synchronizaci. V lokální síti by měl být server schopen udržet všechny klientské systémy v rozmezí jedné milisekundy od sebe navzájem.
Taková konfigurace by byla nezbytná, pokud by například systémy potřebovaly spustit nebo zastavit úlohu současně v přesný čas. V tomto článku vám ukážeme, jak nakonfigurovat server NTP na Ubuntu 20.04 Focal Fossa a jak nakonfigurovat klientský systém pro synchronizaci systémového času s uvedeným serverem.
V tomto tutoriálu se naučíte:
- Jak nainstalovat a nakonfigurovat server NTP
- Jak se připojit k serveru NTP z klientského počítače
Server NTP Ubuntu 20.04
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Nainstalováno Ubuntu 20.04 nebo upgradované Ubuntu 20.04 Focal Fossa |
Software | Démon serveru NTP |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Nainstalovat server NTP
Pro začátek musíme nainstalovat NTP server. Můžete tak učinit otevřením terminálu a zadáním následujícího příkazu:
$ sudo apt install ntp
Konfigurace serveru NTP
NTP server je již předkonfigurován s některými serverovými fondy, které můžete vidět v /etc/ntp.conf
soubor.
$ cat /etc/ntp.confVýchozí serverové fondy v našem konfiguračním souboru NTP
Obecně je nejlepší nahradit tyto řádky serverovými fondy z vaší země nebo alespoň vašeho kontinentu. Čím menší latence mezi vámi a časovým serverem, tím lépe. Web NTP Pool Project můžete použít k nalezení nejbližšího fondu NTP serverů k vašemu umístění.
Najděte své nejbližší serverové fondy na webu NTP Pool ProjectJakmile najdete nejrelevantnější zónu, vše, co musíte udělat, je přidat řádky do konfiguračního souboru pomocí nano nebo vašeho preferovaného textového editoru:
$ sudo nano /etc/ntp.confZadejte servery do konfiguračního souboru NTP
Jakmile provedete tyto změny, uložte a ukončete konfigurační soubor. Restartujte službu NTP, aby se změny projevily:
$ sudo systemctl restart ntp
Stav služby NTP můžete kdykoli zkontrolovat pomocí tohoto příkazu:
$ sudo systemctl status ntpStav démona serveru NTP
Klienti, kteří se pokoušejí připojit k vašemu serveru NTP, tak učiní na portu UDP 123
. Pokud máte ve svém systému povolenou bránu firewall UFW, nezapomeňte ji nakonfigurovat tak, aby povolovala tyto požadavky na příchozí připojení:
$ sudo ufw allow from any to any port 123 proto udp Rules updated Rules updated (v6)
Konfigurace klienta NTP
Nyní, když máme NTP server v provozu, ukážeme si, jak se k němu klientské systémy mohou připojit pro synchronizaci času. Na svých klientských systémech postupujte podle následujících kroků:
- Nejprve musíme nainstalovat
ntpdate
balík. Můžeme to použít k ověření konektivity mezi klientem a časovým serverem NTP, který jsme vytvořili.$ sudo apt install ntpdate
- Dále se pokusíme ručně synchronizovat náš systémový čas se serverem NTP. Zadejte následující příkaz a nahraďte IP adresu nebo název hostitele vašeho NTP serveru tam, kde je to vhodné:
$ sudo ntpdate 192.168.1.55
Připojení k serveru NTP bylo úspěšné - Zdá se, že to funguje tak, jak bychom očekávali. Dále nezapomeňte deaktivovat výchozí
timesyncd
Ubuntu služba, protože to bude v rozporu s našimi pokusy o synchronizaci se serverem NTP.$ sudo timedatectl set-ntp off
- Nyní potřebujeme nainstalovat démona NTP do našeho klientského systému, abychom jej mohli nakonfigurovat tak, aby stahoval čas z našeho NTP serveru, který jsme nastavili dříve.
$ sudo apt install ntp
- Potřebujeme přidat pouze jeden řádek do našeho
ntp.conf
soubor a můžeme to udělat velmi snadno pomocí jediného příkazu. Jen nezapomeňte nahradit IP adresu níže buď názvem hostitele nebo IP adresou vašeho NTP serveru.$ sudo bash -c "echo server 192.168.1.55 prefer iburst >> /etc/ntp.conf"
- Potom restartujte démona NTP:
$ sudo systemctl restart ntp
- Nakonec použijte
ntpq
příkaz k zobrazení fronty synchronizace času NTP:$ ntpq -p
Výstup z příkazu ntpqHvězdička
*
na obrázku výše ukazuje, že náš server NTP192.168.1.55
je vybrán jako aktuální zdroj synchronizace času. To by mělo zůstat, pokud NTP server nepřejde do režimu offline, protože tak jsme jej nakonfigurovali vntp.conf
konfigurační soubor.Přečtěte si níže uvedený dodatek pro více informací o tom, jak interpretovat
ntpq
výstup příkazu.
Příloha
Interpretace výstupu sloupce příkazu NTPQ :
- dálkové – Vzdálený server, se kterým chcete synchronizovat hodiny
- refid – Odchozí vrstva na vzdálený server. Pro servery vrstvy 1 to bude zdroj vrstvy 0.
- st – Úroveň vrstvy, 0 až 16.
- t – Typ připojení. Může být „u“ pro unicast nebo manycast, „b“ pro broadcast nebo multicast, „l“ pro místní referenční hodiny, „s“ pro symetrický peer, „A“ pro server manycast, „B“ pro broadcast server nebo „M“ pro multicast server
- kdy – Poslední čas, kdy byl server pro daný čas dotazován. Výchozí nastavení je sekund, nebo se zobrazí „m“ pro minuty, „h“ pro hodiny a „d“ pro dny.
- anketa – Jak často je server dotazován po dobu, minimálně 16 sekund až maximálně 36 hodin. Zobrazuje se také jako hodnota od mocniny dvou. Obvykle je to mezi 64 sekundami a 1024 sekundami.
- dosah – Toto je osmibitová osmibitová hodnota posunu vlevo, která ukazuje míru úspěšnosti a selhání komunikace se vzdáleným serverem. Úspěch znamená, že bit je nastaven, selhání znamená, že bit není nastaven. 377 je nejvyšší hodnota.
- zpoždění – Tato hodnota se zobrazuje v milisekundách a ukazuje dobu zpětné cesty (RTT) vašeho počítače komunikujícího se vzdáleným serverem.
- posun – Tato hodnota se zobrazuje v milisekundách pomocí středních mocnin a ukazuje, jak daleko jsou vaše hodiny od nahlášeného času, který vám server poskytl. Může být pozitivní nebo negativní.
- jitter – Toto číslo je absolutní hodnota v milisekundách, která ukazuje střední druhou mocninu odchylky vašich offsetů.
Interpretace výstupu příkazového řádku NTPQ :
- “ „ Zahozeno jako neplatné. Je možné, že nemůžete komunikovat se vzdáleným počítačem (není online), tento časový zdroj je „.LOCL“. zdroj času refid, je to server s vysokou vrstvou nebo vzdálený server používá tento počítač jako server NTP.
- x Zahozeno algoritmem křižovatky.
- . Zahozeno přetečením tabulky (nepoužito).
- – Zahozeno shlukovým algoritmem.
- + Zahrnuto v kombinačním algoritmu. Toto je dobrý kandidát, pokud je aktuální server, se kterým provádíme synchronizaci, z nějakého důvodu zahozen.
- # Dobrý vzdálený server pro použití jako alternativní záloha. Toto se zobrazí pouze v případě, že máte více než 10 vzdálených serverů.
- * Současný systémový kolega. Počítač používá tento vzdálený server jako zdroj času k synchronizaci hodin
- o Puls za sekundu (PPS) peer. To se obecně používá se zdroji času GPS, i když jakýkoli časový zdroj poskytující PPS bude stačit. Tento záznamový kód a předchozí záznamový kód „*“ se nebudou zobrazovat současně.
Ref:https://pthree.org/2013/11/05/real-life-ntp/
Závěr
V tomto článku jsme se dozvěděli o National Time Protocol (NTP) a jak nastavit náš vlastní NTP server na Ubuntu 20.04 Focal Fossa. Také jsme viděli, jak nakonfigurovat klientský počítač (nebo více počítačů, jak je obvykle zvykem) pro připojení k serveru NTP pro synchronizaci času.