Jūsų patvirtintas tarpinis serveris veikia šuolio kompiuteryje, kur klausosi tik loopback, todėl niekas už to kompiuterio ribų negali jo pasiekti. Jums nereikia VPN ar naujo tarpinio serverio; jums reikia vieno to kompiuterio prievado, perkeltto į vieną jūsų prievadą. Vietinis peradresavimas daro būtent tai, ir jam reikia vienos komandos bei vieno programos nustatymo. Sumišimas dažniausiai kyla supainiojus, kuris loopback adresas priklauso kuriam kompiuteriui.

Nuspręskite, ar fiksuotas tarpinis serveris jau egzistuoja

Ši technika peradresuoja paslaugą, kuri jau veikia. Jei nuotoliniame kompiuteryje yra tik SSH demonas ir nėra tarpinio serverio, joks peradresavimo kiekis jo nesukurs, o ryšys bus atmestas iš nuotolinės pusės. Patvirtinkite, kad tarpinis serveris susietas, koks jo prievadas ir ar jis klausosi 127.0.0.1 ar konkrečiojo sąsajos adreso, nes būtent tą adresą turi taikyti peradresavimas.

Tai patikrinus iš anksto, nereikės derinti tunelio, kuris niekada nebuvo prie nieko prijungtas.

Sukurkite peradresavimą ir perskaitykite komandą

Norima forma susieja loopback prievadą jūsų nešiojamajame kompiuteryje ir iš serverio pusės prijungia jį prie tarpinio serverio adreso taip, kaip serveris jį mato.

ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  -L 127.0.0.1:13128:127.0.0.1:3128 [email protected]

-N slopina nuotolinę komandą, o -T slopina termios priskyrimą, nes jums reikia tunelio, o ne apvalkalo. Pirmasis loopback adresas yra ten, kur klausosi nešiojamasis kompiuteris; antrąjį išsprendžia SSH serveris, todėl 127.0.0.1 ten reiškia tarpinį serverį tame kompiuteryje. ExitOnForwardFailure priverčia komandą garsiai nepavykti, jei vietinis prievadas jau užimtas, o ne pradeda sesiją, kuri nieko neperadresuoja. Tikslinį adresą rašykite taip, kaip jį išsprendžia serveris, nes vardas, kurį gali išspręsti tik jūsų nešiojamasis kompiuteris, kitoje pusėje nepavyks.

Serverio paties politika galioja prieš tai, kai kas nors iš to pradeda veikti. AllowTcpForwarding turi tai leisti, o PermitOpen gali apriboti, kuriuos tikslus ir prievadus sesija gali pasiekti, todėl peradresavimą, kurį klientas priima, serveris vis tiek gali atmesti. Atmetimas pasirodo kaip peradresavimo ar kanalo klaida kliente, ir tą pranešimą perskaityti greičiau nei redaguoti komandą.

Nukreipkite vieną programą į peradresavimą

Sukonfigūruokite programą naudoti HTTP tarpinį serverį adresu http://127.0.0.1:13128, su prisijungimo duomenimis, jei nuotolinis tarpinis serveris jų reikalauja. Išsaugokite pačios programos sertifikatų tikrinimą HTTPS tikslams, nes tarpinio serverio tunelis jo nepakeičia. Tai fiksuotas vienos paslaugos peradresavimas, todėl programai reikia pasakyti apie tarpinį serverį, o ne palikti jai pačiai jį aptikti.

Greitas patikrinimas prieš bet kokį nuolatinį konfigūravimą: curl -x http://127.0.0.1:13128 -I https://example.com, kuris išbando HTTP CONNECT metodą, kurį tarpinis serveris turi palaikyti.

Išlaikykite įgaliojimus ten, kur jie buvo

Nuotolinis tarpinis serveris vis dar sprendžia, kuriuos tikslus ir metodus leidžia, o SSH prisijungimas neturėtų tyliai suteikti kiekvienai paskyrai bendro žiniatinklio relės. Susiejimas su 127.0.0.1 nešiojamajame kompiuteryje išvengia prievado paskelbimo jūsų vietiniame tinkle, ir jis nepadaro prievado privataus nuo kitų to paties kompiuterio procesų. To susiejimo pakeitimas pakaitos simbolio adresu, norint bendrinti tarpinį serverį, yra būdas, kuriuo susidaro nevaldoma atvira relė.

SSH transportas apsaugo šuolį iki serverio. Už tos vietos tarpinis serveris atidaro savo ryšį, todėl paprasta HTTP užklausa į tikslą išlieka paprasta ir už serverio, nors pirmoji atkarpa buvo užšifruota.

Patikrinkite abu galus, tada sutvarkykite

Vietinio tunelio sąranka ir nuotolinės paslaugos sėkmė yra skirtingi rezultatai, o komandos išėjimo būsena jums pasako tik apie pirmąjį. Patikrinkite, ar klausytojas yra, naudodami ss -ltn, tada atlikite leidžiamą programos užklausą ir užklausą, kurią tarpinis serveris turėtų atmesti. Jei abu elgiasi kaip tikėtasi, kelias tikras; jei tunelis veikia ir kiekviena užklausa nepavyksta, tarpinis serveris atmeta arba negali pasiekti tikslo.

Baigę sustabdykite jį valdantį SSH procesą, pašalinkite tarpinio serverio nustatymą iš programos ir patvirtinkite, kad vietinis prievadas dingo, o ne palikite klausytoją, kuris pergyvens užduotį.

Susiję straipsniai