Skip to main content

Instalace a konfigurace NTP serveru v Dockeru (2025 Update)


Tento návod slouží k nastavení vlastního časového serveru, který bude synchronizovat čas z autoritativních českých zdrojů a poskytovat jej klientům v lokální síti (např. Windows 11).

 

Krok 1: Vytvoření adresářů a nastavení práv

 

Začněte tím, že vytvoříte adresář pro konfigurační soubor NTP serveru na vašem hostitelském systému:

sudo mkdir -p /opt/ntpntp/data
sudo chown -R 1000:1000 /opt/ntp

TentoPopis: adresářVytvoříme budesložku obsahovat/opt/ntp pro konfigurační soubor NTP,a podadresář /data pro soubor ntp.drift, který kontejneruchovává budeinformace používat.o stabilitě hodin.

 

Krok 2: Vytvoření konfiguračního souboru ntp.conf

Vytvořte vlastní konfigurační soubor NTP. Otevřete soubor pro úpravy pomocí editoru:

sudo nano /opt/ntp/ntp.conf

Do souboru vložte následující konfiguraci, která nastaví české NTP servery:

# ==========================================================--- ZDROJE ČASU ---
# KONFIGURACE NTP SERVERU (ntp.zelina.eu / ntp.mersl.eu)
# ==========================================================

# 1. NADŘAZENÉ ČESKÉ SERVERY (Zdroje času)
# Používáme iburst prozajistí, bleskovouže synchronizacise server synchronizuje ihned po startu.startu
server cz.pool.ntp.org iburst
server ntp.nic.cz iburst
server ntp.cesnet.cz iburst
server time.mff.cuni.cz iburst

# 2.--- LOKÁLNÍ ZÁLOŽNÍZÁLOHA HODINY---
# Pokud vypadne internet, server budepoužije brátvnitřní čashodiny z hostitelského systému.hostitele.
# Fudge stratumStratum 10 zajistí, že setato lokálnízáloha čas použijenejnižší jen jako poslední záchrana.prioritu.
server 127.127.1.0
fudge 127.127.1.0 stratum 10

# 3.--- SOUBORYSOUBOR PRO STABILITU ---
# DriftfileZde sise ukládá odchylkydrift v(odchylka) taktukrystalových procesoruhodin pro vyšší přesnost.
driftfile /var/lib/ntp/ntp.drift

# 4.--- BEZPEČNOSTZABEZPEČENÍ A PŘÍSTUPOVÁPŘÍSTUP PRÁVA---
# Výchozí nastavení:pravidlo: zakázat vše kromě odpovídáníodpovědí na dotazy.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# Povolit plnýplnou přístupkomunikaci pro lokální smyčkulocalhost (localhost)vnitřní potřeby kontejneru).
restrict 127.0.0.1
restrict ::1

# KLÍČOVÝPOVOLENÍ BOD:PRO PovoleníKLIENTY: proZde vašemusíte Windowspovolit vsvou lokální síti.síť.
# Bez tohoto řádku uvidí Windows 11 chybu nebo "Stratum 0" nebo "Access Denied".
# Rozsah 192.168.0.0/16 pokrývá celou vaši domácí síť.
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

Tento soubor specifikuje 4 české NTP servery a obsahuje základní bezpečnostní omezení.

 

Krok 3: Vytvoření docker-compose.yml souboru

Vytvořte docker-compose.yml soubor v adresáři, kde chcete spravovat NTP stack. Například v /opt/ntp/.

Obsah souboru:

version: '3.8'

