NTP je síťový protokol používaný k synchronizaci všech systémových hodin v síti. To umožňuje všem systémům v síti mít stejný čas. NTP tak činí kontaktováním řady dalších časových serverů na internetu. NTP používá UDP port 123 ke komunikaci s klienty a dalšími NTP servery. V tomto příspěvku vám ukážeme, jak nakonfigurovat NTP server a klienta na systému Debian.
Pro ukázku jsme použili dva stroje Debian s následujícími detaily:
hostitel NTP – Název hostitele:ntp-host, statická IP adresa:192.168.72.158
Klient NTP – Název hostitele:klient, IP adresa:192.168.72.159
Poznámka :Zde uvedené kroky byly testovány na Debianu 10 (Buster).
Nainstalujte a nakonfigurujte NTP server na hostitelském počítači Debian
Pro instalaci a konfiguraci serveru NTP na Debianu 10 budete muset provést všechny kroky, které jsou uvedeny níže:
Krok 1:Spusťte aktualizaci Apt
Nejprve budete muset aktualizovat seznam balíčků, abyste si mohli stáhnout nejnovější verzi balíčku NTP. Otevřete Terminál a spusťte k tomu následující příkaz:
$ sudo apt update
Krok 2:Instalace NTP na hostitelský server
Chcete-li nainstalovat server NTP na hostitelský počítač, spusťte tento příkaz:
$ sudo apt install ntp
Po spuštění výše uvedeného příkazu můžete být dotázáni, zda chcete pokračovat v instalaci poskytnutím y/n možnost (ano/ne). Zadejte y pokračovat v procesu instalace.
Chcete-li ověřit, zda je nainstalován NTP, a zobrazit informace o verzi, spusťte následující příkaz:
$ sntp --version
Krok 3:Konfigurace serveru NTP
Chcete-li nakonfigurovat server NTP, musíte mít na svém hostitelském počítači dva prvky:jeden je /etc/ntp.conf soubor a druhý je ntpd démon. Nejprve nakonfigurujeme ntp.conf a poté restartujeme ntpd démon.
Upravte soubor /etc/ntp.conf soubor pomocí následujícího příkazu:
$ sudo nano /etc/ntp.conf
Když je server NTP nainstalován, je ve výchozím nastavení nakonfigurován tak, aby načítal čas z následujících serverů:
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst pool 2.debian.pool.ntp.org iburst pool 3.debian.pool.ntp.org iburst
Můžete je nahradit časovými servery, které jsou nejblíže vaší poloze. Navštivte web ntp.org a najděte servery fondu NTP, které jsou nejblíže vašemu umístění.
Chcete-li použít jakýkoli konkrétní server fondu NTP, budete je muset přidat do ntp.conf soubor. Chystáme se přidat servery pro fondy pro oblast Asie, která je zobrazena následovně:
V souboru ntp.conf soubor, nahraďte výchozí seznam fondů následujícími řádky:
server 0.asia.pool.ntp.org server 1.asia.pool.ntp.org server 2.asia.pool.ntp.org server 3.asia.pool.ntp.org
Poté uložte a zavřete ntp.conf soubor.
Krok 4:Restartujte démona NTP
Nyní byste měli restartovat démona NTP. K tomu použijte následující příkaz:
$ sudo service ntp restart
Nyní spusťte následující příkaz a zkontrolujte, zda server NTP běží bez problémů:
$ sudo service ntp status
Krok 5:Povolte NTP přes bránu firewall
Pokud používáte bránu firewall, budete ji muset nakonfigurovat tak, aby umožňovala připojení UDP k portu NTP 123. Spuštěním následujícího příkazu povolte klientům přístup k serveru NTP:
$ sudo ufw allow 123/udp
Nyní spusťte následující příkaz a ověřte, zda bylo pravidlo úspěšně přidáno:
$ sudo ufw status
Nainstalujte a nakonfigurujte klienta NTP na klientském počítači Debian
Chcete-li nakonfigurovat počítač jako klienta NTP, budete muset zajistit, aby posun (časový rozdíl mezi místními hodinami a serverem NTP) nebyl větší než 1024 sekund. Pokud je posun větší než tato hodnota, zdroj času bude považován za nepřesný. Z tohoto důvodu se nejprve pokusíme ručně synchronizovat NTP klienta s NTP serverem pomocí ntpdate. Pokud je hodnota offsetu kratší než 1024 sekund, nakonfigurujeme soubor ntpd.conf pro automatickou synchronizaci.
Krok 1:Synchronizace klienta NTP se serverem NTP ručně pomocí ntpdate
Ntpdate se používá k jednorázové synchronizaci času NTP klienta s NTP serverem. Chcete-li jej nainstalovat na klientský počítač, použijte následující příkaz:
$ sudo apt install ntpdate
Po spuštění výše uvedeného příkazu můžete být dotázáni, zda chcete pokračovat v instalaci poskytnutím y/n možnost (ano/ne). Zadejte y pokračovat v procesu instalace.
Nyní pomocí následujícího příkazu ručně synchronizujte klienta NTP se serverem NTP:
$ sudo ntpdate <ntp-server-hostname/ip>
V našem scénáři by to bylo:
$ sudo ntpdate 192.168.72.158
Výstup ntpdate příkaz zobrazí hodnotu offsetu (časový rozdíl mezi místními hodinami a NTP serverem). V našem příkladu je hodnota offsetu 0,054776 s, což je mnohem méně. Nyní tedy můžeme nakonfigurovat ntp.conf pro automatickou synchronizaci času s naším NTP serverem.
Krok 2:Konfigurace hostitelského souboru
Přidejte následující položku názvu hostitele do /etc/hosts soubor klientského počítače. Tento krok je vyžadován k překladu serveru NTP prostřednictvím názvu hostitele.
<ntp-server-hostname> <ntp-server-ip>
Nezapomeňte nahradit ntp-server-hostname a ntp-server-ip s názvem hostitele a IP adresou vašeho NTP. V našem scénáři by to bylo:
192.168.72.158 ntp-host
Krok 3:Zakažte démona systemd timesyncd
Když se chystáme nastavit NTP, vypněte systemd timesyncd démon. Použijte k tomu následující příkaz:
$ sudo timedatectl set-ntp off
Krok 4:Automatická synchronizace klienta NTP se serverem NTP pomocí konfiguračního souboru NTP
Nyní nakonfigurujeme náš klientský počítač tak, aby se automaticky synchronizoval se serverem NTP. Z tohoto důvodu nainstalujeme NTP pomocí následujícího příkazu na klientský systém:
$ sudo apt install ntp
Po spuštění výše uvedeného příkazu můžete být dotázáni, zda chcete pokračovat v instalaci poskytnutím y/n možnost (ano/ne). Zadejte y pokračovat v procesu instalace. Po dokončení instalace nakonfigurujte ntp.conf soubor.
Spusťte následující příkaz pro úpravu souboru ntp.conf:
$ sudo nano /etc/ntp.conf
Do souboru vložte následující řádek:
server <ntp-server-hostname/ip> prefer iburst
V našem scénáři by to bylo:
server 192.168.72.158 prefer iburst
Ve výše uvedeném řádku preferujte se používá k označení určeného serveru jako preferovaného serveru pro synchronizaci NTP. Kde je iburst se používá k odeslání šesti paketů k synchronizaci místo obvyklého jednoho (v případě, že je NTP server nedostupný).
Nyní restartujte démona NTP, abyste použili změny konfigurace:
$ sudo service ntp restart
Zkontrolujte stav synchronizace NTP
Chcete-li nyní zkontrolovat, zda NTP funguje správně, spusťte následující příkaz:
$ ntpq -p
Zde je výstup výše uvedeného příkazu, kde remote je název hostitele serveru NTP a refid je server nejvyšší úrovně, ke kterému se náš server NTP sám připojil za účelem synchronizace.
To je vše, co k tomu patří! V dnešním příspěvku jsme vám ukázali, jak nakonfigurovat NTP server na Debianu 10. Poté jsme vysvětlili, jak nakonfigurovat NTP klienta na jiném počítači Debianu a synchronizovat jej s NTP serverem. Dodržením všech jednoduchých kroků vysvětlených výše můžete snadno synchronizovat všechny systémové hodiny v síti.
Možná budete chtít navštívit náš příspěvek Jak nakonfigurovat NTP server a klienta na Ubuntu 20.04 LTS.