Nastavení serveru WireGuard v systému Linux (wg0, NAT, Peers)

12 min čtení - 22. června 2026

hero section cover
Obsah
  • Kdy použít server WireGuard
  • Nastavení serveru
  • Přidávání a odebírání peerů
  • Řešení problémů
  • Rotace klíčů a předem sdílené klíče
Sdílet

Praktické nastavení serveru WireGuard pro Linux: klíče, wg0.conf, NAT, správa peerů pomocí syncconf a příkazy pro řešení problémů, které správci systémů skutečně používají.

Spusťte server WireGuard, pokud chcete mít soukromý přístup k hostované infrastruktuře, aniž byste vystavovali administrátorské porty veřejnému internetu. Využívá autentizaci pomocí veřejného klíče, běží v jádře Linuxu od verze 5.6 a jakmile je spuštěn, nijak nezasahuje do provozu. Tento příspěvek se zabývá tím, kdy použít server WireGuard, jak jej zprovoznit wg0a jak zajistit každodenní fungování peerů.

Kdy použít server WireGuard

Většinu konfigurací pokrývají tři scénáře: vzdálený přístup, propojení mezi servery a směrování mezi lokalitami.

Pro vzdálený přístup spusťte server na VPS nebo dedikovaném hostiteli a směrujte administrátorský provoz přes tunel. Nastavte AllowedIPs na každém peeru na soukromou správní podsíť (například 10.0.0.0/24), aby tunelem procházel pouze provoz určený pro interní systémy. Veškerý ostatní provoz zůstává na lokálním připojení uživatele. Pokud se uživatelé připojují z domova nebo z mobilních sítí, přidejte PersistentKeepalive = 25 na straně klienta, aby nedocházelo k přerušení NAT relací.

U spojení mezi servery nechte AllowedIPs úzké. Obvykle stačí jedna /32 nebo malou backendovou podsíť. Tím se zabrání vtahování nesouvisejícího provozu do tunelu a zajistí se předvídatelné směrování.

U spojení typu site-to-site je to jiné. Hostitel WireGuard funguje jako brána mezi podsítěmi, takže musí být povoleno přesměrování IP a pravidla NAT musí odesílat zpětný provoz přes správné rozhraní.

VzorAllowedIPs rozsahNejvhodnějšíSložitost nastavení
Vzdálený přístupSoukromé podsítě, např. 10.0.0.0/24Přístup pro správce a vývojářeNízká
Mezi serveryKonkrétní IP adresy nebo backendová podsíťSpojení mezi hostiteli typu „bod-bod“Nízká až střední
Mezi lokalitamiCelá vzdálená LAN, např. /24Směrování typu brána-bránaStřední až vysoká
Přístup k soukromé služběPouze interní podsíť (split-tunnel)Izolace backendových služebStřední

Nastavení serveru

Server uchovává soukromý klíč, naslouchá na UDP 51820 a ukončuje tunel. Stejné základní nastavení funguje pro všechny tři výše uvedené vzory.

Klíče a wg0.conf

Vygenerujte pár klíčů pro server:

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Zabezpečte soukromý klíč:

sudo chmod 600 /etc/wireguard/server_private.key

Soukromý klíč zůstává na serveru. Veřejný klíč předáváte ostatním účastníkům.

Vytvořte /etc/wireguard/wg0.conf:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <PUBLIC_IFACE> -j MASQUERADE
 
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32

Najděte odchozí rozhraní, do kterého se má vložit <PUBLIC_IFACE> pomocí:

ip -o -4 route show to default | awk '{print $5}'

Přesměrování, firewall a NAT

Otevřete naslouchající port:

sudo ufw allow 51820/udp

Povolte přesměrování IP přidáním tohoto řádku do /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Použijte bez restartu:

sudo sysctl -p

Soubor PostUp a PostDown řádky v wg0.conf přidávají a odstraňují pravidlo NAT masquerade při spuštění nebo vypnutí rozhraní. Bez nich se zpětný provoz z LAN nikdy nedostane zpět k partnerovi.

Spuštění tunelu

wg-quick zajišťuje správu rozhraní, směrování a PostUp/PostDown hooky v jediném příkazu:

sudo wg-quick up wg0

Pro automatické spuštění po restartu povolte jednotku systemd:

sudo systemctl enable --now wg-quick@wg0

Zkontrolujte stav pomocí:

sudo wg show

Aktuální latest handshake řádek potvrzuje, že tunel funguje. Pokud vypadá zastarale nebo je prázdný, zkontrolujte firewall, klíče na obou stranách a nastavení protistrany AllowedIPs.

