Android-тағы SSH SOCKS проксиі: неге қолданбаларыңыздың тек жартысы қосылады
ssh -D — SOCKS тыңдаушысын құрады, бүкіл құрылғының туннелін емес. Қолданбадан адаптерге және SSH-ке дейінгі тізбекті жүргізіп, содан кейін DNS мен өмірлік цикл кемшіліктерін тексеріңіз.
Сіз SSH арқылы кіресіз, -D 1080 қосасыз және команда сәтті орындалады. Енді телефонда SOCKS тыңдаушысы бар, ал қолданбалардың жартысы әлі де ұялы деректер арқылы сыртқа шығады. Бұл қалыпты нәтиже, сынған туннель емес: ssh -D прокси соңғы нүктесін жасайды, ал Android қолданбалары проксиді тек бірдеңе оларды мәжбүрлегенде ғана пайдаланады. Тізбекті қадам-қадаммен жүргізу жұмыстың әр бөлігі шын мәнінде қайда тұратынын көрсетеді.
Трафик басталатын жерден бастаңыз
Туннельді пайдалануы керек бір қолданбаны таңдап, оның өз прокси параметрі бар-жоғын тексеріңіз. SOCKS өрісі бар браузер оңай жағдай: оны 127.0.0.1:1080 мекенжайына бағыттаңыз, параметр болса қашықтағы DNS-ті қосыңыз, сұраныс өтеді. Чат клиентінің, карта қолданбасының немесе мұндай өрісі жоқ ойынның тыңдаушыны пайдалануға жолы жоқ, ал SSH командасына жазғаныңыз мұны өзгертпейді.
Басқа нәрсені тартпас бұрын, тыңдаушының телефонның өз shell-інен SOCKS-ті тікелей сөйлейтін клиентпен жұмыс істейтінін дәлелдеңіз:
ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
Қайтарылатын мекенжай SSH серверінің мекенжайы болуы керек, телефондікі емес. Егер солай болса, проксидің жартысы бітті, ал қалған жұмыс қамту туралы. Егер олай болмаса, алдымен SSH жағын түзетіңіз: кілтпен аутентификация, сервердің межелі жерге жету мүмкіндігі және SSH серверінің өз шығысы.
Android-қа қажет бөлікті қосыңыз
Прокси параметрі жоқ қолданбаларға олардың пакеттерін ұстап, прокси қосылыстарына айналдыратын нәрсе керек. Root жоқ құрылғыда бұл VPN қызметінің адаптері: виртуалдық интерфейсті алып, таңдалған трафикті жергілікті SOCKS тыңдаушысына жіберетін қолданба. Тізбек қолданба, адаптер, SOCKS тыңдаушы, SSH қосылысы, меже болып кетеді.
Адаптерді орнатыңыз, оған VPN рұқсатын беріңіз және ол ұстайтын қолданбаларды немесе маршруттарды таңдаңыз. Күй жолағындағы кілт белгішесі содан кейін адаптерді білдіреді, жеке коммерциялық VPN-ды емес. Android пайдаланушы профиліне бір ғана белсенді VPN қызмет қосылысына рұқсат береді, сондықтан екінші VPN қолданбасын іске қосу тізбекке қабат қоспайды: ол сол рөл үшін бәсекелеседі.
Бұл сәтті тест сізді адастыратын қадам да. Егер адаптер тек сіз бұрын проксиге бағыттаған браузерді ұстауға конфигурацияланған болса, бәрі жұмыс істейді және басқа ештеңе қамтылмаған. Құрылғы туннельде деп қорытынды жасамас бұрын ұстау тізімін оқыңыз.
SSH тасымалын ұстаудан тыс ұстаңыз
SSH қосылысының өзі ол ұстап тұрған SOCKS туннеліне қайта құйылмауы керек. Егер адаптер SSH қолданбасының трафигін ұстаса, туннель туннельді күтіп тұрған қосылысқа тәуелді болады, ал нәтиже — адаптер іске қосылған бойда тоқтап қалатын немесе сәтсіз болатын цикл.
Біріктірілген іске асырулар өз тасымал сокетін қорғайды. Жеке қолданбалармен қолдау көрсетілетін ерекшелік керек: SSH қолданбасын ұстаудан тыс қалдырыңыз немесе SSH соңғы нүктесін мекенжай бойынша алып тастаңыз. Екеуінің де құны бар. Бүкіл терминал қолданбасын алып тастау оның байланыссыз желілік белсенділігін де туннельден шығарады, ал мекенжай ерекшелігі сервер мекенжайы өзгергенде немесе атау келесі қосылыста басқаша шешілгенде бұзылады.
Ерекшелікті сырттан тексеріңіз: адаптерді қайта қосыңыз, содан кейін SSH сессиясының сақталатынын және проксиленген сұраныстың әлі де сервер мекенжайын хабарлайтынын растаңыз. Адаптер іске қосылғанша жұмыс істеп, содан кейін қатып қалатын сессия — сол цикл.
DNS пен UDP-ны тізбектің соңына дейін қадағалаңыз
OpenSSH-тың динамикалық бағыттауы TCP қосылыстарын тасымалдайды. Бұл UDP-associate немесе ICMP тасымалы емес, және адаптер UDP пакеттерін қабылдау арқылы UDP бағыттауын ойлап таба алмайды. UDP-ге міндеттенетіннің бәрі, оның ішінде QUIC және WebRTC медиасы, қолданбаға қарай не сәтсіз болады, не TCP-ге қайтады.
DNS өз шешімін қажет етеді. Атауды жергілікті шешетін қолданба сұранысты қосылудан бұрын кәдімгі резолвер арқылы жібереді, сондықтан туннель қосылысты тасымалдайды, бірақ іздеуді емес. Қашықтағы DNS опциясы бар проксиді білетін клиент бұдан қашады; онсыз ұсталған қолданба қашпайды. Адаптер өзгертті деп болжамай, қай резолвер жауап бергенін тексеріңіз.
SOCKS тыңдаушысын loopback-ке байланыстырып ұстаңыз, бірінші пайдалануда SSH серверінің host кілтін тексеріңіз және соңғы сайт үшін қалыпты HTTPS тексеруін орнында қалдырыңыз. SSH телефоннан серверге дейінгі бөлікті қорғайды; ол сервердің кейін жасайтынын шифрламайды.
Екі өмірлік циклді тексеріп, шешім қабылдаңыз
Адаптер мен SSH сессиясының өмірлік циклдері бөлек. Егер адаптер ұстауды жалғастырып жатқанда SSH құласа, қолданбалар айқын қатесіз ілініп қалуы мүмкін, өйткені олардың пакеттері әлі де жұмыс істейтін шығысы жоқ виртуалдық интерфейске кіреді. Егер адаптер тоқтаса, қолданбалар құрылғының VPN саясатына қарай тікелей шығады немесе блокталады.
Екі бағытты әдейі сынап көріңіз: адаптер жұмыс істеп тұрғанда SSH сессиясын өлтіріңіз, содан кейін SSH жоғары тұрғанда адаптерді тоқтатыңыз. Телефонның әр жағдайда жасайтыны — орнату нұсқаулығы не десе де, шын мәнінде енгізіп жатқан саясатыңыз.
Егер жұмыс ағыны болжамды сәтсіздік режимімен бүкіл құрылғыны қамтуды талап етсе, шынайы IP VPN немесе осы тізбекке арналған қолдау көрсетілетін адаптер — адал жауап. Байланыссыз ұстаушы қолданбаның жанында жүргізіліп қалдырылған shell сессиясы қолдау көрсетілетін құрылғы туннелі емес; бұл екеуінің бірі аяқталғанда не болатыны туралы келісім жоқ екі компонент.