Бар HTTP проксиге SSH жергілікті бағыттау: екі loopback мекенжайы
SSH хосттағы бар прокси бір жергілікті бағыттау арқылы бір қолданбаға қызмет көрсете алады. Екі loopback мекенжайын және прокси хаттамасын бөлек ұстаңыз.
Сіздің мақұлданған проксиіңіз секіру хостында жұмыс істейді, онда ол тек loopback-те тыңдайды, сондықтан сол машинаның сыртындағы ештеңе оған жете алмайды. Сізге VPN немесе жаңа прокси қажет емес; сізге сол машинаның бір порты өз портыңызға тасымалдануы қажет. Жергілікті бағыттау дәл осыны жасайды, және ол бір пәрмен мен қолданбаның бір параметрін талап етеді. Шатасу әдетте қай loopback мекенжайы қай машинаға тиесілі екенін араластырудан туындайды.
Тіркелген прокси бұрыннан бар-жоғын анықтаңыз
Бұл әдіс қазірдің өзінде жұмыс істеп тұрған қызметті бағыттайды. Егер қашықтағы хостта тек SSH демоны болып, прокси болмаса, қанша бағыттау жасасаңыз да ол пайда болмайды, және қосылым қашықтағы жақтан қабылданбайды. Проксидің байланғанын, портын және оның 127.0.0.1-де әлде нақты интерфейс мекенжайында тыңдайтынын растаңыз, өйткені бағыттау дәл сол мекенжайды нысанаға алуы керек.
Мұны алдын ала растау сізді ешбір нәрсеге қосылмаған туннельді жөндеуден құтқарады.
Бағыттауды құрып, пәрменді оқыңыз
Сізге керек пішін ноутбуғыңыздағы loopback портын байланыстырып, оны сервер жағынан проксидің мекенжайына сервер көретіндей қосады.
ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
-L 127.0.0.1:13128:127.0.0.1:3128 [email protected]-N қашықтағы пәрменді басады, ал -T termios бөлуін басады, өйткені сізге қабық емес, туннель керек. Бірінші loopback мекенжайы ноутбук тыңдайтын жер; екіншісін SSH сервері шешеді, сондықтан ондағы 127.0.0.1 сол машинадағы проксиді білдіреді. ExitOnForwardFailure жергілікті порт бұрыннан алынған болса, ештеңе бағыттамайтын сессия бастаудың орнына пәрменді дауыстап сәтсіз етеді. Мақсат мекенжайды сервер шешетіндей жазыңыз, өйткені тек ноутбуғыңыз шеше алатын атау қарсы жақта сәтсіз болады.
Сервердің өз саясаты осының кез келгені жұмыс істеуінен бұрын қолданылады. AllowTcpForwarding оған рұқсат беруі керек, ал PermitOpen сессия қандай мақсаттар мен порттарға жете алатынын шектеуі мүмкін, сондықтан клиент қабылдаған бағыттауды сервер бәрібір қабылдамауы мүмкін. Бас тарту клиентте бағыттау немесе арна қатесі ретінде көрінеді, және сол хабарды оқу пәрменді өңдеуден жылдамырақ.
Бір қолданбаны бағыттауға бағыттаңыз
Қолданбаны http://127.0.0.1:13128 мекенжайындағы HTTP проксиді пайдалануға баптаңыз, егер қашықтағы прокси талап етсе, тіркелгі деректерімен бірге. HTTPS мақсаттары үшін қолданбаның өз сертификат тексеруін сақтаңыз, өйткені прокси туннелі оны алмастырмайды. Бұл бір қызметтің тіркелген бағыттауы, сондықтан қолданбаға прокси туралы айту керек, оны өзі табуға қалдыруға болмайды.
Кез келген тұрақты баптау алдында жылдам тексеру: curl -x http://127.0.0.1:13128 -I https://example.com, ол прокси қолдауы тиіс HTTP CONNECT әдісін жаттықтырады.
Билікті қай жерде болса, сонда ұстаңыз
Қашықтағы прокси қандай мақсаттар мен әдістерге рұқсат беретінін әлі де шешеді, ал SSH кіруі әр тіркелгіге үнсіз жалпы веб релесін бермеуі керек. Ноутбукта 127.0.0.1-ге байлау портты жергілікті желіңізге жарияламауға мүмкіндік береді, және ол портты сол машинадағы басқа процестерден жеке етпейді. Бұл байлауды проксиді бөлісу үшін wildcard мекенжайымен ауыстыру — басқарылмайтын ашық реле осылай пайда болады.
SSH тасымалы серверге дейінгі секірісті қорғайды. Осы нүктеден кейін прокси өз қосылымын ашады, сондықтан мақсатқа қарапайым HTTP сұрауы серверден кейін де қарапайым күйінде қалады, тіпті бірінші сегмент шифрланған болса да.
Екі шетін тексеріп, содан кейін тазалаңыз
Жергілікті туннельді орнату мен қашықтағы қызметтің сәттілігі — әртүрлі нәтижелер, ал пәрменнің шығу мәртебесі сізге тек біріншісі туралы айтады. Тыңдаушының бар екенін ss -ltn арқылы тексеріңіз, содан кейін рұқсат етілген қолданба сұрауын және прокси қабылдамауы тиіс сұрауды жасаңыз. Екеуі де күткендей әрекет етсе, жол шынайы; егер туннель жұмыс істеп, әр сұрау сәтсіз болса, прокси қабылдамайды немесе мақсатқа жете алмайды.
Бітіргенде, оны иеленетін SSH процесін тоқтатыңыз, қолданбадан прокси параметрін алып тастаңыз және тапсырмадан ұзақ өмір сүретін тыңдаушыны қалдырудың орнына жергілікті порттың жоғалғанын растаңыз.