Proksi ya SOCKS kupitia SSH kwenye Android: kwa nini nusu ya programu zako huunganishwa
ssh -D hujenga kisikilizaji cha SOCKS, si handaki la kifaa kizima. Fuata mnyororo kutoka programu hadi adapta na SSH, kisha angalia mapungufu ya DNS na mzunguko wa maisha.
Unaingia kwa SSH, unaongeza -D 1080, na amri inafanikiwa. Sasa kuna kisikilizaji cha SOCKS kwenye simu, na nusu ya programu bado zinatoka kwa data ya simu. Hiyo ni matokeo ya kawaida, si handaki lililovunjika: ssh -D huunda kituo cha mwisho cha proksi, na programu za Android hutumia proksi tu ikiwa kitu kikizilazimisha. Kufuata mnyororo hatua kwa hatua kunaonyesha kila sehemu ya kazi iko wapi kweli.
Anza pale trafiki inapoanzia
Chagua programu moja inayopaswa kutumia handaki na uangalie ikiwa ina mpangilio wake wa proksi. Kivinjari chenye sehemu ya SOCKS ni kisa rahisi: elekeza kwenye 127.0.0.1:1080, washa DNS ya mbali ikiwa mpangilio upo, na ombi linapita. Mteja wa gumzo, programu ya ramani au mchezo usio na sehemu hiyo hauna njia ya kutumia kisikilizaji, na chochote unachoandika kwenye amri ya SSH hakibadilishi hilo.
Kabla ya kuhusisha kitu kingine chochote, thibitisha kuwa kisikilizaji kinafanya kazi kutoka shell ya simu yenyewe kwa mteja anayezungumza SOCKS moja kwa moja:
ssh -N -D 1080 [email protected]
curl --socks5-hostname 127.0.0.1:1080 https://ifconfig.me
Anwani inayorudi inapaswa kuwa ya seva ya SSH, si ya simu. Ikiwa ni hivyo, nusu ya proksi imekamilika na kazi iliyobaki inahusu ufikiaji. Ikiwa sivyo, rekebisha upande wa SSH kwanza: uthibitishaji wa ufunguo, uwezo wa seva kufikia lengo na njia ya kutoka ya seva ya SSH yenyewe.
Ongeza sehemu ambayo Android inahitaji
Programu zisizo na mpangilio wa proksi zinahitaji kitu kinachokamata pakiti zao na kuzibadilisha kuwa miunganisho ya proksi. Kwenye kifaa kisicho na root, hicho ni adapta ya huduma ya VPN: programu inayochukua kiolesura pepe na kupeleka trafiki iliyochaguliwa kwa kisikilizaji cha SOCKS cha ndani. Mnyororo unakuwa programu, adapta, kisikilizaji cha SOCKS, muunganisho wa SSH, lengo.
Sakinisha adapta, ipe ruhusa ya VPN na uchague programu au njia inazopaswa kukamata. Aikoni ya ufunguo kwenye upau wa hali basi inawakilisha adapta, si VPN ya kibiashara tofauti. Android huruhusu muunganisho mmoja hai wa huduma ya VPN kwa profaili ya mtumiaji, kwa hivyo kuanzisha programu ya pili ya VPN hakuongezi tabaka kwenye mnyororo: inashindana kwa nafasi hiyo hiyo.
Hii pia ni hatua ambayo jaribio lililofanikiwa linaweza kukudanganya. Ikiwa adapta imewekwa kukamata kivinjari tu ulichokwisha elekeza kwenye proksi, kila kitu kinafanya kazi na hakuna kingine kilichofunikwa. Soma orodha ya ukamataji kabla ya kuhitimisha kuwa kifaa kiko kwenye handaki.
Weka usafirishaji wa SSH nje ya ukamataji
Muunganisho wa SSH wenyewe haupaswi kurudishwa kwenye handaki la SOCKS analolihifadhi. Ikiwa adapta inakamata trafiki ya programu ya SSH, handaki linategemea muunganisho unaosubiri handaki, na matokeo ni mzunguko unaokwama au kushindwa mara tu adapta inapoanza.
Utekelezaji jumuishi hulinda soketi yao ya usafirishaji. Kwa programu tofauti unahitaji msamaha unaoungwa mkono: acha programu ya SSH nje ya ukamataji, au ondolea kituo cha SSH kwa anwani. Zote zina gharama. Kuondoa programu nzima ya terminal kunaondoa pia shughuli zake za mtandao zisizohusiana kutoka kwenye handaki, na msamaha wa anwani huvunjika anwani ya seva inapobadilika au jina linapotatuliwa tofauti kwenye muunganisho ujao.
Angalia msamaha kutoka nje: unganisha tena adapta, kisha thibitisha kuwa kikao cha SSH kinaendelea kuishi na ombi lililopitia proksi bado linaripoti anwani ya seva. Kikao kinachofanya kazi hadi adapta ianze kisha kigande ni mzunguko huo.
Fuata DNS na UDP hadi mwisho wa mnyororo
Uelekezaji unaobadilika wa OpenSSH hubeba miunganisho ya TCP. Si usafirishaji wa UDP-associate au ICMP, na adapta haiwezi kubuni uelekezaji wa UDP kwa kupokea pakiti za UDP. Chochote kinachosisitiza UDP, ikiwa ni pamoja na QUIC na midia ya WebRTC, kitashindwa au kitarudi kwa TCP kulingana na programu.
DNS inahitaji uamuzi wake. Programu inayotatua jina ndani hutuma swali kupitia kisuluhishi cha kawaida kabla ya kuunganisha, kwa hivyo handaki hubeba muunganisho lakini si utafutaji. Mteja anayefahamu proksi mwenye chaguo la DNS ya mbali huepuka hilo; programu iliyokamatwa isiyo na hilo haiepuki. Angalia kisuluhishi kipi kilijibu badala ya kudhani adapta ilibadilisha.
Weka kisikilizaji cha SOCKS kimefungwa kwa loopback, thibitisha ufunguo wa host wa seva ya SSH kwenye matumizi ya kwanza, na acha uthibitishaji wa kawaida wa HTTPS mahali pake kwa tovuti ya mwisho. SSH hulinda sehemu ya simu-hadi-seva; haisimbi kile seva inachofanya baada ya hapo.
Angalia mizunguko miwili ya maisha na uamue
Adapta na kikao cha SSH vina mizunguko tofauti ya maisha. Ikiwa SSH itaanguka wakati adapta inaendelea kukamata, programu zinaweza kuning'inia bila hitilafu dhahiri, kwa sababu pakiti zao bado zinaingia kwenye kiolesura pepe kisicho na njia ya kutoka inayofanya kazi. Ikiwa adapta itasimama, programu ama zinatoka moja kwa moja au zinazuiwa, kulingana na sera ya VPN ya kifaa.
Jaribu pande zote mbili kwa makusudi: ua kikao cha SSH wakati adapta inaendesha, kisha simamisha adapta wakati SSH inabaki juu. Kinachofanya simu katika kila kisa ndiyo sera unayoweka kweli, vyovyote yalivyodai maagizo ya usakinishaji.
Ikiwa mtiririko wa kazi unahitaji ufikiaji wa kifaa kizima wenye hali ya kushindwa inayotabirika, VPN halisi ya IP, au adapta inayotunzwa iliyoundwa kwa mnyororo huu, ni jibu la uaminifu. Kikao cha shell kinachoachwa kikifanya kazi kando ya programu ya ukamataji isiyohusiana si handaki la kifaa linalotunzwa; ni vipengele viwili visivyo na makubaliano kuhusu kinachotokea mmoja wao anapomaliza.