Što i zašto
Posljednji tjedan na TechPrognozi dotaknuli smo se Home Assistant na N100 serveru, Frigate NVR-a, Immicha za fotografije i Vaultwarden password managera. Svi ti servisi imaju zajednički nedostatak: ako želite pristup van kuće, morate ih izložiti internetu.
A izlažu internetu su tri loša načina:
- Port forwarding na ruteru — direktno otvarate
443prema kućnoj LAN-i. Bot-skeneri vas pronađu za < 1 sat. Single CVE u Vaultwardenu/Frigateu i napadač je u vašoj mreži. - Dyno DNS + Cloudflare Tunnel — bolje od port forwardinga, ali Cloudflare vidi cijeli HTTPS promet (TLS terminacija na njihovoj strani). Privatnost? Manja.
- Apache reverse proxy + Let's Encrypt + basic auth — funkcionalno ali ostavlja vas izložene 0-day napadima na Apache i otvara DDoS surface.
Bolji pristup u 2026.: postavite WireGuard ili Tailscale između vaših uređaja i homelaba, i ne izlažite NIŠTA javno na internetu osim VPN porta. Telefon, laptop, work-laptop dolaze preko šifrirane VPN cijevi i pristupaju homelab servisima kao da su na lokalnoj mreži.
Brza razlika: WireGuard vs Tailscale
| Karakteristika | WireGuard (čisti) | Tailscale |
|---|---|---|
| Open source | Da (GPLv2, kernel modul) | Klijent da, koordinator ne |
| Cijena | 0 EUR | 0 EUR (osobno), 6 USD/mj per user (poslovno) |
| Setup složenost | Srednje-visoka | Niska |
| NAT/CGNAT traversal | Ručno (port forward) | Automatski (DERP relay) |
| Mobile app | Da, official | Da, izvrsna |
| MagicDNS | Ne (manuelno) | Da (TS-DNS, hostname-based) |
| Mesh ili hub-and-spoke | Hub-and-spoke uobičajen | Mesh (P2P između peer-ova) |
| Coordinator | Vaš ručno | Tailscale Inc. (ili Headscale) |
| Trošak za 5 uređaja | 0 EUR | 0 EUR |
| Trošak za 100 uređaja | 0 EUR | 0 EUR (osobni plan) |
| Ovisnost o cloud servisu | Nikakva | Tailscale.com (login + DERP) |
| Vrijeme do prvog peera | 30–60 min (početnik) | 5 min |
WireGuard — minimalan, brz, ali ručan
WireGuard je VPN protokol koji je 2020. ušao u Linux kernel kao prvi novi VPN module u dvije dekade. Zamjena za bloated OpenVPN (200k+ linija C koda, ranjivosti svake druge godine) i stari IPSec (komplicirano kao ničija stvar). WireGuard je oko 4000 linija C koda, prošao je javni cryptographic audit (Trail of Bits, 2020.), i koristi moderne primitive (ChaCha20, Poly1305, Curve25519, BLAKE2s).
Kako WireGuard radi (mentalni model)
- Svaki uređaj ima par ključeva (privatni + javni, kao SSH)
- Konfiguracijska datoteka sadrži moj privatni ključ + popis peer-ova s njihovim javnim ključevima
- Promet se šifrira end-to-end između peer-ova — server u sredini je samo "router" koji ne može dekriptirati
- Zato se i mora ručno upisati svaki peer u svaku konfiguraciju (mesh) ili jedan server kao "hub" (hub-and-spoke)
Setup primjer: WireGuard hub na N100 serveru
# 1. Instalacija (Ubuntu 24.04 ili Debian 12)
sudo apt install wireguard wireguard-tools qrencode
# 2. Generiraj ključeve za server
cd /etc/wireguard
sudo umask 077
sudo wg genkey | tee server.key | wg pubkey > server.pub
# 3. /etc/wireguard/wg0.conf na serveru
sudo tee /etc/wireguard/wg0.conf > /dev/null <<EOF
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = $(cat server.key)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer] # mobitel-toni
PublicKey = AbCdEf12...=
AllowedIPs = 10.10.0.2/32
[Peer] # laptop-toni
PublicKey = XyZ123...=
AllowedIPs = 10.10.0.3/32
EOF
# 4. Pokreni
sudo systemctl enable --now wg-quick@wg0
Na ruteru otvarate UDP 51820 prema serveru (to je jedini izloženi port). WireGuard ne odgovara na promet bez važećeg krpto-handshakea — port-scaneri ga ne vide. To je "stealth" karakteristika koju OpenVPN nema.
Konfiguracija klijenta (mobitel)
[Interface]
PrivateKey = mobitel.privatni.kljuc=
Address = 10.10.0.2/32
DNS = 10.10.0.1 # rute kroz Pi-hole / AdGuard Home na serveru
[Peer]
PublicKey = server.javni.kljuc=
Endpoint = vase-ime.ddns.net:51820
AllowedIPs = 10.10.0.0/24, 192.168.1.0/24 # samo homelab promet kroz VPN
PersistentKeepalive = 25 # za mobitele iza CGNAT-a
Posljednji red — AllowedIPs — je ključ. Ako stavite 0.0.0.0/0, sav internet promet ide kroz VPN (full tunnel — radi za privatnost, ali pogađa baterija + brzina). Ako stavite samo svoje LAN i WireGuard subnet, samo homelab promet ide kroz VPN (split tunnel) — Netflix, Spotify, brave-browser-ovi sve direktno.
Brzo dodavanje peer-a kroz QR kod
wg genkey | tee mobitel.key | wg pubkey > mobitel.pub
qrencode -t ansiutf8 < mobitel.conf
Skenirate QR kod s WireGuard official mobile app i to je to.
Gdje WireGuard puca
- NAT/CGNAT traversal je vaš problem. Ako vam ISP ne daje statički IP (T-com mobilni operater u HR npr. = CGNAT), trebate VPS u sredini ili Tailscale.
- Dinamički IP = morate koristiti DDNS (No-IP, DuckDNS, vlastiti CNAME). Ako vam IP padne na 10 min, klijenti se sami restartaju kad ConnectivityChange, ali dok DDNS update ne propagira (TTL), ne radi.
- MagicDNS-ekvivalent ne postoji. Morate ručno koristiti IP adrese (
10.10.0.1,10.10.0.2) ili napraviti vlastiti DNS na hubu. - Sve ručno. Novi laptop = generiraj ključeve, doadj u server config, restartaj wg, slanje konfiguracije. Tailscale to čini u 30 sekundi.
Tailscale — WireGuard pod haubom, ali sve automatizirano
Tailscale je proizvod tvrtke Tailscale Inc. (osnivači: Crawford Currie, Avery Pennarun — bivši Google, CoreOS), koji gradi mesh mrežu na vrh WireGuard protokola. Glavna magija: koordinacija ključeva, NAT traversal, MagicDNS, ACL — sve preko cloud kontrolne ravnine.
Što Tailscale radi za vas
- Login s Google/Microsoft/GitHub/Apple ID-em — nema VPN passworda, nema certifikata. SSO je auth.
- Automatska razmjena ključeva — Tailscale koordinator vidi sve javne ključeve, ali ne i privatne. Privatni ostaju na svakom uređaju. Tailscale ne može dekriptirati promet između vaših peer-ova.
- DERP relay servere u 22 lokacije svijetom (Frankfurt, Amsterdam, Beč najbliži HR) — koriste se samo ako P2P NAT traversal ne uspije.
- MagicDNS — pristupate svojim uređajima imenom:
homeassistant.crow-rabbit.ts.net,vaultwarden.crow-rabbit.ts.net. Bez/etc/hostszafrkavanja. - Subnet routing — jedan uređaj može "predstaviti" cijeli LAN drugim peer-ovima (npr. N100 server izloži cijeli 192.168.1.0/24 vašem mobitelu).
- Exit nodes — bilo koji peer može biti "default gateway" za bilo kojeg drugog peera (poslovica: "moj laptop u Norveškoj prikaze TV iz CRO Netflixa preko Tailscale exit node na mom homelabu").
Tailscale brzi setup
# Na N100 serveru (Ubuntu)
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --advertise-routes=192.168.1.0/24 --advertise-exit-node
# Na mobitelu / laptopu / drugom uređaju
# Instalirate Tailscale app, ulogirate se istim Google računom
# I to je to.
Tailscale autocoordinator vam pošalje uređaje, oni razmijene ključeve, NAT traversal radi P2P kad može (UDP hole punching), DERP relay kad ne.
Headscale — Tailscale bez Tailscale Inc.
Ako vam smeta da Tailscale Inc. servera koordinira vaše ključeve, postoji Headscale — open-source reimplementacija Tailscale kontrolne ravnine. Vi je hostate.
# /opt/headscale/docker-compose.yml
services:
headscale:
image: headscale/headscale:0.26
container_name: headscale
restart: always
command: serve
volumes:
- ./config:/etc/headscale
- ./data:/var/lib/headscale
ports:
- "127.0.0.1:8080:8080"
- "127.0.0.1:9090:9090"
Klijenti se onda u tailscale up parametrima preusmjere na vaš Headscale URL (--login-server https://headscale.vasdom.hr). Sve ostalo radi isto — MagicDNS, ACL, mesh.
Tko treba Headscale? Vrlo paranoidni ljudi i firme s GDPR-strogim policy-em. Za 99 % homelab korisnika, original Tailscale (besplatni Personal plan, do 100 uređaja) je dovoljan.
Realan TCO za 5 godina, 5 uređaja
| Komponenta | WireGuard čisti (na N100) | Tailscale Personal | Headscale na N100 |
|---|---|---|---|
| Software | 0 EUR | 0 EUR | 0 EUR |
| Dynamic DNS (DuckDNS / No-IP) | 0 EUR | nije potrebno | 0 EUR (vlastita domena) |
| Domena (.hr) | 17 EUR/god (za DDNS subdomenu) | 0 EUR | 17 EUR/god |
| VPS za NAT traversal (ako CGNAT) | 4 EUR/mj (Hetzner CX22) | 0 EUR (DERP free) | 4 EUR/mj (mora biti javan) |
| 5-godišnji ukupni trošak | 240 EUR (samo VPS) | 0 EUR | 240 EUR (VPS) + 85 EUR (.hr) = 325 EUR |
Tailscale je u lijenom slučaju jeftiniji, što je counter-intuitivno za open-source enthusiast. Razlog: DERP relay je infrastruktura koju oni plaćaju.
Sigurnosne preporuke (oba rješenja)
- Nikad ne izložite SSH (port 22) na javni IP. Pristupajte SSH-om samo unutar VPN-a. Bot-scani na port 22 = stotine napada svake minute.
- Promijenite default WireGuard port (51820) na nešto random (npr. 41934) — ne sprečava napadače ali smanjuje "noise".
- Tailscale ACL-ovi (
acl.hujsonna admin panelu): podijelite uređaje u grupe (group:family,group:work), dozvolite samo potrebno (laptop-rad → samo servis-A na N100, ne cijeli LAN). - MFA na Tailscale account (Google/MS SSO automatski to čini ako imate).
- Audit logging: Tailscale admin panel ima "Connection log" — pregledajte mjesečno za nepoznate uređaje. Headscale ima
headscale users list+headscale nodes list. - Pi-hole/AdGuard Home unutar VPN-a kao DNS — sva DNS upiti vaših uređaja idu kroz vaše filtere, ne kroz T-com/A1 dns (ili kako god ISP-a).
Preporuka po profilu korisnika
| Profil | Preporuka |
|---|---|
| Početnik u homelabu, želim "samo da radi" | Tailscale Personal |
| Imam statičnu IP adresu kod ISP-a (A1 statički, M+statička) | WireGuard čisti |
| Imam mobilni ISP / CGNAT (T-mobile mobilni LTE/5G) | Tailscale Personal |
| Privacy maksimalist, sumnjam Tailscale Inc. | Headscale na vlastitom VPS-u |
| Mali tim 3–10 ljudi koji dijele homelab | Tailscale Personal (do 100 uređaja) |
| Firma > 10 ljudi, treba SCIM, audit, RBAC | Tailscale Business (6 USD/mj per user) |
5 najčešćih grešaka
AllowedIPs = 0.0.0.0/0na mobitelu bez split-tunnel namjere. Battery drain + slower Spotify + (na nekim mobilnim ISP) gubitak signala jer ne ide kroz njihove relay-e.- Otvore port 22 na ruteru "samo na 5 min". I zaborave zatvoriti. Bot-skeneri pamte.
- Nemaju MFA na Tailscale account. Google account hack = napadač dobije pristup cijelom homelabu.
- Koriste isti WireGuard ključ na više uređaja. Ako jedan curi, svi curu. Svaki uređaj vlastiti par ključeva, uvijek.
- Zaborave
PersistentKeepalive = 25na mobilnom WireGuard klijentu. Mobilni NAT zatvori sesiju nakon 1–2 min neaktivnosti, peer postaje "unreachable" dok ne pošaljete promet. Keepalive svake 25s drži cijev otvorenu.
Zaključak
- Tailscale = "Apple iCloud za VPN": lijepo, lijeno, radi out-of-the-box, ali ovisite o tvrtki.
- WireGuard = "Linux iz 1995.": cijela sloboda, cijela odgovornost, najveći payoff za onoga koji uloži vrijeme.
- Headscale = "imate kolač i pojedete ga" — Tailscale UX, vlastiti coordinator, dvostruko više posla setupa.
Za 90 % čitatelja TechPrognoze — Tailscale Personal je pravi odgovor. Otvorite homelab WireGuard config tek kad vam Tailscale počne smetati zbog principa. Većini ne smeta.
Povezani članci
- Kućni Linux server na Intel N100 2026.
- Vaultwarden vs Bitwarden vs 1Password 2026.
- Frigate NVR za homelab 2026.
- Vlastiti NAS vodič 2026.
- Kako sigurno koristiti javni Wi-Fi 2026.
Cijene VPS-a i domena vrijede svibanj 2026. (Hetzner Cloud CX22 EU, Cloudflare/Namecheap domain registrar). Tailscale i Headscale projekti su trgovinske marke svojih nositelja. Članak nije sponzoriran.