Aqra d-DNS ta’ Android sew: skont in-netwerk, mhux f’resolv.conf
L-app Android tiegħek issolvi permezz ta’ resolver għal kull netwerk, mhux permezz tar-resolv.conf li għadek kemm qrajt. Spezzjona l-ewwel LinkProperties, it-twaħħil tas-socket u Private DNS.
Tikseb shell fuq it-tagħmir, taqra /etc/resolv.conf jew tħaffer valur antik ta’ net.dns1, u tikseb indirizz wieħed. L-app quddiemek issolvi permezz ta’ xi ħaġa għal kollox oħra. Fuq rilaxx attwali ta’ Android ir-resolver huwa skont in-netwerk: is-sistema żżomm politika għal kull Network u tapplikaha mas-socket li għamel it-talba. Il-fajl u l-proprjetà antika huma fdalijiet, u l-ebda waħda minnhom ma tiddeskrivi t-triq li tabilħaqq ħa t-tfittxija tiegħek.
Dan id-distakk jidher waqt it-tnedija ta’ split-tunnel u Private DNS, fejn żewġ apps fuq l-istess telefon jistgħu leġittimament jaraw tweġibiet differenti. Dan il-mixi jibda mis-soluzzjoni żbaljata jew nieqsa u jaħdem lura lejn il-konfigurazzjoni li għandha dan.
Ir-resolver jappartjeni lil netwerk, mhux lit-tagħmir
Is-soluzzjoni tal-ismijiet fuq Android 9 u wara tgħaddi minn resolver tas-sistema li jibbaża fuq in-Network li socket ikun marbut miegħu. Kull netwerk iġorr il-LinkProperties tiegħu stess, u dawk il-proprjetajiet fihom il-lista tas-servers DNS, id-dominji tat-tfittxija u l-istat ta’ Private DNS għal dak in-netwerk biss. Xejn f’dak il-mudell ma jaqbel ma’ lista waħda għat-tagħmir kollu li tista’ taqra minn fajl.
VPN jagħmel id-diviżjoni ovvja. Meta jiġi t-tunnell, l-app tal-VPN tipprovdi servers DNS li jkunu rreġistrati fuq in-netwerk proprju tal-VPN, sabiex apps li jgħaddu minnu jissolvew ma’ dawk is-servers filwaqt li apps esklużi jibqgħu jużaw in-netwerk ta’ taħt. Tagħmir wieħed, żewġ toroq ta’ tweġiba, ebda kontradizzjoni.
Aqra l-istampa mill-ġewwa tal-app affettwata
Staqsi lill-app innifisha. Metodu li għandu Context u l-permess normali android.permission.ACCESS_NETWORK_STATE jista’ jaqra l-istampa mingħajr ma jmiss proprjetajiet tas-sistema:
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?.privateDnsServerNameactiveNetwork hija l-predeżinjata għall-proċess tiegħek, mhux in-netwerk waħdieni fuq it-tagħmir, u tista’ tkun null meta min qed isejjaħ m’għandux predeżinjat użabbli. VPN predeżinjata mblukkata hija r-raġuni tas-soltu. isPrivateDnsActive tgħidlek jekk it-tfittxijiet fuq dak in-netwerk jgħaddux fuq TLS lejn resolver imsemmi, li jbiddel x’turik probe UDP 53 sempliċi. Il-wiċċ tal-API huwa dokumentat taħt LinkProperties, u kull valur fih huwa stampa tal-konfigurazzjoni u mhux prova li tfittxija partikolari waslet għal server partikolari.
Meta n-netwerk predeżinjat mhux dak li qed jagħmel ix-xogħol
L-istampa twieġeb biss għall-predeżinjat. App tista’ torbot il-proċess tagħha jew socket wieħed ma’ netwerk ieħor, u mbagħad it-tfittxija ssegwi dik l-għażla waqt li d-dijanjostika tiegħek xorta tirrapporta l-predeżinjat. Browser li jġib ir-resolver DNS-over-HTTPS tiegħu qatt ma jikkonsulta l-lista tas-sistema, għalhekk it-tweġibiet tiegħu ma jgħidu xejn dwar il-bqija tat-tagħmir. App tal-profil tax-xogħol taħdem taħt utent separat b’politika tiegħu. Iċċekkja t-twaħħil qabel ma tagħti l-ħtija lis-servers.
L-integrazzjoni tal-VPN hija n-nofs l-ieħor. Li tirċievi linja dhcp-option DNS fi profil OpenVPN u li tirreġistra dak l-indirizz fuq in-netwerk VPN ta’ Android huma żewġ passi separati, u rotta nieqsa lejn is-server tfalli daqstant siekta daqs indirizz żbaljat. Minn magna tal-iżvilupp, adb shell dumpsys connectivity tistampa l-istess proprjetajiet tal-ħolqa għal kull netwerk meta l-build jippermetti, li jikkonferma l-lista mingħajr ma tikteb kodiċi.
Qabbel il-konfigurazzjoni ma’ soluzzjoni waħda li tista’ tagħmel
Agħżel isem li jrid jiġi solvut fl-ispazju privat u isem pubbliku wieħed, u nnota ż-żewġ riżultati ħdejn l-istampa: netwerk, servers konfigurati, stat ta’ Private DNS u t-test eżatt tal-iżball. Tfittxija diretta lejn server imsemmi turi li dak is-server iwieġbek; ma turix li s-soluzzjoni normali tal-app għażlitu. Tweġiba fil-cache mhijiex test frisk, għalhekk iċċara l-cache jew uża isem li ħadd ma staqsa dwaru llum.
Jekk ir-resolver iservi biss klijenti minn netwerk ta’ aċċess partikolari, dak li jara wara l-ħruġ mill-VPN jista’ jiddeċiedi r-riżultat, u din hija kwistjoni ta’ politika għal min imexxih u mhux prova li l-operaturi jimblukkaw UDP 53. Fejn Private DNS huwa attiv, isem tal-host mhux kwalifikat jista’ jiġi rrifjutat bid-disinn filwaqt li l-istess server iwieġeb ismijiet pubbliċi b’mod normali. Li taqra l-proprjetajiet jgħidlek liema mod huwa fis-seħħ, sabiex tieqaf taqta’ x’aktarx dwar filtri tal-pakketti.
Sewwi s-saff li għandu d-diskrepanza
Aħdem ’il fuq minflok ma teditja l-istat globali. Jekk l-app hija marbuta man-netwerk żbaljat, sewwi t-twaħħil. Jekk il-profil iġib l-għażla DNS żbaljata, sewwi l-profil. Jekk Private DNS huwa strett fuq netwerk li r-resolver tiegħu ma jistax iservi ż-żona privata tiegħek, din hija deċiżjoni tal-immaniġġjar tat-tagħmir u mhux raġuni biex titfi l-karatteristika kullimkien.
Li ssuq resolvers pubbliċi f’hook DHCP jew fi proprjetà tas-sistema hija t-tiswija li ma tieqafx tikkawża inċidenti: l-ismijiet privati jieqfu jissolvew, il-bidla tgħix aktar mis-sessjoni tal-VPN, u l-persuna li jmiss fuq it-tagħmir issib indirizz skadut mingħajr sid. Żomm il-bidla fil-VPN, fl-app jew fis-saff tal-immaniġġjar li għandu d-diskrepanza, u mbagħad erġa’ aqra l-istampa biex tikkonferma li l-lista tas-servers tassew inbidlet.
Dak li trid fl-aħħar huwa talba waħda tal-app marbuta ma’ netwerk wieħed, lista ta’ resolvers u stat ta’ Private DNS. Ladarba tkun tista’ turi dik il-katina, indirizz familjari f’fajl ma jibqax prova ta’ xejn.