Přidávání a odebírání peerů

Každý peer potřebuje vlastní pár klíčů. Vygenerujte jej na klientovi a poté přidejte veřejný klíč peera do wg0.conf do nového [Peer] blok s AllowedIPs záznamem, který mu přiřadí IP adresu tunelu.

Použijte /32 pro jedno zařízení:

AllowedIPs = 10.8.0.3/32

Tím se zabrání tomu, aby jeden peer zabíral adresy přiřazené jinému. Pro přístup se split-tunelem uveďte pouze soukromé podsítě, které mají procházet tunelem, například AllowedIPs = 10.8.0.0/24.

Použijte změny konfigurace bez přerušení aktivních relací:

sudo wg syncconf wg0 <(wg-quick strip wg0)

Odstranění partnera funguje stejným způsobem. Odstraňte jeho [Peer] blok z wg0.conf a znovu spusťte syncconf znovu.

Řešení problémů

Pokud se peer připojí, ale nemůže se dostat k ničemu na druhé straně, příčinou je obvykle jedna ze čtyř možností:

  • Je vypnuté přesměrování IP
  • Chybí pravidlo NAT masquerade
  • Odchozí rozhraní v pravidle NAT je nesprávné
  • AllowedIPs neobsahuje cíl

Zkontrolujte přesměrování:

cat /proc/sys/net/ipv4/ip_forward

Mělo by vrátit 1. Pokud vrátí 0, změna v sysctl se neaplikovala nebo nebyla uložena.

Zkontrolujte pravidlo NAT a odchozí rozhraní:

sudo iptables -t nat -L POSTROUTING
ip route get 1.1.1.1

Druhý příkaz zobrazí skutečný název odchozího rozhraní, například ens3, enp1s0nebo eth0. Ten se musí shodovat s rozhraním v pravidle MASQUERADE.

Pokud chybí samotné navázání spojení, zkontrolujte, zda je port UDP 51820 je otevřený na firewallu i u všech poskytovatelů připojení a zda obě strany mají správný veřejný klíč pro druhou stranu.

U peerů za rezidenčním nebo mobilním NAT, který ukončuje neaktivní UDP relace, nastavte PersistentKeepalive = 25 na straně klienta.

Rotace klíčů a předem sdílené klíče

U tunelů, které zůstávají aktivní po celé měsíce, provádějte rotaci klíčů přibližně jednou ročně. Vygenerujte novou dvojici klíčů, aktualizujte oba konce a použijte příkaz wg syncconf. Nepoužívejte soukromý klíč opakovaně u dvou peerů. Vytváří to konflikty při směrování a narušuje přenos mezi nimi.

Chcete-li přidat další vrstvu k ověřování pomocí veřejného klíče, přidejte pro každého partnera předem sdílený klíč:

wg genpsk

Výsledek přidejte jako PresharedKey = <PSK> do [Peer] . WireGuard začlení PSK do handshake, takže útočník, který nějakým způsobem získá jeden z asymetrických klíčů, bez něj stále nebude schopen dešifrovat provoz.

Užitečné příkazy pro každodenní použití:

PříkazÚčel
wg showPartneři, handshake, počítadla provozu
wg show wg0 transferPočítadla bajtů pro wg0
wg show all dumpVýstup ve formátu zpracovatelném strojem pro monitorovací skripty
wg syncconf wg0 <(wg-quick strip wg0)Aplikovat změny konfigurace bez přerušení relací
wg genpskGenerování předem sdíleného klíče

Pokud potřebujete stabilní, veřejně dostupný hostitel pro ukončení tunelů WireGuard a směrování soukromého provozu do vaší infrastruktury, podívejte se na neomezené tarify VPS od FDC.

Blog

Tento týden byly představeny

Další články
Digitální únava očí: Jak chránit svůj zrak ve světě, kde trávíme mnoho času před obrazovkami

Digitální únava očí: Jak chránit svůj zrak ve světě, kde trávíme mnoho času před obrazovkami

Celý den zíráte do obrazovky? Naučte se, jak snížit digitální únavu očí pomocí osvědčených technik a nástrojů. Tento průvodce je nepostradatelný pro pracovníky na dálku, vývojáře a všechny, kdo se pohybují v oblasti technologií.

4 min čtení - 21. května 2025

Proč je důležité mít výkonný VPS s neomezeným datovým přenosem

8 min čtení - 9. května 2025

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení