Funda i-DNS ye-Android ngendlela efanele: ngenethiwekhi ngayinye, hhayi ku-resolv.conf
Uhlelo lwakho lwe-Android luxazulula nge-resolver yenethiwekhi ngayinye, hhayi nge-resolv.conf osanda kuyifunda. Hlola kuqala i-LinkProperties, ukubopha kwe-socket ne-Private DNS.
Uthola i-shell kudivayisi, ufunda i-/etc/resolv.conf noma ugebe inani elidala le-net.dns1, bese uthola ikheli elilodwa. Uhlelo olukuphambi kwakho luxazulula ngokunye ngokuphelele. Ku-Android yamanje i-resolver ingeyenethiwekhi ngayinye: uhlelo lugcina inqubomgomo ye-Network ngayinye futhi uyisebenzisa ku-socket eyathumela isicelo. Ifayela nendawo yokuqala yizinsalela, futhi akukho kuzo okuchaza indlela umbuzo wakho owahamba ngayo ngempela.
Legebe livela ngesikhathi kusetshenziswa i-split-tunnel ne-Private DNS, lapho izinhlelo ezimbili ocingweni olulodwa zingabona izimpendulo ezihlukene ngokusemthethweni. Lo mhlahlandlela uqala ekuxazululeni okungalungile noma okungekho bese uhlehla uye kukho konfigurashini enakho.
I-resolver ingeyenethiwekhi, hhayi eyedivayisi
Ukuxazululwa kwamagama ku-Android 9 nangemuva kudlula ku-resolver yohlelo esekelwe ku-Network okuboshwe kuyo i-socket. Inethiwekhi ngayinye ithwala i-LinkProperties yayo, futhi lezo zindawo ziqukethe uhlu lwamaseva e-DNS, izizinda zokusesha kanye nesimo se-Private DNS sale nethiwekhi kuphela. Akukho kulolo hlelo oluhambisana nohlu olulodwa lwakho konke idivayisi ongalufunda efayeleni.
I-VPN yenza ukwehlukana kucace. Lapho umhubhe ukhuphuka, uhlelo lwe-VPN lunikeza amaseva e-DNS abhaliswe kunethiwekhi ye-VPN uqobo, ngakho izinhlelo ezihanjiswa ngalo zixazulula kulawo maseva kuyilapho izinhlelo ezishiyiwe zisaqhubeka nokusebenzisa inethiwekhi engaphansi. Idivayisi elilodwa, izindlela ezimbili zempendulo, akukho kuphikisana.
Funda isithombe esingaphakathi kohlelo oluthintekile
Buza uhlelo ngokwalo. Indlela ene-Context nemvume evamile ye-android.permission.ACCESS_NETWORK_STATE ingafunda isithombe ngaphandle kokuthinta izindawo zohlelo:
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 iyinethiwekhi ezenzakalelayo yohlelo lwakho, akulona ukuphela kwenethiwekhi kudivayisi, futhi ingaba ngu-null lapho umshayayo engenayo eyokusebenzisa ezenzakalelayo. I-VPN ezenzakalelayo evinjiwe iyisizathu esivamile. I-isPrivateDnsActive ikutshela ukuthi ngabe imibuzo kuleyo nethiwekhi ihamba nge-TLS iya ku-resolver enegama, okushintsha lokho okuzokuboniswa ukuhlolwa okulula kwe-UDP 53. Ingaphezulu le-API libhalwe ngaphansi kwe-LinkProperties, futhi yonke inani kulona liyisithombe sokuqamba, hhayi ubufakazi bokuthi umbuzo othile ufinyelele iseva ethile.
Lapho inethiwekhi ezenzakalelayo ingeyona eyenza umsebenzi
Isithombe siphendula kuphela mayelana nezenzakalelayo. Uhlelo lungabopha inqubo yalo noma i-socket eyodwa kunethiwekhi enye, bese ukuxazululwa kulandela lokho kukhetha kuyilapho ukuxilongwa kwakho kusabika okwezenzakalelayo. Isiphequluli esiletha i-resolver yaso ye-DNS-over-HTTPS asilokothi libuze uhlu lohlelo, ngakho izimpendulo zaso azisho lutho ngenye ingxenye yedivayisi. Uhlelo lwephrofayela yomsebenzi lusebenza ngaphansi komsebenzisi ohlukile olunomgomo waso. Hlola ukubopha ngaphambi kokusola amaseva.
Ukuhlanganiswa kwe-VPN kungolunye uhlangothi. Ukwamukela umugqa we-dhcp-option DNS kuphrofayela ye-OpenVPN nokubhalisa lelo kheli kunethiwekhi ye-VPN ye-Android kuyizinyathelo ezimbili ezihlukene, futhi umzila ongekho oya kuseva wehluleka buthule njengekheli elingalungile. Kusuka kumshini wokuthuthukisa, i-adb shell dumpsys connectivity iphrinta izindawo ezifanayo zokuxhumana ngenethiwekhi ngayinye lapho i-build ivuma, okukuqinisekisa uhlu ngaphandle kokubhala ikhodi.
Qhathanisa konfigurashini nokuxazululwa okukodwa okuvunyelwe ukuba ukwenze
Khetha igama okumele lixazululwe ngaphakathi kwendawo yamagama yangasese kanye negama lomphakathi elilodwa, bese ubhala yomibili imiphumela eceleni kwesithombe: inethiwekhi, amaseva amisiwe, isimo se-Private DNS kanye nombhalo oqondile wephutha. Umbuzo oqondile ku-seva enegama ufakazela ukuthi leyo seva iyakuphendula; awufakazeli ukuthi ukuxazululwa okuvamile kohlelo kuyikhethile. Impendulo evela kunqolobane ayilona uvivinyo olusha, ngakho sula inqolobane noma usebenzise igama okungekho muntu obuze ngalo namuhla.
Uma i-resolver ikhonza amaklayenti avela kunethiwekhi ethile yokufinyelela kuphela, lokho elikubonayo ngemuva kokuphuma kwe-VPN kungase kuneqise umphumela, futhi lona umbuzo womgomo kulowo oyiphetheyo, hhayi ubufakazi bokuthi abahlinzeki bavimba i-UDP 53. Lapho i-Private DNS isebenza khona, igama lomsingathi elingaphelele lingase lenqatshwe ngokomklamo kuyilapho leyo seva iphendula amagama omphakathi ngendlela evamile. Ukufunda izindawo kukutshela ukuthi yimuphi umumo okhona, ngakho uyeka ukuqagela izihlungi zamaphakethe.
Lungisa isendlalelo esingumnikazi wokungafani
Sebenza ukhuphuka esikhundleni sokuhlela isimo somhlaba wonke. Uma uhlelo luboshwe kunethiwekhi engalungile, lungisa ukubopha. Uma iphrofayela inikeza inketho ye-DNS engalungile, lungisa iphrofayela. Uma i-Private DNS inzima kunethiwekhi okungekho i-resolver yayo engakhonza indawo yakho yangasese, leso yisinqumo sokuphatha idivayisi, hhayi isizathu sokucisha isici yonke indawo.
Ukugxusha ama-resolver omphakathi ku-DHCP hook noma endaweni yohlelo iyisilungiselelo esiqhubeka sidala izehlakalo: amagama angasese ayeka ukuxazululwa, ushintsho luphila isikhathi eside kunesikhathi se-VPN, futhi umuntu olandelayo kudivayisi uthola ikheli elidala elingenamnini. Gcina ushintsho ngaphakathi kwe-VPN, uhlelo noma isendlalelo sokuphatha esingumnikazi wokungafani, bese ufunda futhi isithombe ukuze uqinisekise ukuthi uhlu lwamaseva lushintshile ngempela.
Ekugcineni ofuna kona isicelo esisodwa sohlelo esiboshwe kunethiwekhi eyodwa, uhlu lwama-resolver kanye nesimo se-Private DNS. Lapho usukwazi ukubonisa lolo chungechunge, ikheli elilodwa elijwayelekile efayeleni alisalona ubufakazi balutho.