Tukipyyntöjä tulee, joissa sanotaan sovelluksen näyttävän yhtä osoitetta, kun palvelin kirjasi toisen, ja sitten kysytään, kumpi valehtelee. Ei kumpikaan; ne ovat kaksi havaintoa kahdesta eri asiasta. Liitäntään sidottu osoite, pistokkeeseen sidottu osoite ja etäpalvelun näkemä lähdeosoite vastaavat kolmeen erilliseen kysymykseen. VPN lisää puhelimelle verkkokontekstin ja ei tiivistä näitä kolmea yhdeksi laitekohtaiseksi luvuksi. Lue lipukkeen kenttien nimet ennen kuin luet osoitteet.

Mitä lipuke yleensä kuvaa

Kuvittele puhelin Wi-Fi-verkossa, jossa tunneli on pystyssä. Wi-Fi-liitännällä on lähiverkon osoite, tunnelin liitännällä on määritetty sisäinen osoite, ja tunnelin kautta lähtevä pyyntö saapuu julkiseen palveluun siltä lähteeltä, joka selviää matkan varrella tehtävästä käännöksestä. Sovellus, joka tulostaa sisäisen osoitteen, ja palvelin, joka kirjaa käännetyn lähteen, raportoivat molemmat tarkasti, eivätkä nämä kaksi arvoa koskaan täsmää.

Kolme havaintoa eroavat siinä, mitä ne voivat todistaa, eivät vain siinä, mitä ne kuvaavat.

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

Pidä tuo taulukko sen koodin vieressä, joka täyttää nämä arvot lipukkeeseen, sillä suurin osa sekaannuksesta on sarakkeiden sekaannusta eikä verkkohäiriö.

Mihin pistokekutsu voi vastata ja mihin ei

API-tasolla getsockname ilmoittaa paikallisen päätepisteen, joka on tällä hetkellä sidottu tiettyyn pistokkeeseen. Yhdistetylle pistokkeelle se on lähde, jonka ydin valitsi kyseiselle yhteydelle, mikä on jo täsmällisempää kuin mikään liitäntäluettelo. Se ei ole julkisen osoitteen haku, ja sen kutsuminen sitomattomalla pistokkeella ei kerro sinulle juuri mitään. Mitä tahansa se palauttaa, voidaan vielä kirjoittaa uudelleen myöhemmin polulla, joten vain palvelun oma havainto on ratkaiseva sen suhteen, mitä palvelu vastaanotti.

Apple-alustoilla liitäntäpuolella on erillinen pinta: tunnelin asetukset listaavat tunnelin liitännälle määritetyt osoitteet. Niiden lukeminen kertoo, miten tunneli määritettiin, eikä se kerro, minkä polun tietty pyyntö kulki, koska reititys ja sovelluskohtaiset säännöt päättävät siitä jokaisen yhteyden kohdalla.

Jaettu tunneli tekee eron näkyväksi. Yksi pyyntö voi lähteä tunnelin kautta, kun taas seuraava, toiseen kohteeseen tai osoiteperheeseen suunnattu, ei lähde, joten kaksi tulosta samasta sovelluksesta sekuntien välein voivat olla rehellisiä ja erilaisia.

Valitse havainto, joka vastaa kysymystä

Valitse tarkoituksella sen sijaan, että mittaisit kaiken. Siihen, mitä backend näkee, kirjaa lähde backendissä, ja kun edessä on käänteinen välityspalvelin, lue asiakkaan osoite edelleenlähetysotsakkeesta, jonka käyttöönotto todella asettaa, älä mistään, mitä asiakas lähetti.

Jos haluat tietää, onko tunneli määritetty, lue liitäntä. Jos haluat tietää, käyttikö tämän sovelluksen liikenne sitä, lähetä liikennettä kyseisestä sovelluksesta hallitsemaasi kohteeseen ja vertaa lähdettä molemmissa päissä.

Sovelluskohtaiset säännöt ansaitsevat oman lauseensa. Selaimen tulos on todiste kyseisestä selaimesta, ja hallittu sovelluskohtainen tunneli voi laittaa kaksi sovellusta samassa puhelimessa eri poluille samalla hetkellä. Kattavuuden varmistaminen tarkoittaa liikenteen lähettämistä kyseisestä sovelluksesta, kyseisessä osoiteperheessä.

Liitäntöjen nimet eivät ole ilmaisin

Älä käytä liitännän nimeä VPN-tarkistuksenakaan. Nimet eivät ole julkinen sopimus, ja puhelimessa voi olla useita kiinnityksiä, kun vain yksi niistä kuljettaa pyyntöäsi.

Nimeä kenttä sen havainnon mukaan, jota se pitää. local_interface_address, socket_local_endpoint ja service_observed_source ovat kömpelöitä ja yksiselitteisiä, ja yksiselitteisyys on sitä, mitä haluat, kun arvo päätyy tukilipukkeeseen viikkoa myöhemmin. Yksi sarake nimeltä device IP kerää kaikki kolme ja sitten siihen luotetaan kuin se olisi yksi.

Pidä identiteetti poissa osoitesarakkeesta

Jaettu VPN-poistumispiste ei ole käyttäjän identiteetti, eikä yksityinen osoite ole käyttöoikeustieto. Molemmat kuvaavat polkua eivätkä henkilöä, ja kumman tahansa kohteleminen todennuksena muuttaa reititysongelmaan sattuneen vahingon valtuutuspäätökseksi.

Kun joku kysyy, mikä osoite puhelimella on, hyödyllinen vastaus on kysymys siitä, mikä yhteys ja mikä havainnoija. getsockname-määritelmä kannattaa lainata keskimmäistä tapausta varten, koska se ratkaisee pistokekysymyksen teeskentelemättä ratkaisevansa kahta muuta.

Kirjoita sitten muistiin, minkä kolmesta tuotteesi todella tarvitsee näyttää, ja poista kaksi muuta käyttöliittymästä.

Aiheeseen liittyvät artikkelit