Android'da SSH SOCKS proksisi: nega ilovalaringizning faqat yarmi ulanadi
ssh -D SOCKS tinglovchisini yaratadi, butun qurilma tunneli emas. Zanjirni ilovadan adapterga va SSH ga qadar kuzatib chiqing, so'ng DNS va hayot sikli bo'shliqlarini tekshiring.
SSH orqali kirasiz, -D 1080 qo'shasiz va buyruq muvaffaqiyatli bajariladi. Endi telefonda SOCKS tinglovchisi bor, ilovalarning yarmi esa hali ham mobil ma'lumot orqali chiqadi. Bu odatiy natija, buzilgan tunnel emas: ssh -D proksi oxirgi nuqtasini yaratadi, Android ilovalari esa faqat biror narsa ularni majburlasa proksidan foydalanadi. Zanjirni qadam-baqadam bosib o'tish ishning har bir qismi aslida qayerda joylashganini ko'rsatadi.
Trafik boshlanadigan joydan boshlang
Tunnelni ishlatishi kerak bo'lgan bitta ilovani tanlab, uning o'z proksi sozlamasi bor-yo'qligini tekshiring. SOCKS maydoni bo'lgan brauzer oson holat: uni 127.0.0.1:1080 manziliga yo'naltiring, sozlama bo'lsa masofaviy DNS ni yoqing, so'rov o'tadi. Chat mijozi, xarita ilovasi yoki bunday maydoni yo'q o'yin tinglovchidan foydalanish yo'liga ega emas, SSH buyrug'ida yozganingiz ham buni o'zgartirmaydi.
Boshqa narsani jalb qilishdan oldin, tinglovchi telefonning o'z shell'idan SOCKS ni to'g'ridan-to'g'ri gapiradigan mijoz bilan ishlashini isbotlang:
ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
Qaytgan manzil SSH serverining manzili bo'lishi kerak, telefonning emas. Agar shunday bo'lsa, proksining yarmi tugagan va qolgan ish qamrov haqida. Aks holda avval SSH tomonini tuzating: kalit autentifikatsiyasi, serverning manzilga yetib borish qobiliyati va SSH serverining o'z chiqishi.
Android uchun kerak bo'lgan qismni qo'shing
Proksi sozlamasi bo'lmagan ilovalarga ularning paketlarini tutib, proksi ulanishlariga aylantiradigan narsa kerak. root bo'lmagan qurilmada bu VPN xizmati adapteri: virtual interfeysni olib, tanlangan trafikni mahalliy SOCKS tinglovchisiga yuboradigan ilova. Zanjir ilova, adapter, SOCKS tinglovchi, SSH ulanishi, manzilga aylanadi.
Adapterni o'rnating, unga VPN ruxsati bering va u tutishi kerak bo'lgan ilovalar yoki marshrutlarni tanlang. Holat satridagi kalit belgisi endi adapterni bildiradi, alohida tijorat VPN ni emas. Android har bir foydalanuvchi profili uchun bitta faol VPN xizmat ulanishiga ruxsat beradi, shuning uchun ikkinchi VPN ilovasini ishga tushirish zanjirga qatlam qo'shmaydi: u xuddi shu rol uchun raqobatlashadi.
Muvaffaqiyatli sinov sizni chalg'itishi mumkin bo'lgan bosqich ham shu. Agar adapter faqat siz allaqachon proksiga yo'naltirgan brauzerni tutishga sozlangan bo'lsa, hamma narsa ishlaydi va boshqa hech narsa qamrab olinmagan. Qurilma tunnelda deb xulosa qilishdan oldin tutish ro'yxatini o'qing.
SSH transportini tutishdan tashqarida saqlang
SSH ulanishining o'zi u qo'llab-quvvatlayotgan SOCKS tunneliga qayta oqmasligi kerak. Agar adapter SSH ilovasining trafigini tutsa, tunnel tunnelni kutayotgan ulanishga bog'liq bo'ladi, natija esa adapter ishga tushishi bilanoq tiqilib qoladigan yoki muvaffaqiyatsiz bo'ladigan halqa.
Integratsiyalashgan implementatsiyalar o'z transport soketini himoya qiladi. Alohida ilovalar bilan qo'llab-quvvatlanadigan istisno kerak: SSH ilovasini tutishdan tashqarida qoldiring yoki SSH oxirgi nuqtasini manzil bo'yicha istisno qiling. Ikkalasining ham narxi bor. Butun terminal ilovasini istisno qilish uning bog'liq bo'lmagan tarmoq faoliyatini ham tunneldan chiqaradi, manzil istisnosi esa server manzili o'zgarganda yoki keyingi ulanishda nom boshqacha hal qilinganda buziladi.
Istisnoni tashqaridan tekshiring: adapterni qayta ulang, so'ng SSH sessiyasi omon qolishini va proksi so'rovi hanuz server manzilini xabar qilishini tasdiqlang. Adapter ishga tushguncha ishlab, keyin qotib qoladigan sessiya o'sha halqa.
DNS va UDP ni zanjir oxirigacha kuzatib boring
OpenSSH dinamik yo'naltirishi TCP ulanishlarini tashiydi. Bu UDP-associate yoki ICMP transporti emas, adapter UDP paketlarini qabul qilib UDP yo'naltirishni o'ylab topa olmaydi. UDP ni talab qiladigan hamma narsa, QUIC va WebRTC media ham, ilovaga qarab muvaffaqiyatsiz bo'ladi yoki TCP ga qaytadi.
DNS o'z qarorini talab qiladi. Nomni mahalliy hal qiladigan ilova so'rovni ulanishdan oldin oddiy rezolver orqali yuboradi, shuning uchun tunnel ulanishni tashiydi, qidiruvni emas. Masofaviy DNS opsiyasi bo'lgan proksini biladigan mijoz bundan qochadi; bu opsiyasiz tutib olingan ilova qochmaydi. Adapter o'zgartirgan deb taxmin qilish o'rniga qaysi rezolver javob berganini tekshiring.
SOCKS tinglovchisini loopback ga bog'langan holda saqlang, birinchi ishlatishda SSH serverining host kalitini tekshiring va yakuniy sayt uchun oddiy HTTPS tekshiruvini o'z joyida qoldiring. SSH telefondan servergacha bo'lgan qismni himoya qiladi; server keyin qiladigan ishni shifrlamaydi.
Ikki hayot siklini tekshirib, qaror qabul qiling
Adapter va SSH sessiyasining hayot sikllari alohida. Agar adapter tutishda davom etayotganda SSH yiqilsa, ilovalar aniq xatosiz osilib qolishi mumkin, chunki ularning paketlari hali ham ishlaydigan chiqishi yo'q virtual interfeysga kiradi. Agar adapter to'xtasa, qurilmaning VPN siyosatiga qarab ilovalar to'g'ridan-to'g'ri chiqadi yoki bloklanadi.
Ikkala yo'nalishni ataylab sinab ko'ring: adapter ishlab turganda SSH sessiyasini o'ldiring, so'ng SSH yuqorida turganda adapterni to'xtating. Har bir holatda telefon qiladigan ish — o'rnatish yo'riqnomasi nima deganidan qat'i nazar, siz haqiqatda joriy qilayotgan siyosat.
Agar ish oqimi bashorat qilinadigan nosozlik rejimi bilan butun qurilma qamrovini talab qilsa, haqiqiy IP VPN yoki shu zanjir uchun yaratilgan qo'llab-quvvatlanadigan adapter halol javobdir. Bog'liq bo'lmagan tutuvchi ilova yonida ishlashga qoldirilgan shell sessiyasi qo'llab-quvvatlanadigan qurilma tunneli emas; bu ikkita komponent, ulardan biri tugaganda nima bo'lishi haqida kelishuv yo'q.