Tenhle dotaz mi chodí pořád dokola. Doma máte NAS, IP kameru, Home Assistanta nebo malý server. V domácí síti šlape všechno jak má. Pak sednete v práci k počítači nebo přepnete na mobilní data, chcete se připojit zvenku, a nic. Timeout. Router přitom máte nastavený podle návodu, port forwarding svítí zeleně, firewall vypnutý (vím, vím), a stejně nic.

Ve většině případů si za to nemůžete sami. Zádrhel sedí o patro výš, u poskytovatele. Ale popořadě, ať zbytečně nerestartujete router počtvrté.

1. Zjistěte svoji skutečnou veřejnou IP

První věc, kterou potřebujete vědět: pod jakou adresou vás vlastně vidí internet. Ne co má napsáno router, ale ta adresa venku.

Nejrychleji na moje-ip-adresa.cz, hned nahoře, bez klikání. (Ano, je to můj web. Před pár týdny jsem ho celý přestavěl, takže už nevypadá jako z roku 2008 a umí toho o dost víc. O tom ale někdy jindy.)

Kdo má radši terminál:

curl https://moje-ip-adresa.cz/plain

Vrátí holou IP a nic dalšího. Hodí se to i do skriptů, když si chcete hlídat, jestli vám poskytovatel adresu nepřehodil.

2. Porovnejte to s tím, co má router

Přihlaste se do administrace routeru a najděte adresu na WAN rozhraní. Tedy na tom portu, kterým kouká ven k poskytovateli.

Sedí WAN adresa routeru s tou, co ukázal web? Pak máte veřejnou IP a máte to skoro vyhrané. Chyba bude někde ve vašem nastavení, špatný port, služba neposlouchá, firewall. Skočte na bod 4.

Liší se a WAN adresa routeru začíná na 10.x.x.x, 100.64.x.x100.127.x.x nebo 172.16-31.x.x? Jste za CG-NATem. Tím to celé končí.

Co je CG-NAT a proč vám kazí život

Veřejných IPv4 adres je málo, poskytovatelům došly. Tak dělají to samé, co dělá váš router doma: schovají desítky až stovky zákazníků za jednu společnou veřejnou adresu. Říká se tomu Carrier-Grade NAT.

Při běžném brouzdání to nepoznáte. Jakmile ale chcete, aby se někdo z internetu připojil k vám, na NAS, kameru, server, herní port, narazíte. Příchozí spojení nemá kudy projít, protože ta veřejná adresa není vaše. Sdílíte ji s půlkou paneláku. Port forwarding si na routeru můžete nastavovat, jak chcete, pakety k němu nikdy nedorazí, umřou už u poskytovatele.

Za CG-NATem typicky jedou mobilní data (skoro vždycky), menší lokální wifi poskytovatelé a čím dál častěji i velcí hráči na levnějších tarifech.

3. Test portu zvenku, ne zevnitř

Klasický omyl: testovat dostupnost z počítače ve stejné síti. O dostupnosti zvenku vám to neřekne vůbec nic. Navíc spousta routerů neumí hairpin NAT, takže zevnitř to nefunguje, i když zvenku by fungovalo docela dobře.

Testovat se to musí z internetu. Na moje-ip-adresa.cz je na to TCP port check. Zadáte číslo portu a server se pokusí navázat spojení na vaši aktuální veřejnou IP zvenku. Přesně tak, jak by to udělal kdokoliv jiný.

  • Port otevřený -> služba je zvenku dostupná, hotovo.
  • Port zavřený a nejste za CG-NATem -> chyba je u vás, pokračujte bodem 4.
  • Port zavřený a jste za CG-NATem -> bod 5, nastavením routeru to nespravíte.

4. Máte veřejnou IP a stejně to nejde

Checklist seřazený podle toho, jak často se to trefí:

  1. Služba poslouchá jen na 127.0.0.1 místo na 0.0.0.0. Klasika u Dockeru a u různých webových administrací.
  2. Port forwarding míří na špatnou vnitřní IP. NAS si po restartu vzal z DHCP jinou adresu, než na kterou ukazuje pravidlo. Udělejte zařízení rezervaci v DHCP a máte klid.
  3. Firewall na cílovém zařízení. Router paket pustí, Windows nebo firewalld ho zahodí.
  4. Poskytovatel blokuje porty. Hlavně 25, občas 80 a 443 na domácích tarifech. Zkuste službu dočasně pověsit na vysoký port, třeba 8443, a otestovat znovu.
  5. Dvojitý NAT doma. Modem od poskytovatele v režimu router a za ním váš vlastní router. Buď přepněte modem do bridge, nebo nastavte forwarding na obou.

5. Jste za CG-NATem, co teď

V zásadě tři cesty.

Zavolat poskytovateli a chtít veřejnou IP. Spousta ISP ji dá za pár desítek korun měsíčně, někteří i zadarmo na požádání. Nejjednodušší a nejčistší cesta, zkuste ji dřív, než se pustíte do stavění tunelů.

VPN tunel ven. WireGuard nebo Tailscale na NASu či serveru, který se sám připojí ven na něco s veřejnou adresou. Malý VPS za pár korun bohatě stačí, případně rovnou Tailscale síť. Příchozí spojení pak chodí tunelem. Funguje to spolehlivě a CG-NAT to obejde, protože spojení iniciujete vy směrem ven.

Reverzní proxy nebo tunel jako služba. Cloudflare Tunnel a spol. Na webovou administraci fajn, u obecných služeb to bývá krkolomné.

Bonus: VPN vám rozbije i to, co fungovalo

Když si VPN naopak sami zapnete kvůli soukromí nebo kvůli práci, změní se vaše viditelná IP a s ní i všechno, co na tu původní bylo navázané.

Jestli VPN opravdu jede a co přesně se změnilo, si ověříte porovnáním před a po. Na moje-ip-adresa.cz si uložíte stav před zapnutím VPN, pak ji zapnete, obnovíte stránku a web vám ukáže rozdíl v IP, poloze i poskytovateli. Při té příležitosti klikněte i na WebRTC leak test, prohlížeč občas vyžvaní adresu, kterou měla VPN schovat.

Shrnutí pro netrpělivé

  1. Zjistit veřejnou IP a porovnat ji s WAN adresou routeru.
  2. Sedí to? Testovat port zvenku a projít checklist.
  3. Nesedí (10.x, 100.64-127.x)? CG-NAT, volat ISP nebo stavět tunel.
  4. Nikdy netestovat dostupnost zevnitř vlastní sítě.

Kdyby něco nesedělo nebo jste narazili na kombinaci, kterou tu nemám, pište do komentářů.

SHARE IT:

Leave a Reply