Pordi edastamine Androidi hotspotis: kolm sisendpunkti
Telefon, operaatori tee ja VPN-i väljund näitavad erinevaid piire. Tehke kindlaks, milline masin omab kuulavat socketit, enne kui pordi avate.
Lülitasite hotspoti sisse, ühendasite VPN-i, avasite rakenduses pordi ja teine seade ei saa ikkagi ühendust. Puuduv tükk ei ole peaaegu kunagi port ise, vaid küsimus, milline masin omab kuulavat socketit ja millisele aadressile peaks teine seade jõudma. Lähen telefonist väljapoole, sest ekraan teie ees näitab, millist kolmest sisendpunktist te tegelikult testite.
Alustage sealt, kus teenus tegelikult töötab
Avage rakendus, mis peaks ühenduse vastu võtma, ja lugege selle olekulehte. Kui seal on kirjas, et see kuulab, kirjutage üles aadress, millega see on seotud, sest see üks detail otsustab enamiku allolevatest juhtudest. Aadressiga 127.0.0.1 seotud rakendus on kättesaadav ainult telefonist ja seda ei muuda ei hotspotti klient, operaatori kaardistus ega VPN-i väljund.
Seejärel kinnitage, milline seade teenust käitab. Kui see on telefon, kuulub socket sellele rakendusele; kui see on hotspoti taga olev sülearvuti, kuuluvad kuulaja ja tulemüür sülearvutile ning telefon ainult edastab pakette. Need on erinevad lahendused ja nende segamine on põhjus, miks ühes kohas avatud port teises kohas midagi ei tee.
Silumisvõimalusega buildis loetleb adb shell socketeid /proc/net/tcp kaudu, kuid enamiku jaoks on rakenduse enda olek aus allikas.
Esimene sisendpunkt: teine seade hotspotis
See on kohalik juhtum ja kõige lihtsam. Teine seade jõuab telefonini aadressil, mida ta näeb oma lüüsina, pordil, millel rakendus kuulab, ja midagi väljaspool hotspotti ei osale. Operaatori kaardistust ei ole vaja, sest liiklus ei lahku kohalikust segmendist.
Kaks asja rikuvad selle: rakendus on seotud loopbackiga või telefoni kliendipoliitika ei luba kohalikku ühendust. Testige rakenduse enda protokolliga, mitte palja TCP-ga, sest kuulaja, mis võtab vastu ja siis keeldub, näeb kaugelt välja nagu suletud port.
Kui teenus töötab ühendatud sülearvutis, ei ole telefoni hotspoti aadress üldse sihtmärk; vaja on sülearvuti aadressi hotspoti liidesel ja seal kuulajat.
Teine sisendpunkt: operaatori tee
Telefonini jõudmine mobiilivõrgust on teine probleem ja IPv4 puhul enamasti lihtsalt ei tööta. Operaatorid panevad seadmed jagatud tõlke taha ja seepärast eraldab RFC 6598 just sellise korralduse jaoks jagatud aadressivahemiku. Soovimata sissetuleval ühendusel ei ole kaardistust, mille kaudu saabuda, ja ükski kohalik seadistus ei loo seda, sest tõlkija ei ole teie seade.
Juurkasutaja õigus ei muuda seda samuti; see annab kontrolli telefoni virna üle, mitte operaatori tõlkija üle. Kui operaator pakub avalikku IPv6 eesliidet, võib sissetulev tee olemas olla, kuid kuulaja ja tulemüür vajavad siiski teadlikku luba.
Kolmas sisendpunkt: VPN-i väljund
Aadress, mida veebisait tunnelis teatab, on väljundi aadress kaetud väljamineva liikluse jaoks. See ei ole aadress, mis võtab teie nimel vastu sissetulevaid ühendusi. Selle kasutamine sissepoole nõuab funktsiooni, mida pakkuja tegelikult pakub, näiteks edastatud port, pluss kasutatav tee väljundist kliendini.
Kohalik lubamisreegel ei saa seda kaardistust luua. See, mida see teeb, on muudab, millist teed rakenduse vastused võtavad, mis loeb siis, kui rakendus on tunnelist välja jäetud: päring ja vastus võivad sattuda erinevatesse võrgukontekstidesse ja ühendus ebaõnnestub nagu tulemüüri probleem.
Testige ühte teed otsast otsani ja seejärel nimetage omanik
Kirjutage korteež enne testimist üles: kavatsetud allikas, sihtaadress, transport, port ja masin, mis omab kuulavat socketit. Kui mõni element on oletus, ei ütle test teile midagi kasulikku.
Seejärel testige seda ühte lubatud teed rakenduse autentimist rikkumata. Ärge avaldage laia kuulajat ega lülitage välja kõrvalisi kontrolle ainult selleks, et mitmetähenduslik aadressikontroll vastaks, sest mõlemad muudatused jäävad testist alles.
Androidi tetheringu alamsüsteem edastab allasuunalist liiklust oma teel, tavalisest VPN-i püüdmisest eraldi, seega ühendatud sülearvutis töötav brauser ei ütle midagi telefoni teenusele sissetuleva juurdepääsu kohta. Enne kui ütlete, et see töötab:
- Kuulaja on aadressil, millele vastaspool pääseb ligi, mitte loopbackil.
- Vastaspool kasutab just selle sisendpunkti aadressi, mitte olekulehe väljundiaadressi.
- Iga operaatori või pakkuja poolne kaardistus on toetatud funktsioon, mitte kohapeal lisatud reegel.
- Päring ja vastus käivad läbi sama võrgukonteksti ja autentimine läbib endiselt.