تاسو په وسیله کې shell ترلاسه کوئ، /etc/resolv.conf لولئ یا زاړه net.dns1 ارزښت راوباسئ، او یو پته ترلاسه کوئ. ستاسو مخې ته اپلیکیشن په بشپړ بل څه حل کوي. په اوسني Android خپرونه کې resolver د هرې شبکې له مخې دی: سیستم د هر Network لپاره پالیسي ساتي او هغه هغه socket ته تطبیقوي چې غوښتنه یې لېږلې ده. دوتنه او زاړه ځانګړنه پاتې شوني دي او هیڅ یو یې هغه لار نه بیانوي چې ستاسو پوښتنې په رښتیا وهلې ده.

دا واټن د split-tunnel او Private DNS د پلي کولو پر مهال ښکاري، چېرې چې په یوه تلیفون کې دوه اپلیکیشنونه کولای شي په قانوني ډول بېل ځوابونه وویني. دا لارښود له غلط یا نیمګړي حل پیلېږي او بیرته هغه ترتیب ته ځي چې مالکیت یې لري.

resolver د شبکې پورې اړه لري، نه وسیلې پورې

په Android 9 او وروسته کې د نومونو حل د سیستم resolver له لارې تېرېږي چې هغه Network ته تکیه کوي چې socket ورته تړل شوی دی. هر شبکه خپل LinkProperties لري، او دا ځانګړنې یوازې د هماغې شبکې لپاره د DNS سرورونو لړلیک، لټون ډومینونه او د Private DNS حالت لري. په دې ماډل کې هېڅ شی د یوه ټول-وسیله لړلیک سره نه سمون لري چې تاسو یې له دوتنې ولولئ.

VPN دا وېش څرګندوي. کله چې تونل پورته شي، VPN اپلیکیشن هغه DNS سرورونه برابروي چې په خپله د VPN شبکه کې ثبت شوي، نو هغه اپلیکیشنونه چې د هغه له لارې لېږل کېږي پر هماغو سرورونو حل کوي، په داسې حال کې چې ایستل شوي اپلیکیشنونه لاندې شبکه کاروي. یوه وسیله، دوه ځواب لارې، بې تضاد.

انځور د اغېزمن شوي اپلیکیشن له دننه ولولئ

له خود اپلیکیشن وپوښتئ. هغه میتود چې Context او عادي android.permission.ACCESS_NETWORK_STATE اجازه لري، کولای شي انځور پرته له دې چې د سیستم ځانګړنو ته لاس ووهي ولولي:

