USB арқылы Android үшін кері тетеринг: командалар, тексерулер, қайтару
Кері тетеринг телефон трафигін хосттағы реле арқылы өткізеді. Телефоннан хостқа дейінгі жолды құрыңыз, хост VPN-ін циклде ұстаңыз және әр секірісті тексеріңіз.
Кері тетеринг телефон трафигін компьютерге жылжытып, сол компьютердің қосылымы арқылы сыртқа шығарады. Тек USB кабелі бұны істемейді: телефонға оның маршруттауын өз мойнына алатын ұстау қызметі, ал компьютерге сол пакеттерді әрі қарай таситын реле керек. Жолда төрт секіріс бар: қолданба, телефондағы ұстау, USB релесі және хосттың шығысы, және әрқайсысының иесі бөлек. Бұл нұсқаулық сол жолды құрады, хост VPN-ін тиісті орнына қояды және нәтижеге сенбес бұрын әр секірісті тексереді.
Бірдеңе іске қоспас бұрын секірістерді картаға түсіріңіз
Әр секіріс өз саясатын қолданады, сондықтан бір шетте жұмыс істеген нәтиже екіншісі туралы ештеңе айтпайды. Қолданба мақсат пен шешкішті таңдайды, ұстау қызметі қай трафик релеге кіретінін шешеді, реле оны хост сокеттеріне жібереді, ал хосттың маршруттауы мен VPN-і мақсат ақырында көретін мекенжайды анықтайды.
| 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 |
Телефонның ұстау рөлін бір уақытта VPN қызметінің бір ғана клиенті ұстай алады, сондықтан екінші қарапайым VPN қолданбасы реленің үстіне қабатталмайды. Егер VPN компьютерге тиесілі болса, ұстау қызметі сол компьютерге қарай кіру буыны, ал қашықтағы туннель нәтижені қорғап қойды деген дәлел емес.
Телефонға тиіспес бұрын релені дайындаңыз
Gnirehtet осы архитектураның құжатталған үлгісі: телефонда root-сыз VPN қызметінің клиенті және хостта ADB арқылы тасымалданатын реле, IPv4 үстінде TCP мен UDP-ны қолдайды. Оның қоймасы жобаның енді белсенді қолдау көрсетілмейтінін де айтады, сондықтан оны анықтамалық дизайн және зертхана үшін жұмыс құралы ретінде қарастырыңыз, басқарылатын парк бойынша стандарттауға болатын қолдаулы өнім ретінде емес.
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
Алдымен adb devices іске қосыңыз. Хосттың жөндеу кілтін қабылдамаған телефон рұқсатсыз деп хабарланады және құрылғыдағы сұрау қабылданбайынша реле қосылмайды. gnirehtet run клиентті орнатады, релені іске қосады және ұстауды белсендіреді; қадамдарды бөлетін нұсқада оның орнына құжатталған install, relay және start ішкі командаларын пайдаланыңыз.
ADB қатынасы — құрылғыны басқару қатынасы, желілік параметр емес. Тек өзіңіз басқаратын компьютерге рұқсат беріңіз және тапсырма біткенде сол рұқсатты кері қайтаруды жоспарлаңыз.
Хост VPN-ін жолға қайтарыңыз
Реле — хосттың қарапайым процесі, сондықтан оның әрі қарайғы қосылымдары хосттың маршруттық кестесіне сүйенеді. Толық туннель профилі оларды тасиды; бөлінген туннель тасымауы мүмкін. Егер хост VPN-і қолданба бойынша басқаруды қолданса, реленің бинарін рұқсат етілген жиынға қосыңыз, әйтпесе браузер қорғалған болып көрінгенмен реле физикалық интерфейсті пайдалана береді.
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
Хост VPN-ін қоспас бұрын және кейін алғашқы екі команданы іске қосыңыз. Мекенжай өзгермесе, реле туннельде емес, клиент терезесі не десе де. Тек жекеменшік туннель жалпыға ортақ мақсаттарды хосттың қалыпты шығысында қалдырады, бұл ағуға ұқсайды, бірақ сіз орнатқан саясат.
Реледен өтетін трафик үшін DNS хостта шешіледі, сондықтан атауларды қай сервер көретінін хосттың шешкіші анықтайды. Телефондағы жеке DNS параметрі реледен өтпейді, ал телефон жағындағы шешкіш тесті хосттың сұрауларын сипаттамайды.
Әр секірісті жеке тексеріңіз
Осы ретпен үш тексеру: телефон релеге жетеді, реле хост саясаты бойынша мақсатқа жетеді, ал қолданба мақсатты дұрыс шешіп пайдаланады. Беттерді қайта жүктеп болжаудың орнына бірінші сәтсіздікте тоқтаңыз.
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
Қосылымдар дампындағы VPN желісінің жазбасы ұстау қызметінің белсенді екенін көрсетеді; реленің өз журналы ағындар келе ме, жоқ па соны көрсетеді. Олардың бірінде болмауы мәселені таза бөледі: ұстау жоқ болса телефон жағы, ағын жоқ болса хост жағы.
Хостта жұмыс істейтін браузер хост браузерінің жолын дәлелдейді, реле процесінің жолын емес. Әрқайсысы хабарлайтын мекенжайларды салыстырыңыз және жеке ресурс пен жалпыға ортақ бетті де тексеріңіз, өйткені тек жекеменшік туннель біреуін маршруттай алып, екіншісін маршруттай алмауы мүмкін.
Бұзып, ақаулық әрекетін таңдаңыз
Қайтару нұсқаулықтың бөлігі. Релені тоқтатып жойыңыз, ұстау клиентін жойыңыз және тапсырма аяқталғанда телефонның әзірлеуші параметрлерінен хосттың жөндеу рұқсатын кері қайтарыңыз.
gnirehtet stop
gnirehtet uninstall
adb kill-server
Реле жоғалғанда телефон не істеуі керектігін шешіңіз. Айқын таңдау болмаса ол ұялы деректерге қайта оралып, маршруттауға тырысқан трафигіңізді ағызуы мүмкін, сондықтан қосылымдарды блоктау әрекетін немесе VPN саясатын әдейі орнатып, оған сүйенбес бұрын бұзуды тексеріңіз.
Рұқсат берілген хостты, реле нұсқасын, хост туннель саясатын және бұзу қадамдарын жазыңыз. Дәл сол жазба келесі кері тетеринг конфигурациясын қайта ашуға кететін тағы бір түстен кейін емес, қайталанатын етеді.