Android uchun USB orqali teskari tethering: buyruqlar, tekshiruvlar, qaytarish
Teskari tethering telefon trafigini xostdagi reley orqali o’tkazadi. Telefondan xostgacha yo’lni quring, xost VPN’ini halqada saqlang va har bir sakrashni tekshiring.
Teskari tethering telefon trafigini kompyuterga ko’chiradi va shu kompyuterning ulanishi orqali tashqariga chiqaradi. Faqat USB kabel buni qilmaydi: telefonga uning marshrutlashini o’z zimmasiga oladigan ushlash xizmati, kompyuterga esa o’sha paketlarni oldinga olib boradigan reley kerak. Yo’lda to’rt sakrash bor: dastur, telefonda ushlash, USB reley va xostning chiqishi, va har birining egasi boshqa. Bu qo’llanma o’sha yo’lni quradi, xost VPN’ini o’z joyiga qo’yadi va natijaga ishonishdan oldin har bir sakrashni tekshiradi.
Biror narsa ishga tushirishdan oldin sakrashlarni xaritalang
Har bir sakrash o’z siyosatini qo’llaydi, shuning uchun bir chetda ishlaydigan natija ikkinchisi haqida hech narsa demaydi. Dastur manzil va hal qiluvchini tanlaydi, ushlash xizmati qaysi trafik releyga kirishini hal qiladi, reley uni xost soketlariga uzatadi, xostning marshrutlashi va VPN’i esa manzil oxir-oqibat ko’radigan adresni belgilaydi.
| Hop | Owner | What it decides |
|---|---|---|
| Application request | The app | Destination, resolver, address family |
| Capture service | Phone VpnService app | Which traffic enters the relay at all |
| ADB relay | Host process | Forwarding phone flows to host sockets |
| Host egress | Host routing and VPN | Exit address and host policy |
Bir vaqtda telefonning ushlash rolini faqat bitta VPN xizmati mijozi egallashi mumkin, shuning uchun ikkinchi oddiy VPN ilovasi reley ustiga qatlanmaydi. Agar VPN kompyuterga tegishli bo’lsa, ushlash xizmati o’sha kompyuterga qaratilgan kirish bo’g’ini, masofaviy tunnel natijani allaqachon himoya qiladi degan dalil emas.
Telefonga tegishdan oldin releyni tayyorlang
Gnirehtet bu arxitekturaning hujjatlashtirilgan namunasi: telefonda root talab qilmaydigan VPN xizmati mijozi va xostda ADB orqali olib boriladigan reley, IPv4 ustida TCP va UDPni qo’llab-quvvatlaydi. Uning ombori loyiha endi faol qo’llab-quvvatlanmasligini ham aytadi, shuning uchun uni namunaviy dizayn va laboratoriya uchun ishlaydigan asbob sifatida qabul qiling, boshqariladigan park bo’ylab standartlashtiriladigan qo’llab-quvvatlanadigan mahsulot sifatida emas.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Avval adb devices ishga tushiring. Xostning disk raskadrovka kalitini qabul qilmagan telefon ruxsatsiz deb xabar qilinadi va qurilmadagi so’rov qabul qilinmaguncha reley ulanmaydi. gnirehtet run mijozi o’rnatadi, releyni ishga tushiradi va ushlashni faollashtiradi; qadamlarni ajratadigan versiyada uning o’rniga hujjatlashtirilgan install, relay va start subbuyruqlaridan foydalaning.
ADB kirishi qurilmani boshqarish munosabati, tarmoq sozlamasi emas. Faqat o’zingiz boshqaradigan kompyuterga ruxsat bering va vazifa tugagach bu ruxsatni qaytarib olishni rejalashtiring.
Xost VPN’ini yana yo’lga qaytaring
Reley xostning oddiy jarayoni, shuning uchun uning keyingi ulanishlari xostning marshrutlash jadvaliga bo’ysunadi. To’liq tunnel profili ularni olib o’tadi; bo’lingan tunnel olib o’tmasligi mumkin. Agar xost VPN’i har bir ilova bo’yicha boshqaruvdan foydalansa, reley binar faylini ruxsat etilgan to’plamga qo’shing, aks holda brauzer himoyalangandek ko’rinib turganda reley jismoniy interfeysdan foydalanishda davom etadi.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Xost VPN’ini ulashdan oldin va keyin birinchi ikkita buyruqni ishga tushiring. Agar adres o’zgarmasa, mijoz oynasi nima desa ham reley tunnelda emas. Faqat xususiy tunnel ommaviy manzillarni xostning odatiy chiqishida qoldiradi, bu oqishga o’xshaydi, lekin siz belgilagan siyosatdir.
Releydan o’tadigan trafik uchun DNS xostda hal qilinadi, shuning uchun qaysi server nomlarni ko’rishini xostning hal qiluvchisi belgilaydi. Telefondagi xususiy DNS sozlamasi reley orqali o’tmaydi va telefon tomonidagi hal qiluvchi sinovi xostning so’rovlarini tasvirlamaydi.
Har bir sakrashni alohida tekshiring
Shu tartibda uchta tekshiruv: telefon releyga yetadi, reley xost siyosati ostida manzilga yetadi, dastur esa manzilni to’g’ri hal qiladi va ishlatadi. Sahifalarni qayta yuklab taxmin qilish o’rniga birinchi muvaffaqiyatsizlikda to’xtang.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
Ulanishlar dumpida VPN tarmog’i yozuvi ushlash xizmati faol ekanini ko’rsatadi; releyning o’z jurnali oqimlar kelayotganini ko’rsatadi. Ulardan birida yo’qligi muammoni toza ajratadi: ushlash yo’q bo’lsa telefon tomoni, oqim yo’q bo’lsa xost tomoni.
Xostda ishlaydigan brauzer xost brauzerining yo’lini isbotlaydi, reley jarayonining yo’lini emas. Har biri xabar qiladigan adreslarni solishtiring va xususiy manbani ham, ommaviy sahifani ham sinab ko’ring, chunki faqat xususiy tunnel birini marshrutlashi mumkin, ikkinchisini emas.
Qismlarga ajratib, xato xatti-harakatini tanlang
Qaytarish qo’llanmaning bir qismi. Releyni to’xtatib olib tashlang, ushlash mijozini o’chiring va vazifa tugagach telefonning dasturchi sozlamalaridan xostning disk raskadrovka ruxsatini qaytarib oling.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Reley yo’qolganda telefon nima qilishini hal qiling. Aniq tanlov bo’lmasa, u mobil ma’lumotga qaytib, marshrutlashga uringan trafigingizni oqizib yuborishi mumkin, shuning uchun ulanishlarni bloklash xatti-harakatini yoki VPN siyosatini ataylab sozlang va unga tayanishdan oldin qismlarga ajratishni sinab ko’ring.
Ruxsat berilgan xostni, reley versiyasini, xost tunnel siyosatini va qismlarga ajratish qadamlarini yozib oling. Aynan shu yozuv keyingi teskari tethering sozlashini yana bir qayta kashf qilish kunidan ko’ra takrorlanadigan qiladi.