Prisijunkite prie biuro VPN, paleiskite nedidelę paslaugą 8443 prievade, nusiųskite tunelio adresą kolegai ir stebėkite, kaip ryšys nepavyksta, nors klientas vis dar praneša esąs prisijungęs. Tunelyje niekas nesugedę: adresas buvo išduotas, sesija aktyvi, o paketai, kurie perneštų atsakymą, tiesiog niekada nepraleidžiami. Atlikite tris patikras žemiau iš eilės ir sustokite ties ta, kuri nepavyksta, nes kiekviena turi skirtingą pataisą ir tik viena jų susijusi su VPN.

Pradėkite nuo to, kur lizdas iš tikrųjų susietas

Prieš ką nors maršrutizuojant, kažkas turi klausytis adresu, kurį pasieks skambinantysis. Kūrimo serveriai yra įprasti kaltininkai, nes daugelis jų pagal nutylėjimą susiejami su loopback ir priima tik ryšius, kylančius iš tos pačios mašinos. Tunelio adresas šio susiejimo nekeičia, o operacinė sistema atmes ryšį gerokai anksčiau, nei VPN apskritai bus įtrauktas.

ss -ltnp | grep 8443
netstat -ano | findstr 8443

Skaitykite vietinio adreso stulpelį, o ne būseną. 127.0.0.1:8443 reiškia tik loopback, o pataisa – susiejimas su 0.0.0.0 arba pačiu tunelio adresu. 0.0.0.0:8443 priima visuose sąsajose, o tai platesnė apimtis, nei dauguma numato, kai mašina turi ir viešą adresą; 10.64.7.15:8443 – siaura versija, kuri klausosi tik ten, kur kolega gali pasiekti. Atkreipkite dėmesį ir į proceso pavadinimą toje pačioje išvestyje, nes pasilikusi ankstesnio testo egzemplioriaus kopija yra dažna priežastis, kodėl prievadas atrodo atidarytas ir atsako netinkamu turiniu.

Tada paklauskite, ar kas nors gali maršrutizuoti į tą adresą

Tunelio adresas turi prasmę tik tiems partneriams, kurie sukonfigūruoti siųsti tą priešdėlį į tunelį. Kolegos mašina turi savo lentelę, ir jei neturi maršruto į tunelio potinklį, paketas eina į numatytąją šliuzą ir žūva vietoje, kuri net neįsivaizduoja, kad adresas egzistuoja. Tai maršrutizavimo klausimas skambinančiojo pusėje, o ne leidimas jūsų pusėje.

Symptom from the callerWhat it usually meansWhere to look next
Connection refused immediatelyNothing is listening on the address the packet reachedThe bind address and the process owning the port
Connection times out with no replyA policy dropped the packet, or no route returnsServer forwarding, host firewall, cloud security group
Works from the same machine onlyListener is on loopback, or no route reaches the tunnel addressBind address, then the caller's route to that prefix

Serveris tarp dviejų klientų yra ne mažiau svarbus. Įprastoje nuotolinės prieigos schemoje kiekvienas klientas atidaro išeinantį ryšį į šliuzą, o šliuzas saugo tų srautų būseną, todėl atsakymai grįžta keliu, kurį jis jau žino. Ryšys iš vieno kliento į kitą yra naujas srautas, kurį šliuzas turi priimti ir persiųsti, ir daug diegimų tai sąmoningai išjungia, kad klientai liktų izoliuoti vienas nuo kito. Vartotojų VPN paslaugos paprastai izoliuoja pagal nutylėjimą; įmonių šliuzai kartais tai leidžia pagal grupes.

Patikrinkite kryptį prieš ką nors keisdami pagrindinėje mašinoje. Jei tunelio adresas atsako iš paties šliuzo, bet ne iš partnerio, skirtumas yra šliuzo nuostata klientas-klientui, ir joks vietinės užkardos redagavimas to nepakeis.

Galiausiai raskite politiką, kuri leidžia srautą

Trys politikos sluoksniai yra tarp maršrutizuoto paketo ir atsakančios paslaugos: VPN serverio persiuntimo sprendimas, pagrindinės mašinos užkarda ir bet kokia debesijos saugumo grupė prieš egzempliorių. Visi trys turi sutarti, ir jie nepavyksta skirtingais būdais, todėl simptomas aukščiau esančioje lentelėje yra naudingesnis už klaidos pranešimą naršyklėje.

Pagrindinės mašinos užkarda yra sluoksnis, kurį žmonės pamiršta po sėkmingo susiejimo, nes taisyklė, leidžianti prievadą LAN sąsajoje, automatiškai neleidžia jo tunelio sąsajoje. Sąsaja apribotos taisyklės yra teisingas dizainas ir kartu įprasta priežastis paslaugos, kuri veikia iš biuro, bet ne iš namų. Skaitykite taisyklės apimtį, o ne jos prievado numerį.

Būsenos sekimas paaiškina priešingą atvejį. Išeinantis ryšys iš jūsų nešiojamojo kompiuterio sukuria būseną, ir atsakymai į jį praleidžiami be įeinančios taisyklės. Kolegos ryšys yra visiškai naujas srautas be būsenos už jo, todėl jam reikia aiškaus leidimo. Ši asimetrija yra visa priežastis, kodėl veikianti naršyklės sesija jūsų pačių mašinoje nieko nesako apie tai, ar paslauga pasiekiama iš išorės.

Kai viena patikra nepavyksta, keiskite dizainą, o ne tunelį

Jei reikalavimas yra, kad kolega atidarytų jūsų vietinę paslaugą, sąžiningas atsakymas paprastai yra mechanizmas, sukurtas įeinančiai prieigai. Atvirkštinis SSH tunelis yra mažiausias: jūsų mašina išeidama jungiasi prie pagrindinės mašinos, kurią kolega jau gali pasiekti, ir klausytojas egzistuoja toje mašinoje.

ssh -N -R 8443:127.0.0.1:8443 [email protected]

Relė savo SSH serverio konfigūracijoje turi turėti GatewayPorts clientspecified, kitaip persiųstas klausytojas prisiriša prie loopback relėje ir kolega susiduria su tuo pačiu atmetimu kaip anksčiau. Viskam, kas trunka ilgiau nei popietę, apkrovos balansuotojas arba ingress su sveikatos patikra ir sertifikatu paskelbtam vardui yra geresnis įrankis, o tunelis tarp vietovių su maršrutais abiem potinkliams yra teisingas atsakymas, kai du tinklai tikrai turi kalbėtis.

Kiekvienas iš šių dizainų padaro poveikį aiškų, ir tai yra esmė. VPN perkelia paketus tarp tinklų, kuriuos naudoti jau buvote įgaliotas; jis neskelbia paslaugos ir nepaverčia nešiojamojo kompiuterio į internetą atgręžta mašina. Užduotis yra nuspręsti, kurį iš trijų sluoksnių keisti, ir tunelis retai būna vienas iš jų.

Susiję straipsniai