Kāpēc VPN serveris aiz CGNAT nekad nepieņem savienojumus
100.64 adrese, citur atrisināts dinamisks DNS nosaukums un nav ienākošas rokasspiediena — viena problēma: operatora NAT. Apstipriniet to un pēc tam pārsūtiet izejošo trafiku caur releju.
Maršrutētājs ziņo WAN adresi, kas sākas ar 100.72, dinamiskais DNS nosaukums atrisinās uz citu publisku adresi, un VPN serveris šajā maršrutētājā nekad nepabeidz rokasspiedienu no ārpuses. Portunu pāradresēšana ir iestatīta, pakalpojums darbojas, un tests no LAN joprojām izdodas. Maršrutētāja žurnālā nekas neizskatās pēc kļūdas. Šī kombinācija ir operatora līmeņa NAT, un neviens ugunsmūra noteikums nevar atvērt portu adresē, kuru tur ISP.
Koplietotās adreses apstiprināšana aizņem divas minūtes un novērš nedēļu konfigurācijas izmaiņu.
Pazīmes, kas norāda uz operatora NAT
Salīdziniet WAN adresi maršrutētāja statusa lapā ar adresi, ko ziņo ārējs vaicājums. WAN adrese 100.64.0.0/10 ietvaros ir ierastā pazīme, un privātie diapazoni 10/8, 172.16/12 un 192.168/16 nozīmē to pašu. Ja traceroute rāda to pašu publisko lēcienu atkārtoti vai agrīns lēciens atbild ar privātu adresi, starp maršrutētāju un internetu ir vēl viens tulkotājs. Daži ISP norāda piešķirto adresi tikai klientu portālā, tāpēc eksportējiet šo vērtību kopā ar traceroute.
Protokolu vai portu maiņa nepalīdz, jo problēma ir ienākošā sasniedzamība, nevis aizvērts ports.
Kāpēc pāradresēšana un dinamiskais DNS to nevar izlabot
Porta pāradresēšanas noteikums kartē portu maršrutētāja WAN saskarnē, bet ienākošā plūsma nekad nesasniedz šo saskarni: ISP to vispirms iztulko un pārsūta tikai to, ko pieļauj viņa paša tabula. Koplietotās adreses publicēšana dinamiskajā DNS novirza klientus uz ISP vārteju, ko izmanto daudzi abonenti, tāpēc nosaukums atrisinās, bet rokasspiediens joprojām neizdodas. Hairpin testi izdodas, jo maršrutētājs atbild uz savu noteikumu no iekšpuses, un UPnP ir tieši tāda pati aklā zona.
Arī klienta pārkonfigurēšana nepalīdzēs, jo kļūme notiek pirms jebkura klienta iestatījuma nolasīšanas.
Pārsūtīt caur VPS ar skaidriem maršrutiem
Novietojiet priekšā publisku adresi, nomājot mazāko VPS, kas spēj pārvadāt trafiku, pēc tam lieciet mājas maršrutētājam izveidot izejošu savienojumu ar to. Izejošais UDP no mājas tīkla šķērso operatora NAT, tāpēc tunelis tiek izveidots no iekšpuses un VPS kļūst par sasniedzamo galapunktu. Mājas puse kļūst par klientu ar fiksētu tuneļa adresi, nevis serveri.
VPS pievienojiet klientam specifisku direktorijas ierakstu, lai serveris zinātu, kuram partnerim pieder mājas apakštīkls, un pievienojiet atbilstošu kodola maršrutu.
# /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"
iroute rinda OpenVPN norāda, kurš klients saņem mājas apakštīkla trafiku; route rinda ievieto šo apakštīklu VPS kodola tabulā, lai paketes vispār iekļūtu tunelī. Publicētam pakalpojumam pievienojiet galamērķa NAT noteikumu, kas pāradresē publisko portu uz 10.8.0.10, un iespējojiet net.ipv4.ip_forward.
Pārbaudiet ceļu no ārpuses
Pārbaudiet katru lēcienu publiskajā pusē, jo veiksmīgs tunelis nepierāda, ka pakalpojums ir sasniedzams. Klausīšanās statuss un pakešu uztveršana VPS atšķir „nekas nenāca“ no „nāca un tika izmests“.
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
Ja uztveršana rāda paketes no tālruņa, bet atbildes nav, nākamā pietura ir servera konfigurācija vai ugunsmūris. Ja uztveršana neko nerāda, klients joprojām atrisina vai sūta uz nepareizu adresi.
Alternatīvas, kuru cenu vērts noskaidrot vispirms
ISP piešķirta īpaša IPv4 adrese ir īsākais risinājums, un parasti tā ir neliela ikmēneša maksa. Vietējais IPv6 novērš tulkošanu abos galos, ja VPN, klienta tīkls un DNS ieraksti to visi atbalsta. Mesh pārklājums ar apakštīkla maršrutētāju mājas tīklā nodrošina tādu pašu pārsūtīšanu bez VPS, bet par cenu — atkarību no koordinācijas pakalpojuma.
Izvēlieties pārsūtīšanu, ja prasība ir stabils ienākošs piekļuves un katram noteikumam jāpaliek jūsu kontrolē. Izvēlieties ISP adresi, ja budžets atļauj un mērķis ir vienkārši pārstāt par to domāt.