Android SSH SOCKS starpniekserveris: kāpēc savienojas tikai puse jūsu lietotņu
ssh -D izveido SOCKS klausītāju, nevis visas ierīces tuneli. Izejiet ķēdi no lietotnes līdz adapterim un SSH, pēc tam pārbaudiet DNS un dzīves cikla robus.
Jūs piesakāties ar SSH, pievienojat -D 1080, un komanda izdodas. Tālrunī tagad ir SOCKS klausītājs, un puse lietotņu joprojām iziet caur mobilajiem datiem. Tas ir normāls rezultāts, nevis salauzts tunelis: ssh -D izveido starpniekservera galapunktu, un Android lietotnes starpniekserveri izmanto tikai tad, ja kaut kas tās piespiež. Ķēdes iziešana soli pa solim parāda, kur patiesībā atrodas katra darba daļa.
Sāciet tur, kur sākas trafiks
Izvēlieties vienu lietotni, kurai vajadzētu izmantot tuneli, un pārbaudiet, vai tai ir savs starpniekservera iestatījums. Pārlūks ar SOCKS lauku ir vienkāršais gadījums: norādiet to uz 127.0.0.1:1080, ieslēdziet attālināto DNS, ja iestatījums pastāv, un pieprasījums iziet. Tērzēšanas klientam, karšu lietotnei vai spēlei bez šāda lauka nav veida, kā izmantot klausītāju, un nekas, ko ierakstīsit SSH komandā, to nemaina.
Pirms iesaistāt ko citu, pierādiet, ka klausītājs darbojas no paša tālruņa čaulas ar klientu, kas runā SOCKS tieši:
ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
Atgrieztajai adresei jābūt SSH servera adresei, nevis tālruņa. Ja tā ir, starpniekservera puse ir pabeigta, un pārējais darbs ir par pārklājumu. Ja nav, vispirms salabojiet SSH pusi: atslēgas autentifikāciju, servera spēju sasniegt galamērķi un paša SSH servera izeju.
Pievienojiet daļu, kas nepieciešama Android
Lietotnēm bez starpniekservera iestatījuma vajag kaut ko, kas pārtver to paketes un pārvērš tās starpniekservera savienojumos. Ierīcē bez root tas ir VPN pakalpojuma adapteris: lietotne, kas pārņem virtuālo saskarni un pārsūta atlasīto trafiku uz vietējo SOCKS klausītāju. Ķēde kļūst lietotne, adapteris, SOCKS klausītājs, SSH savienojums, galamērķis.
Instalējiet adapteri, piešķiriet tam VPN atļauju un izvēlieties lietotnes vai maršrutus, kas tam jāpārtver. Statusa joslas atslēgas ikona tad apzīmē adapteri, nevis atsevišķu komerciālu VPN. Android atļauj vienu aktīvu VPN pakalpojuma savienojumu uz lietotāja profilu, tāpēc otras VPN lietotnes palaišana nepievieno slāni ķēdei: tā konkurē par to pašu lomu.
Šis ir arī solis, kurā veiksmīgs tests var jūs maldināt. Ja adapteris ir iestatīts pārtvert tikai to pārlūku, kuru jau novirzījāt uz starpniekserveri, viss darbojas un nekas cits nav pārklāts. Izlasiet pārtveršanas sarakstu, pirms secināt, ka ierīce ir tunelī.
Turiet SSH transportu ārpus pārtveršanas
Pašam SSH savienojumam nevajadzētu atgriezties tajā SOCKS tunelī, kuru tas uztur. Ja adapteris pārtver SSH lietotnes trafiku, tunelis ir atkarīgs no savienojuma, kas gaida tuneli, un rezultāts ir cilpa, kas iestrēgst vai neizdodas, tiklīdz adapteris sāk darboties.
Integrētas implementācijas aizsargā savu transporta ligzdu. Ar atsevišķām lietotnēm vajadzīgs atbalstīts izņēmums: atstājiet SSH lietotni ārpus pārtveršanas vai izslēdziet SSH galapunktu pēc adreses. Abiem ir cena. Visas termināļa lietotnes izslēgšana izņem no tuneļa arī tās nesaistīto tīkla darbību, un adreses izņēmums salūzt, kad mainās servera adrese vai kad nākamajā savienojumā vārds tiek atrisināts citādi.
Pārbaudiet izņēmumu no ārpuses: pievienojiet adapteri no jauna, pēc tam apstipriniet, ka SSH sesija izdzīvo un starpniekservera pieprasījums joprojām ziņo servera adresi. Sesija, kas darbojas, līdz adapteris sāk darboties, un tad sasalst, ir tā cilpa.
Sekojiet DNS un UDP līdz ķēdes galam
OpenSSH dinamiskā pāradresācija pārvadā TCP savienojumus. Tas nav UDP-associate vai ICMP transports, un adapteris nevar izdomāt UDP pāradresāciju, pieņemot UDP paketes. Viss, kas uzstāj uz UDP, tostarp QUIC un WebRTC mediji, vai nu neizdosies, vai atkritīs uz TCP atkarībā no lietotnes.
DNS vajag savu lēmumu. Lietotne, kas vārdu atrisina lokāli, pirms pievienošanās nosūta vaicājumu caur parasto atrisinātāju, tāpēc tunelis pārvadā savienojumu, bet ne meklēšanu. Starpniekserveri apzināts klients ar attālinātā DNS opciju no tā izvairās; pārtverta lietotne bez tās ne. Pārbaudiet, kurš atrisinātājs atbildēja, nevis pieņemiet, ka adapteris to mainīja.
Turiet SOCKS klausītāju piesaistītu loopback, pirmajā lietošanā pārbaudiet SSH servera host atslēgu un atstājiet parasto HTTPS validāciju vietā gala vietnei. SSH aizsargā posmu no tālruņa līdz serverim; tas nešifrē to, ko serveris dara pēc tam.
Pārbaudiet divus dzīves ciklus un izlemiet
Adapterim un SSH sesijai ir atsevišķi dzīves cikli. Ja SSH nokrīt, kamēr adapteris turpina pārtvert, lietotnes var iekārties bez skaidras kļūdas, jo to paketes joprojām nonāk virtuālajā saskarnē, kurai vairs nav strādājošas izejas. Ja adapteris apstājas, lietotnes vai nu iet tieši, vai tiek bloķētas, atkarībā no ierīces VPN politikas.
Apzināti pārbaudiet abus virzienus: nogaliniet SSH sesiju, kamēr adapteris darbojas, pēc tam apturiet adapteri, kamēr SSH paliek augšā. Tas, ko tālrunis dara katrā gadījumā, ir politika, kuru jūs patiešām ieviešat, lai ko arī apgalvotu instalācijas norādes.
Ja darbplūsmai vajadzīgs visas ierīces pārklājums ar paredzamu kļūmes režīmu, godīgā atbilde ir īsts IP VPN vai šai ķēdei paredzēts uzturēts adapteris. Čaulas sesija, kas atstāta darboties blakus nesaistītai pārtveršanas lietotnei, nav uzturēts ierīces tunelis; tie ir divi komponenti bez vienošanās par to, kas notiek, kad viens no tiem beidzas.