Qurilmada shell olasiz, /etc/resolv.conf o'qiysiz yoki eski net.dns1 qiymatini qazib olasiz va bitta manzil olasiz. Oldingizdagi ilova butunlay boshqa narsa orqali hal qiladi. Joriy Android versiyasida resolver tarmoq bo'yicha: tizim har bir Network uchun siyosat tutadi va uni so'rov yuborgan socketga qo'llaydi. Fayl va eski xususiyat qoldiqlardir va ikkalasi ham so'rovingiz haqiqatda bosib o'tgan yo'lni tasvirlamaydi.

Bu bo'shliq split-tunnel va Private DNS joriy etilishida ko'rinadi, bunda bitta telefondagi ikki ilova qonuniy ravishda turli javoblarni ko'rishi mumkin. Ushbu qo'llanma noto'g'ri yoki mavjud bo'lmagan hal qilishdan boshlanadi va unga tegishli konfiguratsiyaga qarab orqaga boradi.

Resolver tarmoqqa tegishli, qurilmaga emas

Android 9 va undan keyingi versiyalarda nomlarni hal qilish socket bog'langan Network ga asoslanadigan tizim resolveri orqali boradi. Har bir tarmoq o'z LinkProperties ma'lumotini olib yuradi va bu xususiyatlar faqat shu tarmoq uchun DNS serverlar ro'yxatini, qidiruv domenlarini va Private DNS holatini saqlaydi. Bu modelda fayldan o'qish mumkin bo'lgan yagona qurilma miqyosidagi ro'yxatga mos keladigan hech narsa yo'q.

VPN bo'linishni yaqqol qiladi. Tunnel ko'tarilganda VPN ilovasi VPN'ning o'z tarmog'ida ro'yxatga olingan DNS serverlarini beradi, shuning uchun u orqali yo'naltirilgan ilovalar shu serverlarda hal qiladi, chetda qolgan ilovalar esa ostidagi tarmoqdan foydalanishda davom etadi. Bitta qurilma, ikki javob yo'li, ziddiyat yo'q.

Suratni zararlangan ilovaning ichidan o'qing

Ilovaning o'zidan so'rang. Context va odatiy android.permission.ACCESS_NETWORK_STATE ruxsatiga ega metod tizim xususiyatlariga tegmasdan suratni o'qiy oladi:

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 — jarayoningizning standart tarmog'i, qurilmadagi yagona tarmoq emas va chaqiruvchining yaroqli standarti bo'lmasa null bo'lishi mumkin. Bloklangan standart VPN — odatiy sabab. isPrivateDnsActive shu tarmoqdagi so'rovlar TLS orqali nomlangan resolverga borishini aytadi, bu oddiy UDP 53 tekshiruvi nima ko'rsatishini o'zgartiradi. API yuzasi LinkProperties ostida hujjatlashtirilgan va undagi har bir qiymat konfiguratsiyaning surati, muayyan so'rov muayyan serverga yetganining isboti emas.

Standart tarmoq ishni bajaradigan tarmoq bo'lmaganda

Surat faqat standart tarmoq uchun javob beradi. Ilova o'z jarayonini yoki bitta socketni boshqa tarmoqqa bog'lashi mumkin, shunda hal qilish shu tanlovni kuzatadi, diagnostikangiz esa hali ham standartni xabar qiladi. O'z DNS-over-HTTPS resolverini olib kelgan brauzer tizim ro'yxatiga umuman murojaat qilmaydi, shuning uchun uning javoblari qurilmaning qolgan qismi haqida hech narsa demaydi. Ish profili ilovasi o'z siyosatiga ega alohida foydalanuvchi ostida ishlaydi. Serverlarni ayblashdan oldin bog'lanishni tekshiring.

VPN integratsiyasi — ikkinchi yarmi. dhcp-option DNS satrini OpenVPN profilida qabul qilish va o'sha manzilni Android VPN tarmog'ida ro'yxatga olish ikki alohida qadam, va serverga yetmaydigan marshrut noto'g'ri manzil kabi jim muvaffaqiyatsizlikka uchraydi. Ishlab chiqish mashinasidan adb shell dumpsys connectivity build ruxsat berganida bir xil ulanish xususiyatlarini tarmoq bo'yicha chiqaradi, bu kod yozmasdan ro'yxatni tasdiqlaydi.

Konfiguratsiyani qilishingizga ruxsat etilgan bitta hal qilish bilan solishtiring

Shaxsiy nom fazosida hal qilinishi kerak bo'lgan nom va bitta ommaviy nom tanlang, ikkala natijani ham suratning yoniga yozing: tarmoq, konfiguratsiya qilingan serverlar, Private DNS holati va xatoning aniq matni. Nomlangan serverga to'g'ridan-to'g'ri so'rov o'sha server sizga javob berishini isbotlaydi; odatiy ilova hal qilishi uni tanlaganini isbotlamaydi. Keshdagi javob yangi test emas, shuning uchun keshni tozalang yoki bugun hech kim so'ramagan nomdan foydalaning.

Agar resolver faqat muayyan kirish tarmog'idagi mijozlarga xizmat qilsa, uning VPN chiqishidan keyin ko'rgani natijani hal qilishi mumkin va bu uni boshqaradigan kishi uchun siyosat masalasi, operatorlar UDP 53ni bloklashining isboti emas. Private DNS faol joyda malakasiz xost nomi dizayn bo'yicha rad etilishi mumkin, o'sha server esa ommaviy nomlarga odatdagidek javob beradi. Xususiyatlarni o'qish qaysi rejim amalda ekanini aytadi, shuning uchun paket filtrlari haqida taxmin qilishni to'xtatasiz.

Mos kelmaslikka tegishli qatlamni tuzating

Global holatni tahrirlash o'rniga yuqoriga qarab ishlang. Ilova noto'g'ri tarmoqqa bog'langan bo'lsa, bog'lanishni tuzating. Profil noto'g'ri DNS opsiyasini bersa, profilni tuzating. Private DNS resolveri shaxsiy zonangizga xizmat qila olmaydigan tarmoqda qattiq bo'lsa, bu qurilma boshqaruvi qarori, funksiyani hamma joyda o'chirish uchun sabab emas.

Ommaviy resolverlarni DHCP ilgagiga yoki tizim xususiyatiga tiqish — doimiy hodisalarga sabab bo'ladigan tuzatish: shaxsiy nomlar hal qilinmay qoladi, o'zgarish VPN sessiyasidan oshib ketadi va qurilmadagi keyingi odam egasiz eskirgan manzil topadi. O'zgarishni mos kelmaslikka tegishli VPN, ilova yoki boshqaruv qatlami ichida saqlang, so'ngra serverlar ro'yxati haqiqatan o'zgarganini tasdiqlash uchun suratni qayta o'qing.

Oxirida siz bitta tarmoqqa, resolver ro'yxatiga va Private DNS holatiga bog'langan bitta ilova so'rovini xohlaysiz. Bu zanjirni ko'rsata olganingizda, fayldagi tanish manzil endi hech narsaning isboti emas.

O'xshash maqolalar