Įjungėte hotspot, prisijungėte VPN, atidarėte prievadą programoje, o kitas įrenginys vis tiek negali prisijungti. Trūkstama dalis beveik niekada nėra pats prievadas, o klausimas, kuri mašina turi klausantį lizdą ir kokį adresą turi pasiekti kitas įrenginys. Einu nuo telefono į išorę, nes ekranas priešais jus parodo, kurį iš trijų įėjimo taškų jūs tikrai tikrinate.

Pradėkite ten, kur paslauga tikrai veikia

Atidarykite programą, kuri turi priimti ryšį, ir perskaitykite jos būsenos puslapį. Jei rašoma, kad ji klausosi, užsirašykite adresą, prie kurio ji pririšta, nes ši viena detalė nulemia daugumą žemiau aprašytų atvejų. Programa, pririšta prie 127.0.0.1, pasiekiama tik iš telefono, ir to nepakeis nei hotspot klientas, nei operatoriaus atvaizdavimas, nei VPN išėjimas.

Tada patikrinkite, kuris įrenginys vykdo paslaugą. Jei telefonas, lizdas priklauso tai programai; jei nešiojamasis kompiuteris už hotspot, klausytojas ir jo užkarda priklauso kompiuteriui, o telefonas tik perduoda paketus. Tai du skirtingi sprendimai, ir jų maišymas yra priežastis, kodėl vienoje vietoje atidarytas prievadas kitoje nieko nedaro.

Derinamoje versijoje adb shell išvardija lizdus per /proc/net/tcp, tačiau daugumai žmonių sąžiningas šaltinis yra pačios programos būsena.

Pirmas įėjimo taškas: kitas įrenginys hotspot tinkle

Tai vietinis atvejis ir paprasčiausias. Kitas įrenginys pasiekia telefoną adresu, kurį mato kaip savo šliuzą, prievadu, kuriame klausosi programa, ir niekas už hotspot ribų nedalyvauja. Operatoriaus atvaizdavimo nereikia, nes srautas niekada nepalieka vietinio segmento.

Du dalykai tai sugriauna: programa pririšta prie loopback, arba telefono kliento politika neleidžia vietinio ryšio. Tikrinkite pačios programos protokolu, o ne pliku TCP, nes klausytojas, kuris priima ir po to atmeta, iš tolo atrodo kaip uždaras prievadas.

Jei paslauga veikia prijungtame nešiojamajame kompiuteryje, telefono hotspot adresas visai nėra tikslas; reikia kompiuterio adreso hotspot sąsajoje ir klausytojo ten.

Antras įėjimo taškas: operatoriaus kelias

Pasiekti telefoną iš mobiliojo tinklo yra kita problema, ir IPv4 atveju tai dažniausiai tiesiog neveikia. Operatoriai deda įrenginius už bendro vertimo, todėl RFC 6598 skiria bendrą adresų diapazoną būtent tokiai tvarkai. Neprašytas įeinantis ryšys neturi atvaizdavimo, per kurį galėtų atkeliauti, ir jokia vietinė konfigūracija jo nesukuria, nes vertėjas nėra jūsų įrenginys.

Root prieiga to taip pat nekeičia; ji duoda valdymą telefono kamienui, o ne operatoriaus vertėjui. Ten, kur operatorius siūlo viešą IPv6 priešdėlį, įeinantis kelias gali egzistuoti, bet klausytojui ir telefono užkardai vis tiek reikia aiškaus leidimo.

Trečias įėjimo taškas: VPN išėjimas

Adresas, kurį svetainė praneša, kol tunelis įjungtas, yra išėjimo adresas uždengtam išeinančiam srautui. Tai ne adresas, kuris priima įeinančius ryšius jūsų vardu. Naudoti jį į vidų reikia funkcijos, kurią tiekėjas tikrai siūlo, pavyzdžiui, peradresuoto prievado, ir veikiančio kelio nuo išėjimo iki kliento.

Vietinė leidimo taisyklė negali sukurti to atvaizdavimo. Ji keičia, kokiu keliu eina programos atsakymai, ir tai svarbu, kai programa išjungta iš tunelio: užklausa ir atsakymas gali atsidurti skirtinguose tinklo kontekstuose, ir ryšys žlunga kaip užkardos problema.

Išbandykite vieną kelią nuo pradžios iki galo, tada įvardykite savininką

Užsirašykite ketvertą prieš testą: numatytas šaltinis, paskirties adresas, transportas, prievadas ir mašina, kuri turi klausantį lizdą. Jei kuris nors elementas yra spėjimas, testas nieko naudingo nepasakys.

Tada išbandykite tą vieną leistiną kelią su nepažeista programos autentifikacija. Neskelbkite plataus klausytojo ir neišjunkite nesusijusių valdiklių vien tam, kad atsakytų dviprasmiškas adreso patikrinimas, nes abu pakeitimai išlieka po testo.

Android tethering posistemė perduoda žemyn einantį srautą savo keliu, atskirai nuo įprasto VPN fiksavimo, todėl prijungtame nešiojamajame kompiuteryje veikianti naršyklė nieko nesako apie įeinantį priėjimą prie paslaugos telefone. Prieš sakydami, kad tai veikia:

  • Klausytojas yra adresu, kurį kita pusė gali pasiekti, o ne loopback.
  • Kita pusė naudoja to įėjimo taško adresą, o ne išėjimo adresą iš būsenos puslapio.
  • Bet koks operatoriaus ar tiekėjo atvaizdavimas yra palaikoma funkcija, o ne vietoje pridėta taisyklė.
  • Užklausa ir atsakymas eina per tą patį tinklo kontekstą, ir autentifikacija vis dar praeina.

Susiję straipsniai