services:
  ntp:
    # Oficiální a lehký obraz NTP serveru
    image: cturra/ntp:latest
    container_name: ntp-server
    # Zajišťuje, že se server spustí po pádu nebo restartu celého stroje
    restart: unless-stopped

    # KLÍČOVÉ--- NASTAVENÍZÁSADNÍ OPRAVY PRO FUNKČNOST:SYNCHRONIZACI ---
    # Privilegedprivileged: true dává kontejneru právo měnit systémový čas hostitele.
    # Bez tohototoho by serverv hlásillogu byla chyba "Could not step system clock".
    privileged: true
    # Přidává specifickou schopnost pro správu času (pojistka k privileged)
    cap_add:
      - SYS_TIME

    # NTP komunikujeběží výhradně přesna UDP portportu 123123.
    ports:
      - "123:123/udp"

    # Nastavení prostředí

    environment:
      - TZ=Europe/Prague # NastavíNastavení vnitřníčasové časzóny kontejnerupro nasprávné český

    # Propojení souborů mezi Linuxem a kontejneremlogování.

    volumes:
      # Synchronizace časové zónyčasu s hostitelskýmLinux systémemhostitelem.
      - /etc/localtime:/etc/localtime:ro
      # VÁŠ HLAVNÍ KONFIGURAČNÍ SOUBOR (podleMapování vašeho umístění v /opt/ntp)
      # :ro znamená "read-only"ntp.conf (pouze pro čtení), aby kontejner soubor nechtěně nezměnil.
      - /opt/ntp/ntp.conf:/etc/ntp.conf:ro
      # DOPORUČENÉ:Mapování Ukládánídatové složky pro uchování ntp.drift souboru (stability času) na disk hostitele
      # Pokud tento adresář neexistuje, Docker ho vytvoří automatickysouboru.
      - /opt/ntp/data:/var/lib/ntp

    # Doporučujeme nepoužívat složité sítě, pokud to není nutné.
    # Výchozí bridge síť je pro NTP nejstabilnější.

 

Krok 4: Spuštění kontejneru

Update the stack

Krok 5: Ověření funkčnosti NTP serveru

 

Po spuštění kontejneru můžete ověřit funkčnost NTP serveru pomocí následujících kroků:

Použijte příkaz chronyc tracking: Tento příkaz vám poskytne informace o aktuálním zdroji synchronizace a odchylkách:

chronyc tracking

Připojte se do kontejneru:

docker exec -it ntp-server /bin/sh

Zkontrolujte stav NTP synchronizace:

chronyc sources

Tento příkaz zobrazí seznam NTP serverů, ke kterým je váš NTP server připojen, a ukáže odchylky v čase.

exit

 

Krok 6: Testování přesnosti NTP serveru

 

Testování přesnosti můžete provést příkazem:

sudo ntpdate -q ntp.zelina.eu

Tento příkaz zobrazí odchylky a stav připojení k NTP serveru.

Krok 7: Nastavení NTP serveru na Windows 11

 

  1. Otevřete Ovládací panelyHodiny a oblastDatum a časInternetový čas.
  2. Klikněte na Změnit nastavení a zadejte svůj NTP server:

    ntp.zelina.eu

Klikněte na Aktualizovat nyní pro okamžitou synchronizaci času.

Krok 8: Ověření synchronizace na Windows 11

 

Na Windows 11 můžete ověřit stav synchronizace času příkazem v příkazovém řádku:

w32tm /query /status

🛠️ 1. Spusť CMD jako správce

 

Stiskni Start → napiš cmd → pravým klikem → Spustit jako správce.

net stop w32time

⚙️ 3. Nastav tvůj vlastní NTP server

w32tm /config /manualpeerlist:"ntp.zelina.eu" /syncfromflags:manual /reliable:YES /update

▶️ 4. Spusť časovou službu

net start w32time

🔁 5. Proveď okamžitou synchronizaci

w32tm /resync

6. Ověř stav a zdroj

 

w32tm /query /status
w32tm /query /source


6. Časový script pro windows

🔁 Použití:

  1. Spusť CMD jako správce

  2. Vlož celý blok výše a stiskni Enter

@echo off
echo === Zastavuji casovou sluzbu...
net stop w32time

echo === Nastavuji vlastni NTP server: ntp.zelina.eu
w32tm /config /manualpeerlist:"ntp.zelina.eu" /syncfromflags:manual /reliable:YES /update

echo === Spoustim casovou sluzbu...
net start w32time

echo === Provadim okamzitou synchronizaci...
w32tm /resync

echo === Overuji stav sluzby...
w32tm /query /status
w32tm /query /source

echo === Hotovo.

Tento příkaz ukáže aktuální stav synchronizace, včetně odchylky času a serveru, se kterým je systém synchronizován.

Tímto máte plně funkční NTP server, konfigurovaný pro co nejpřesnější české servery, a nastavený k použití na Windows 11.