Jid lagu daray shaxda main ee Android wuxuu u muuqdaa mid saxan liis kasta waxna kama qaado taraafikada. Sababtu waa in shaxda main ay tahay mid ka mid ah dhowr xul, oo aan marka hore la weydiin. Adeegga shabakadda Android wuxuu dhisaa xeerar siyaasadeed oo doorta shaxda marin-taraafikada iyagoo isticmaalaya macluumaad aan ku jirin cinwaanka goobta — uid-ga barnaamijka, calaamad ku taal xirmada, interface-ka uu ka soo galay — iyo raadinta goobta waxay dhacdaa ka dib, gudaha shaxda ay xeerarkaas doorteen.

Saddex go'aan oo isku xigxiga go'an

Xirmada baxaysa waxay qaadataa saddex go'aan oo kala duwan. Marka hore, xeer siyaasadeed wuxuu go'aamiyaa shaxda marin-taraafikada ee khuseysa. Marka labaad, jid ku jira shaxdaas wuxuu go'aamiyaa boodhka xiga iyo interface-ka baxa. Marka saddexaad, jillaabada netfilter waxay go'aamiyaan in xirmadu sii noolaato, la beddelo, ama dib loo celiyo.

Isku xigxiga waa muhiim maxaa yeelay marxalad kastaa waxay ka jawaabi kartaa oo keliya su'aasheeda. Xeerka dab-demiska ee aqbala xirmo ma doorto shax, jid lagu daray shax ay xeerar doortaan ma jiro waa mid aan shaqeyn. Qalalaasaha badan ee ku xeeran VPN-yada Android wuxuu ka yimaadaa hagaajinta mid ka mid ah saddexda iyo aragtida isbeddel la'aan, maxaa yeelay ciladdu waxay ku jirtay mid kale.

StageSelectorWhat it cannot decide
Policy ruleuid range, mark, incoming interfaceWhich route exists inside the table
Route lookupDestination prefix, longest matchWhether the packet is allowed out
Netfilter hookChain position, match conditionsWhich table was selected

Calaamaduhu waa goob la soo ururiyay, ma aha sumad aad leedahay

Android wuxuu ku ururiyaa dhowr xaqiiqo isku qiimo calaamadeed: shabakaddee la doortay, haddii barnaamij si cad u doortay shabakad, haddii socket laga ilaaliyay VPN-ka, iyo bits la xiriira ogolaanshaha. Cinwaanka fwmark ee AOSP wuxuu qeexaa qaabkaas geedka hadda jira, qaabkuna waa arrin gudaha platform-ka oo isbeddela inta u dhaxaysa sii-deynta.

Taas awgeed Android ku qorista qiimo calaamadeed oo dhan iyadoo la isticmaalayo iptables -j MARK --set-mark waa khatar. Ma ku darayo sumad; waxay beddelaysaa doorashada shabakadda ee nidaamku hore u sameeyay. Xirmada ayaa markaa la mid noqota xeerar kale, taas oo u ekaan kartaa sida VPN uu bilaabay shaqada, ama sida barnaamij aan xiriir la lahayn uu lumiyay xiriirka, iyadoon ku xiran tahay bits-ka dib loo qoray.

Haddii ay tahay inaad taabato calaamadaha, marka hore akhri qiimaha hadda jira oo isticmaal maaskaro si ay u beddelaan oo keliya bits-ka aad fahanto:

ip rule show
ip route show table all | head -40
ip route get 10.20.4.11

Calaamadda xiriirku waa shay ka duwan calaamadda xirmada, midkoodna ma aha jid. Soo celinta calaamadda xirmooyinka jawaabta waa tallaabo ka duwan doorashada shaxda marka baxaya, taas awgeed hagaajinta hal-jiho waxay soo saartaa xiriiryo furma oo markaas hangala.

Yaa leh xeerarka iyo shaxaha

Adeegga shabakadda Android, netd, wuxuu abuuraa xeerarka iyo shaxaha shabakad kasta. AOSP RouteController waa goobta xeerarkaas loogu soo ururiyo VPN-yada, shabakadaha jireed iyo xaddiga uid, oo wareeggiisa noloshu wuxuu ku xiran yahay dhacdooyinka shabakadda halkii uu ku xirnaan lahaa fayl qaabeynta.

