Стварэнне лакальнага SOCKS-проксі праз SSH
Выкарыстоўвайце дынамічнае перанакіраванне OpenSSH на 127.0.0.1, трымайце працэс запушчаным і адрознівайце слухач ад дасягальнасці мэты.
Маючы дазволены SSH-доступ да сервера, можна праз OpenSSH стварыць SOCKS-слухач на сваім камп’ютары. SSH-злучэнне пераносіць перанакіраваны трафік, а аддалены сервер злучаецца з мэтай.
Праслухоўванне толькі loopback
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
Замяніце ўліковы запіс і імя хоста. Сервер SSH павінен дазваляць перанакіраванне; адміністратар можа абмяжоўваць яго і мэты незалежна ад уваходу ва ўліковы запіс.
-D стварае дынамічнае перанакіраванне, а яўны loopback-адрас абмяжоўвае слухач гэтым камп’ютарам. -N не выконвае аддаленую каманду, -T не выдзяляе псеўдатэрмінал. ControlPath=none абыходзіць наяўны агульны master-працэс, а ForkAfterAuthentication=no пакідае гэты запуск на пярэднім плане.
Трымайце працэс запушчаным падчас выкарыстання проксі. Калі порт 1080 заняты, выберыце іншы вольны высокі порт і змяніце кліента. ExitOnForwardFailure=yes завяршае SSH, калі слухач не ўдалося стварыць.
Выкарыстанне канцавога пункта SOCKS
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
Гэты запыт дэлегуе апрацоўку імя мэты праз SOCKS5. Іншым праграмам патрэбны ўласныя налады SOCKS; поле HTTP-проксі не можа гаварыць SOCKS з гэтым слухачом.
Праверка ўладальніка порта:
ss -ltnp 'sport = :1080'
Патрэбны SSH-працэс павінен валодаць loopback-слухачом. Запыт праз яго правярае, ці аддалены сервер таксама дасягае мэты. Выкарыстоўвайце кантраляваную мэту, калі трэба праверыць назіраны выхад.
Час жыцця сеанса
Ctrl-C закрывае працэс SSH, слухач і перанакіраваныя злучэнні. Разрыў SSH-злучэння таксама робіць проксі недаступным.
ExitOnForwardFailure правярае стварэнне. Ён не завяршае SSH пры кожным пазнейшым збоі мэтавага злучэння, таму асобна правярайце сеанс, лакальны порт і запыт да мэты.