Ryšys tik per IPv6, IPv4 paslauga: tegul SOCKS tarpinis serveris nuties tiltą
SOCKS tarpinis serveris priima vieną ryšį ir atidaro kitą, todėl tik IPv6 turintis klientas pasiekia IPv4 paslaugą. Tai perdavimas, o ne savoji IPv4 prieiga.
Jums nereikia paskirties šeimos adreso, kad ją pasiektumėte, jei tik kažkas kelyje sutinka perduoti. Programė prisijungia prie tarpinio serverio, o šis atidaro antrą ryšį su paskirties vieta. Tai du lizdai su nepriklausomomis adresų šeimomis, ir nė vienas protokolas nereikalauja, kad jie sutaptų. Tai programos lygio perdavimas, o ne savasis IPv4 kelias, ir šis skirtumas lemia, kas veiks, o kas ne. Sumaišius abu, nešiojamasis kompiuteris aprašomas kaip turintis IPv4 ryšį, nors viskas, ką jis turi, yra tarpinis serveris.
Du lizdai, dvi adresų šeimos
SOCKS5 užklausa nurodo paskirties vietą viena iš trijų formų: pažodinis v4 adresas, pažodinis v6 adresas arba vardas, kurį turi išspręsti tarpinis serveris. Užklausa aprašo, kur tarpinis serveris turi jungtis, o ne kaip atrodo kliento ryšys su tarpiniu serveriu.
Šiuos adresų tipus skaitykite kaip tris nepriklausomus pasirinkimus viename pranešime. Tarpinis serveris, pasiekiamas per IPv6, gali atidaryti IPv4 paskirties lizdą, kai turi veikiančią IPv4 išėjimą ir jo politika leidžia užklausą. SOCKS5 specifikacija juos apibrėžia visiškai nenurodydama kliento transporto.
Kontroliuojamas SSH pavyzdys
Paimkite SSH mazgą, kurį leidžiama naudoti, kuris atsako per IPv6 ir pats gali pasiekti HTTPS paslaugą, egzistuojančią tik v4. OpenSSH dinaminis persiuntimas įdeda vietinį SOCKS klausytuvą jūsų kompiuteryje, kol prisijungimo sesija eina per v6.
ssh -6 -N -D 127.0.0.1:1081 -o ExitOnForwardFailure=yes [email protected]Aukščiau nurodytas mazgas ir paskyra yra pavyzdžiai, o loopback susiejimas laiko klausytuvą šiame kompiuteryje. Nepakeiskite jo pakaitos simbolių susiejimu, kad biuras galėtų dalytis neautentifikuotu tarpiniu serveriu. ExitOnForwardFailure=yes egzistuoja tam, kad nepavykęs persiuntimas užbaigtų sesiją, o ne paliktų tyliai veikiantį komandą fone.
Kai sesija veikia, užklausa atrodo taip:
curl --proxy socks5h://127.0.0.1:1081 https://v4-only.example/Loopback ryšys nėra IPv4 interneto kelias. Tai, kas išeina iš jūsų kompiuterio, yra prisijungimo sesija per v6, o paskirties lizdą atidaro tolimoji pusė. Forma socks5h taip pat paveda vardų sprendimą tai pusei, o tai svarbu, kai klientas neturi savo IPv4 sprendėjo kelio.
Ką paskirtis iš tikrųjų mato
Paskirtis mato perdavėjo išėjimo adresą. Ten neatsiranda nė vienas jūsų nešiojamajam kompiuteriui priklausantis adresas. Toje paslaugoje šaltinių leidžiamųjų sąraše turi būti nurodytas perdavėjas. Jos žurnalai taip pat priskirs srautą perdavėjui. Užrašykite tai keitimo įraše prieš auditą, nes leidžiamųjų sąrašas, sudarytas pagal klientų adresus, žlunga pirmosios užklausos metu.
Perdavėjas taip pat yra vieta, kur matomos dvi pokalbio pusės, o tai naudinga diagnozuojant ir našta, jei perdavėjas bendrinamas be politikos.
Tai ne DNS64 ir ne NAT64
DNS64 atsako su sintetiniais įrašais, pakeičiančiais v4 paskirtis, o NAT64 perrašo paketus pagal sukonfigūruotą kelią. Nė vienas neaprašo, kas vyksta čia, kur vienas transporto pokalbis baigiasi ir prasideda kitas, ir joks sintetinis adresas nepaaiškina rezultato. Todėl sėkminga užklausa nieko nesako apie tai, kokias vertimo paslaugas teikia jūsų tiekėjas, o tarpinis serveris gali vykdyti įprastą NAT savo išėjime.
Abu mechanizmai gali egzistuoti tame pačiame tinkle, todėl aprašykite tą, kurį iš tikrųjų patikrinote, o ne tą, kuris skamba artimiausiai.
Žinokite apimtį, prieš ją pažadėdami
OpenSSH dinaminis persiuntimas perduoda TCP ryšius, o ne savavališką IP srautą, todėl UDP, ICMP ir bet kuriam protokolui, ignoruojančiam tarpinį serverį, reikia kitos palaikomos konstrukcijos. Išsaugokite SSH mazgo rakto tikrinimą, serverio persiuntimo apribojimus ir HTTPS sertifikato patikrinimą, nes tarpinis serveris yra papildomas patikimas dalyvis, o ne priežastis silpninti tapatybės patikras. Jei tikslas yra perduoti išorinį VPN transportą per tarpinį serverį, patikrinkite, ar abu galai palaiko tą transportą, o ne manykite, kad bet kuris SOCKS klausytuvas gali jį perduoti.
Niekas iš to nepadaro kliento dvigubo steko, ir to nereikia. Tai leidžia vienai programai pasiekti vieną paslaugą per vieną perdavėją, o tai yra mažesnis teiginys ir daug lengviau patikrinamas.