Server & síť/Tailscale

Domů odkudkoli, bez otevřeného portu.

Mobil, počítač a server se vidí, ať jsem kdekoli. Na routeru není otevřený jediný port. Veřejný web jde jinudy a domácí síť vidí jen moje zařízení.

běží od srpna 2026Server & síť · díl 3Návod pro AI agenta

K čemu to je

Soukromá síť mezi mými zařízeními

Tailscale je VPN, ale jiná, než na jakou jsi zvyklý. Není to jeden server, ke kterému se všichni připojují. Každé moje zařízení dostane vlastní adresu v rozsahu VPN a mluví s ostatními napřímo, šifrovaně přes WireGuard. Firma Tailscale jen pomůže zařízením se najít. Samotný provoz přes ni neteče.

Klasická cesta domů je otevřít port na routeru a doufat. Tím vystavíš službu celému internetu a musíš ji hlídat. Tady se naopak nic neotevírá. Server se sám přihlásí ven a čeká na zařízení, která znají jeho klíč. Pro všechny ostatní neexistuje.

Lidsky řečeno: moje zařízení jsou pořád v jednom bytě, i když sedím v tramvaji.

Proč

Přestalo mi stačit ovládat světla

Home Assistant jsem zvenku ovládal přes placený cloud výrobce. Fungovalo to, ale jen pro Home Assistant. Na server, na admin rozhraní ani na vlastní DNS jsem se zvenku nedostal vůbec.

Otevřít port jsem nechtěl. Domácí adresa by byla na očích a každou službu bych musel zabezpečit zvlášť. Chtěl jsem jednu bránu, kterou vidí jen moje zařízení, a zbytek nechat zavřený.

Jak to funguje

Jedna brána a pravidla, kdo smí dál

žádný port otevřený zvenku Mobil venkumobilní data TailscaleWireGuard · šifrováno Server domasubnet router pravidla Domácí síť Home Assistant Router AdGuard DNS jen ven Cloudflare Tunnelodchozí spojení Veřejný webkdokoli z internetu
  • Server dělá subnet router. Inzeruje domácí síť do VPN. Z mobilu venku se dostanu na Home Assistant, router i AdGuard, jako bych seděl doma.
  • Pravidla říkají, kdo smí do domácí sítě. Všechna zařízení se vidí navzájem. Do domácí sítě přes server smí jen počítač a mobil, nic dalšího.
  • DNS jde přes VPN na AdGuard. Mobil venku má stejný filtr jako doma. Reklamy a telemetrie padají i na mobilních datech.
  • SSH poslouchá jen na VPN adrese. Z domácí sítě ani z internetu se k němu nikdo nedostane. Veřejný web běží zvlášť přes Cloudflare Tunnel, ten také nic neotevírá.

Co jsem zjistil

Co se ukázalo

4

Zařízení v síti

Server, počítač, mobil a Home Assistant. Ten má vlastního klienta, protože běží na jiném stroji než server.

2

Smí do domácí sítě

Jen počítač a mobil. Když se některé ztratí, smažu ho v konzoli a přístup končí. Ostatní vidí jen sebe navzájem.

0

Portů otevřených zvenku

Server se připojuje ven, nic nečeká na příchozí spojení. Audit po nastavení to potvrdil: bez exit node, bez veřejného sdílení.

Co jsem se naučil

Tři věci, které v návodech nejsou

01

SNAT schoval, kdo se ptá

V logu AdGuardu se všechny dotazy z VPN slévaly do jedné adresy. Dva dny jsem podezříval Docker. Mohl za to překlad adres v Tailscale, který provoz z VPN maskuje za server. Po vypnutí vidím každé zařízení jménem.

02

Zařízení s vlastním Tailscale neodpoví na domácí adresu

Home Assistant má vlastního klienta. Když na něj z VPN jdu přes domácí adresu, paket dojde, ale odpověď se vydá jinou cestou a zahodí se. Z VPN na něj chodím jeho VPN adresou.

03

Routa musí být schválená v konzoli

Server inzeroval domácí síť už dřív, ale v konzoli jsem ji nikdy nepotvrdil. Štítek Subnets svítil žlutě a z mobilu šel jen server. Jeden klik v konzoli, hotovo.

Pro AI agenta

Postav si to u sebe

Chceš si to postavit u sebe? Zkopíruj návod a dej ho svému AI agentovi, třeba Claude Code nebo Codexu. Je v něm cíl, postup krok za krokem, pasti, na které jsem narazil, a jak ověřit, že to funguje. Adresy ani hesla v něm nejsou, ty agent doplní s tebou.

Pro zvědavé

Technické detaily

Nastavení subnet router · grants · DNS
Subnet router
Server inzeruje domácí síť, routa schválená v konzoli, forwarding zapnutý. Na routeru statická routa pro rozsah VPN zpět na server, jinak zařízení v domácí síti nemají kudy odpovědět.
Přístup
Politika v grants syntaxi. První grant: všechna zařízení se vidí navzájem. Druhý: do domácí sítě přes routu smí jen dvě vyjmenovaná zařízení. Nové zařízení se přidává ručně.
SNAT
Vypnutý (--snat-subnet-routes=false). Klienti z VPN chodí do domácí sítě pod svou VPN adresou a AdGuard je rozezná jako samostatné klienty.
DNS
V konzoli globální nameserver = server s AdGuardem, override zapnutý. Server sám DNS z VPN nepřebírá, aby nezávisel na vlastním kontejneru.
Pasti pro ty, kdo to staví taky

Bez statické routy na routeru vypadá subnet router jako funkční a přitom z domácí sítě nic neodpovídá. Zařízení s vlastním klientem Tailscale kontaktovat jen jeho VPN adresou, rp_filter zahodí odpověď po domácí síti. Na počítači, který je fyzicky doma, přijímání rout vypnout, jinak jde i router tunelem a při výpadku serveru počítač ztratí domácí síť. Bez exit node a bez Funnel: VPN slouží jen k přístupu dovnitř, ne jako cesta na internet. Expirace klíčů vypnutá vědomě, ztracené zařízení se maže ručně.

Dál

Související

Soukromí. Žádné adresy, jména zařízení ani konkrétní pravidla přístupu tu nejsou. Popisuju princip, ne svoji konfiguraci. Kdo ví, jak je to postavené, se dovnitř stejně nedostane bez mého zařízení a jeho klíče.