Ateina pagalbos bilietai, kuriuose rašoma, kad programa rodo vieną adresą, o serveris užregistravo kitą, ir tada klausiama, kuris iš jų meluoja. Nė vienas; tai du skirtingų dalykų stebėjimai. Adresas, susietas su sąsaja, adresas, susietas su lizdu, ir šaltinio adresas, kurį mato nuotolinė paslauga, atsako į tris atskirus klausimus. VPN prideda telefonui tinklo kontekstą ir nesutraukia tų trijų į vieną viso įrenginio skaičių. Prieš skaitydami adresus, perskaitykite bilieto laukų pavadinimus.

Ką bilietas paprastai aprašo

Įsivaizduokite telefoną Wi-Fi tinkle su pakeltu tuneliu. Wi-Fi sąsaja turi LAN adresą, tunelio sąsaja turi priskirtą vidinį adresą, o užklausa, išeinanti per tunelį, pasiekia viešą paslaugą iš to šaltinio, kuris išlieka po bet kokio vertimo kelyje. Programa, spausdinanti vidinį adresą, ir serveris, registruojantis išverstą šaltinį, abu praneša tiksliai, ir šios dvi reikšmės niekada nesutaps.

Trys stebėjimai skiriasi tuo, ką jie gali įrodyti, o ne tik tuo, ką jie aprašo.

ObservationWhat it describesWhat it cannot prove
An address on a local interfaceOne configured attachment: Wi-Fi, cellular or a tunnelThe source a remote site receives
A socket's local endpointThe binding used by that one connectionThe address after translation further along
The peer address at a serviceWhat arrived at that observation pointAny other interface on the phone

Laikykite tą lentelę prie kodo, kuris šias reikšmes įrašo į bilietą, nes didžioji dalis painiavos čia yra stulpelių sumaišymas, o ne tinklo gedimas.

Į ką lizdo iškvietimas gali ir negali atsakyti

API lygmenyje getsockname praneša vietinį galinį tašką, šiuo metu susietą su konkrečiu lizdu. Prijungtam lizdui tai yra šaltinis, kurį branduolys pasirinko tai jungčiai, ir tai jau yra konkretesnė informacija nei bet koks sąsajų sąrašas. Tai nėra viešo adreso paieška, o iškvietimas nesujungtame lizde beveik nieko nesako. Ką jis bepateiktų, tai vėliau kelyje gali būti perrašyta, todėl tik paties serviso stebėjimas yra autoritetingas dėl to, ką servisas gavo.

Apple platformose sąsajų pusė turi atskirą paviršių: tunelio nustatymai išvardija adresus, priskirtus tunelio sąsajai. Jų skaitymas pasako, kaip tunelis buvo sukonfigūruotas, ir nepasako, kokiu keliu ėjo konkreti užklausa, nes maršrutizavimas ir taisyklės pagal programą tai nusprendžia kiekvienai jungčiai.

Padalintas tunelis padaro skirtumą matomą. Viena užklausa gali išeiti per tunelį, o kita, nukreipta į kitą paskirties vietą ar kitą adresų šeimą, ne, todėl du tos pačios programos rezultatai su kelių sekundžių skirtumu gali būti sąžiningi ir skirtingi.

Pasirinkite stebėjimą, kuris atitinka klausimą

Rinkitės sąmoningai, o ne matuokite viską. Tam, ką mato backend, registruokite šaltinį backend, o ten, kur priekyje stovi atvirkštinis tarpinis serveris, skaitykite kliento adresą iš persiuntimo antraštės, kurią jūsų diegimas iš tikrųjų nustato, o ne iš to, ką atsiuntė klientas.

Ar tunelis sukonfigūruotas, sužinosite iš sąsajos. Ar šios programos srautas jį naudojo, sužinosite siųsdami srautą iš tos programos į jūsų kontroliuojamą paskirties vietą ir palygindami šaltinį abiejuose galuose.

Taisyklės pagal programą nusipelno savo sakinio. Naršyklės rezultatas yra įrodymas apie tą naršyklę, o valdomas tunelis pagal programą gali padėti dvi programas tame pačiame telefone skirtingais keliais tuo pačiu metu. Aprėpties tikrinimas reiškia srauto siuntimą iš atitinkamos programos, atitinkamoje adresų šeimoje.

Sąsajų pavadinimai nėra detektorius

Nenaudokite sąsajos pavadinimo ir kaip VPN patikros. Pavadinimai nėra vieša sutartis, o telefonas gali turėti kelis prijungimus, kai tik vienas iš jų neša jūsų užklausą.

Pavadinkite lauką pagal stebėjimą, kurį jis laiko. local_interface_address, socket_local_endpoint ir service_observed_source yra gremėzdiški ir vienareikšmiai, o vienareikšmiškumo jūs norite, kai reikšmė po savaitės patenka į pagalbos bilietą. Vienas stulpelis pavadinimu device IP surinks visus tris, o paskui juo bus pasitikima taip, lyg tai būtų vienas.

Laikykite tapatybę už adreso stulpelio ribų

Bendras VPN išėjimas nėra naudotojo tapatybė, o privatus adresas nėra prieigos kredencialas. Abu aprašo kelią, o ne asmenį, ir bet kurio iš jų traktavimas kaip autentifikacijos maršrutizavimo atsitiktinumą paverčia autorizacijos sprendimu.

Kai kas nors klausia, kokį adresą turi telefonas, naudingas atsakymas yra klausimas apie tai, kuri jungtis ir kuris stebėtojas. getsockname apibrėžimą verta cituoti viduriniam atvejui, nes jis išsprendžia lizdo klausimą neapsimesdamas, kad išsprendžia kitus du.

Tada užsirašykite, kurią iš trijų jūsų produktas iš tikrųjų turi rodyti, ir ištrinkite kitas dvi iš sąsajos.

Susiję straipsniai