Prečo VPN server za CGNAT nikdy neprijme pripojenia
Adresa 100.64, dynamické DNS meno, ktoré sa prekladá inam, a chýbajúci prichádzajúci handshake sú jeden problém: NAT operátora. Potvrďte to a potom preposielajte odchádzajúcu prevádzku cez relay.
Router hlási WAN adresu začínajúcu na 100.72, dynamické DNS meno sa prekladá na inú verejnú adresu a VPN server na tomto routeri nikdy nedokončí handshake zvonku. Presmerovanie portov je nastavené, služba beží a test z LAN stále funguje. V logu routera nič nevyzerá ako chyba. Táto kombinácia je NAT na úrovni operátora a žiadne pravidlo firewallu nemôže otvoriť port na adrese, ktorú drží ISP.
Potvrdenie zdieľanej adresy trvá dve minúty a zabráni týždňu zmien konfigurácie.
Znaky, ktoré ukazujú na NAT operátora
Porovnajte WAN adresu na stavovej stránke routera s adresou, ktorú hlási externé vyhľadanie. WAN adresa v rozsahu 100.64.0.0/10 je obvyklý znak a súkromné rozsahy 10/8, 172.16/12 a 192.168/16 znamenajú to isté. Ak traceroute ukazuje ten istý verejný skok opakovane alebo skorý skok odpovedá súkromnou adresou, medzi routerom a internetom stojí ďalší prekladač. Niektorí ISP uvádzajú pridelenú adresu len v zákazníckom portáli, preto túto hodnotu exportujte spolu s traceroute.
Zmena protokolov alebo portov nepomôže, pretože problémom je prichádzajúca dosiahnuteľnosť, nie zatvorený port.
Prečo to presmerovanie a dynamický DNS nedokážu opraviť
Pravidlo presmerovania portu mapuje port na WAN rozhraní routera, ale prichádzajúca prevádzka sa na toto rozhranie nikdy nedostane: ISP ho najprv preloží a prepošle len to, čo dovoľuje jeho vlastná tabuľka. Zverejnenie zdieľanej adresy v dynamickom DNS nasmeruje klientov na bránu ISP, ktorú používa veľa odberateľov, a preto sa meno preloží, ale handshake stále zlyháva. Testy hairpin prechádzajú, pretože router odpovedá na svoje vlastné pravidlo zvnútra, a UPnP má presne to isté slepé miesto.
Ani prekonfigurovanie klienta nepomôže, pretože zlyhanie nastane skôr, než sa prečíta akékoľvek nastavenie klienta.
Preposielanie cez VPS s explicitnými trasami
Postavte dopredu verejnú adresu: najmite najmenší VPS, ktorý prevádzku unesie, a potom prinúťte domáci router pripojiť sa k nemu odchádzajúcim smerom. Odchádzajúce UDP z domácej siete prejde NAT operátora, takže tunel sa vytvorí zvnútra a VPS sa stane dosiahnuteľným koncovým bodom. Domáca strana sa stane klientom s pevnou adresou tunela, nie serverom.
Na VPS pridajte záznam adresára špecifický pre klienta, aby server vedel, ktorý peer vlastní domácu podsieť, a pridajte zodpovedajúcu trasu jadra.
# /etc/openvpn/server/ccd/home-site.conf ifconfig-push 10.8.0.10 255.255.255.0 iroute 192.168.50.0 255.255.255.0 # server.conf client-config-dir /etc/openvpn/server/ccd route 192.168.50.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0"
Riadok iroute hovorí OpenVPN, ktorý klient dostáva prevádzku pre domácu podsieť; riadok route vkladá túto podsieť do tabuľky jadra VPS, aby pakety vôbec vstúpili do tunela. Pre publikovanú službu pridajte pravidlo cieľového NAT, ktoré presmeruje verejný port na 10.8.0.10, a povoľte net.ipv4.ip_forward.
Otestujte cestu zvonku
Overte každý skok na verejnej strane, pretože úspešný tunel nedokazuje, že je služba dosiahnuteľná. Stav počúvania a zachytávanie paketov na VPS oddeľujú 'nič neprišlo' od 'prišlo a bolo zahodené'.
ss -lunp | grep 1194 tcpdump -ni any udp port 1194 nft list ruleset | grep -A4 dnat # from a phone on mobile data, not the home Wi-Fi nc -vz -u 203.0.113.10 1194
Ak zachytávanie ukazuje pakety z telefónu, ale žiadnu odpoveď, ďalšou zastávkou je konfigurácia servera alebo firewall. Ak zachytávanie neukazuje nič, klient stále prekladá alebo posiela na nesprávnu adresu.
Alternatívy, ktoré sa oplatí oceniť ako prvé
Vyhradená adresa IPv4 od ISP je najkratšie riešenie a zvyčajne malý mesačný poplatok. Natívny IPv6 odstráni preklad na oboch koncoch, keď ho podporujú VPN, klientska sieť aj DNS záznamy. Mesh overlay s routerom podsiete v domácej sieti dosiahne rovnaké preposielanie bez VPS, ale za cenu závislosti od koordinačnej služby.
Zvoľte preposielanie, keď je požiadavkou stabilný prichádzajúci prístup a každé pravidlo má zostať pod vašou kontrolou. Zvoľte adresu od ISP, keď to rozpočet dovolí a cieľom je jednoducho prestať o tom premýšľať.