Laba natiijo ayaa soo socota. Marka hore, mudnaanta iyo lambarrada shaxda ee aad ka hesho hal taleefan waa faahfaahin gudaha dhismaha, ma aha interface: lambarro isku mid u muuqda nooc kale oo Android ah waxay yeelan karaan macne gabi ahaan ka duwan. Marka labaad, xaaladda dib ayaa loo dhisaa marka shabakadaha isbeddelaan, sidaas awgeed xeer lagu daray maanta root shell ayaa laga yaabaa inuu maqan yahay ka dib isbeddelka Wi-Fi ee xiga.

Maqnaanshahaas waxaa badanaa lagu soo sheegaa in nidaamku iska indhatirayo jid. Waxa dhab ahaan dhacay ayaa ah in xeerka shaxda doortay uusan hadda jirin, jidka ku jira shaxduna hadda waa mid aan la gaari karin marka laga eego xirmada. Marka qaabeynta shaqeynaysey ay joojiso shaqada ka dib dib-u-xirir, hubi liiska xeerarka, ma aha liiska jidadka.

Su'aalaha isku xigxiga jillaabada ma laha jawaab guud

Su'aasha ah in iptables uu socdo ka hor marin-taraafikada VPN lama jawaabi karo iyadoon la magacaabin jidka xirmada. Xirmo gudaha loo abuuray waxay dhex martaa jillaabka output, halkaas oo isbeddel calaamadeed uu kiciyo hubinta dib-u-marin, taas oo ah raadin labaad, ma aha wax ka beddel dib loogu noqday tan hore. Xirmo ka timaadda macmiil tether ah waxay martaa jidka prerouting oo halkii loo gudbinayaa, oo silsiladaha arkaa waa kuwa kale.

Sidaas awgeed isla xeerkaas wuxuu waxtar u yeelan karaa taraafikada barnaamij oo aan muuqan karin taraafikada tether, oo tiriyaha eber ku sii jiraa wuxuu kuu sheegaa jidka xirmadu qaadatay, ma aha in xeerku khaldan yahay. Isticmaal tiriyayaasha si aad u xaqiijiso jidka ka hor intaadan beddelin shuruud kasta oo is-waafajin ah.

Tani sidoo kale waa marxaladda uu khalad marin-taraafikadeed siyaasadeedku u noqdo mid adag in la arko. Marin-taraafikad loo maro shax jirta laakiin aan goobta ku jirin waxay soo saartaa shabakad aan la gaari karin oo u muuqata sida dab-demis hoos u dhig, halka dab-demis hoos u dhig uu soo saaro waqti-dhaaf oo u muuqda sida god madow oo marin-taraafikadeed.

Nidaamka gudaha ka baadh, ama iska daa

Dib-u-eegis la oggolaaday, xaqiiji afar xaqiiqo ka hor intaadan wax taaban: uid-ga iyo profile-ka barnaamijka, shabakadda Android u doortay, haddii VPN-ku ku darayo barnaamijkaas gabi ahaan, iyo haddii dhibaatadu ka jirto labada qoys ee cinwaanka. Ka-bixidda barnaamij kastaa waxay sharraxdaa warbixinno badan oo ah VPN ma shaqeynayo iyadoon cilad marin-taraafikadeed jirin.

Markaas akhri xeerarka, maaskarooyinka iyo shaxaha dhab ahaan dhaqan galay, oo ku hay isbeddel shabakadeed gudaha daaqadda indha-indheynta. Haddii habdhaqanku isbeddelo inta lagu jiro dib-u-xirka, waxaad eegaysaa wareeg nololeed la maamulo, ma aha jid maqan.

Baahiyaha caadiga ah, isticmaal kontaroolada la taageeray: ku-daridda iyo ka-bixidda barnaamij kasta barnaamijka VPN, iyo doorashada shabakadda platform-ka laftiisa wax kasta oo u baahan jid gaar ah. Haddii isku-dhufasho mudnaan leh uu dhab ahaan tahay inuu la shaqeeyo mishiinka marin-taraafikada, beegso hirgelinta nooca Android ee saxda ah ee aad taageerto oo ku ilaali wareeggiisa nololeed qaybta iska leh. Nadiifinta silsiladaha platform-ka ama gelinta xeer mudnaan sare leh waxay ogaal-naqshada u beddelaysaa maareeye shabakadeed labaad, oo taleefanku siday u shaqeyn doonaa.

Maqaallo la xiriira