val cm = getSystemService(ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val links = network?.let { cm.getLinkProperties(it) }

val dnsServers = links?.dnsServers
val privateDnsActive = links?.isPrivateDnsActive
val privateDnsName = links?.privateDnsServerName

activeNetwork ستاسو د بهیر اصلي شبکه ده، نه د وسیلې یوازینۍ شبکه، او کېدای شي null وي کله چې غوښتونکي ته د کار وړ اصلي شبکه نه وي. بند شوی اصلي VPN معمول لامل دی. isPrivateDnsActive درته وایي چې آیا په هغه شبکه کې پوښتنې د TLS له لارې نومول شوي resolver ته ځي، چې دا بدلوي چې ساده UDP 53 ازموینه به څه وښیي. د API سطحه د LinkProperties لاندې مستنده ده، او په هغې کې هر ارزښت د ترتیب انځور دی، نه دا ثبوت چې یو ځانګړې پوښتنه یو ځانګړي سرور ته رسېدلې ده.

کله چې اصلي شبکه هغه نه وي چې کار کوي

انځور یوازې د اصلي شبکې لپاره ځواب وایي. اپلیکیشن کولای شي خپل بهیر یا یو socket بلې شبکې ته وتړي، او بیا حل هغه انتخاب تعقیبوي په داسې حال کې چې ستاسو تشخیص لا هم اصلي شبکه راپور کوي. هغه براوزر چې خپل DNS-over-HTTPS resolver راوړي، د سیستم لړلیک ته هېڅ نه مراجعه کوي، نو ځوابونه یې د وسیلې د پاتې برخې په اړه هېڅ نه وایي. کاري پروفایل اپلیکیشن د خپلې پالیسۍ سره د جلا کارونکي لاندې ځي. مخکې له دې چې سرورونه ملامت کړئ، تړاو وګورئ.

د VPN یوځای کېدل بله نیمه ده. د dhcp-option DNS کرښه په OpenVPN پروفایل کې ترلاسه کول او هغه پته په Android VPN شبکه کې ثبتول دوه جلا ګامونه دي، او سرور ته ورکه لار په هماغه غلې پتې ډول غلي ناکامېږي. د پراختیا ماشین څخه adb shell dumpsys connectivity هغه ورته د تړاو ځانګړنې د هرې شبکې لپاره چاپوي کله چې build اجازه ورکړي، چې دا پرته له کوډ لیکلو لړلیک تاییدوي.

ترتیب د یوې هغې حل سره پرتله کړئ چې اجازه یې لرئ

یو نوم وټاکئ چې باید په شخصي نوم فضا کې حل شي او یو عام نوم، او دواړه پایلې د انځور ترڅنګ ولیکئ: شبکه، ترتیب شوي سرورونه، د Private DNS حالت او د تېروتنې دقیق متن. نومول شوي سرور ته مستقیمه پوښتنه ثابتوي چې هغه سرور تاسو ته ځواب وایي؛ دا نه ثابتوي چې عادي اپلیکیشن حل هغه ټاکلی. په کیش کې ځواب تازه ازموینه نه ده، نو کیش پاک کړئ یا هغه نوم وکاروئ چې نن چا نه دی پوښتلی.

که resolver یوازې د یوې ځانګړې لاسرسي شبکې پیرودونکو ته خدمت وکړي، هغه څه چې له VPN وتلو وروسته ویني کولای شي پایله پرېکړه کړي، او دا د هغه چا لپاره پالیسي پوښتنه ده چې اداره یې کوي، نه دا ثبوت چې آپریټرانو UDP 53 بندوي. چېرې چې Private DNS فعال وي، نیمګړی کوربه نوم کېدای شي د ډیزاین له مخې رد شي په داسې حال کې چې هماغه سرور عام نومونو ته معمول ځواب وایي. د ځانګړنو لوستل درته وایي کومه طریقه نافذه ده، نو د پاکټ فلټرونو اټکلول بندوئ.

هغه پوړ سم کړئ چې دا ناسمون پورې اړه لري

د نړیوال حالت د سمون پر ځای پورته کار وکړئ. که اپلیکیشن غلطې شبکې ته تړل شوی وي، تړاو سم کړئ. که پروفایل غلط DNS انتخاب وړاندې کوي، پروفایل سم کړئ. که Private DNS په داسې شبکه کې سخت وي چې resolver یې ستاسو شخصي زون ته خدمت نه شي کولای، دا د وسیلې مدیریت پرېکړه ده، نه د ځانګړنې هر چېرې بندولو لامل.

عام resolverونه په DHCP کړکۍ یا سیستم ځانګړنه کې زورول هغه سمون دی چې تل پېښې رامنځته کوي: شخصي نومونه حلېدل بندېږي، بدلون له VPN ناستې تېرېږي، او په وسیله کې بل کس بې مالکه پخوانۍ پته مومي. بدلون د VPN، اپلیکیشن یا هغه مدیریت پوړ دننه وساتئ چې ناسمون ورته اړه لري، بیا انځور بیا ولولئ ترڅو تایید کړئ چې د سرور لړلیک په رښتیا بدل شوی دی.

په پای کې تاسو یوه اپلیکیشن غوښتنه غواړئ چې یوې شبکې، resolver لړلیک او Private DNS حالت ته تړلې وي. کله چې دا زنځیر ښودلای شئ، په دوتنه کې پېژندل شوې پته د هېڅ شي ثبوت نه وي.

اړوندې مقالې