AdGuard Home LAN manzilingizdan WireGuard mijozlariga javob beradi
0.0.0.0 bog‘lanishi yadroning javob manbasini tanlashiga imkon beradi. Ko‘p tarmoqqa ulangan hoztda bu javob tunnel yetib bora olmaydigan manzildan kelishi mumkin.
Tunnel ishga tushgan, firewall 53-portga ruxsat beradi, AdGuard Home ishlayapti, lekin nomlar hali ham WireGuard mijozida aniqlanmayapti. So‘rov odatda yetib keladi va javob odatda ketadi, shuning uchun resolverdagi paket sanagichlar yaxshi ko‘rinadi va xizmat aybsiz ko‘rinadi. Noto‘g‘ri bo‘layotgan narsa shu javobdagi manzil: u mijoz so‘ramagan lokal manzildan ketadi va mijozning stub resolveri uni rad etadi. AdGuard Home konfiguratsiyasidagi bir ro‘yxat buni belgilaydi va uning odatiy sozlamasi qarorni yadrovaga topshiradi.
So‘rov keladi, javob esa boshqa joydan ketadi
10.6.0.1 ni o'z rezolyutori sifatida sozlagan mijoz 10.6.0.1 manzilidagi 53 portga UDP so'rov yuboradi. Shu paket tunnel orqali o'tib, hostga tushadi va AdGuard Home unga javob beradi. Ammo tarmoqda javob yangi paket sifatida keladi, uning manzilini hostning stacki tanlaydi, mijoz kutgan manzilni emas.
Mijozning rezolyutori ulangan soket bo'lsa, ya'ni systemd-resolved, dnsmasq va ko'pgina stub rezolyutorlar ishlatadigan holda, u faqat yuborilgan aniq manzildan keladigan javoblarni qabul qiladi. 10.6.0.1 ga yuborilgan so'rovga 192.168.1.10 manzilidan keladigan javob, hech qanday tahlildan oldin rad etiladi. Rezolyutor muvaffaqiyatli javobni log qiladi, mijoz esa vaqti tugadi deb log qiladi va ikkisi ham haqiqatni aytmoqda.
Shuning uchun hisoblagichlar yolg'on gapirmaydi va mijoz ham yolg'on gapirmaydi. Sizga kerak bo'lgan dalillar uch joyda, quyidagi tartibda: tinglovchi bog'langan manzil, yadroning mijozga qaytishda foydalanadigan yo'li va haqiqiy javob paketidagi manba manzili.
Yadro javob manbasini qanday tanlaydi
ga bog'langan UDP soketi0.0.0.0o'z manba manziliga ega emas, shuning uchun har bir chiquvchi javob manzilinga yo'l qidirmasini ishga tushiradi. Keyin yadro manbani shu yo'ldan oladi: yo'l tomonidan belgilangan manzil yoki chiqayotgan interfeysning asosiy manzili. So'rovning manzilini eslab qoladigan hech narsa yo'q.
Yagona hostda bu ko‘rinmaydi, chunki faqat bitta mantiqiy javob mavjud. LAN manziliga, WireGuard manziliga va boshqaruv manziliga ega mashinada bir nechta javoblar mantiqiy bo‘lishi mumkin va g‘olib o‘sha paytdagi marshrutlash jadvaliga bog‘liq bo‘ladi. Qoshimcha marshrut qo‘shing, bir xil interfeysda ikkinchi manzil qo‘shing, resolver oldida NAT yo‘naltirishni bajaring yoki AdGuard'ni o‘z namespace bilan konteynerda ishga tushiring, va tanlangan manba mijoz so‘ragan javobdan farq qilishi mumkin.
ss -lunp | grep :53qaysi o‘yinda ekanligingizni ko‘rsatadi.0.0.0.0:53da tinglovchi esa wildkard holati hisoblanadi;10.6.0.1:53da tinglovchi esa javobni allaqachon belgilagan. Soketni o‘qish YAMLni o‘qishdan tezroq va bu oxirgi saqlangan narsadan ko‘ra aslida ishga tushirilgan holatni aks ettiradi.
bind_hosts aslida nima boshqarishini
AdGuard Home ningdns.bind_hostsDNS tinglovchi foydalanadigan mahalliy manzillar ro'yxati. Yetkazib berilgan standart - bu yovvoyi karta bo'lib, bu har bir mahalliy manzilni qabul qilish va javobga qarab manbani yadro tanlashni anglatadi. Yovvoyi kartani mijozlar so'rov yuboradigan manzil bilan almashtirish soketni o'zgartiradi va har bir javobdagi manzil manbasi ham shunday bo'ladi.
Ro'yxat bir nechta yozuvlarni qabul qiladi, bu ikki tarmoqni xizmat qiladigan yechimchi uchun muhimdir.10.6.0.1va192.168.1.10ni ro'yxatlash ikkita bog'langan soketni beradi va so'rov shularning biriga yetib kelganda, u kelgan manzildan javob beriladi. Bu ko'plab odamlar yovvoyi karta allaqachon taqdim etadi deb o'ylaydigan xatti-harakatdir.
YAML oddiy va undagi manzil sizning tunnel mijozlaringizga aytilgan manzil, hostning asosiy manzili emas:
dns:
bind_hosts:
- 10.6.0.1
port: 53Nima uchun bir yechimchining ikki o'rnatilishi kelishmovchilik qilmoqda
Bu kontekstda, plugin bilan boshqariladigan degani, resolver boshqa paket tomonidan o'rnatilgan va nazorat qilinayotganini anglatadi: masalan, router firmware paketi, NAS paketi yoki uy avtomatizatsiyasi qo'shimchasi. Ushbu paket odatda AdGuard Home YAML nusxasini o'z ichiga oladi va jarayonni o'z jadvaliga ko'ra qayta ishga tushiradi, holbuki mustaqil instansiya bu siz o'zingiz sozlagan vendor binari yoki konteyner hisoblanadi. Har ikkala holatda ham siz alohida sozlash fayllari va alohida bog'lash variantlariga ega ikkita mustaqil jarayonni ko'ryapsiz, hatto ikkalasi ham bir xil yuqori darajali ro'yxat va filtr ro'yxatlarini o'qiydigan bo'lsa ham. Biri maxsus tunneling manziliga bog'lasa, ikkinchisi esa yovvoyi kartani meros qilib oladi, va veb interfeys ikkala tomondan ham bir xil ko'rinadi.
Shuning uchun “migratsiyadan oldin bir xil yechim ishlagan” degani joriy bog‘lanish haqida hech narsa isbotlamaydi. Soketni tekshiring, keyin esa ishga tushayotgan jarayon haqiqatan yuklagan konfiguratsiya faylini tekshiring. Boshqa papkada qolgan eski nusxa tahrir hech qanday ta’sir ko‘rsatmayotgandek ko‘rinishining keng tarqalgan sababidir.
Uni mahkamlab qo'ying, keyin tunnel tomonidan sinov qiling
O'zgartirishbind_hoststunneldagi manzilga, xizmatni qayta ishga tushiring va soket ko‘chganini tasdiqlang:ss -lunp | grep :53hozir koʻrsatishi kerak10.6.0.1:53va hech qanday wildcard yozuvi yo‘q. Agar u hali ham ko‘rsatilsa0.0.0.0,yugurayotgan jarayon siz tahrir qilgan faylni o'qimayapti.
Keyin mijozdan sinov o'tkazing, chunki faqat shu tomon muhim. Bir so'rov bilandig @10.6.0.1 example.comfoydalanuvchi foydalanadigan yo‘lni mashq qiladi va hostdagi tutib olish bilantcpdump -ni wg0 udp port 53javobning manzilini tarmoq orqali ko'rsatadi. Uni mijozning yechim sozlamasidagi manzil bilan solishtiring; ular teng bo'lganda, vaqt tugashi sir emas bo'ladi.
ip route get 10.6.0.2qolgan g'alatlikni tushuntiradi, chunki u mijozga qaytariladigan host interfeysi va manzilni chop etadi. Agar bu chiqishda LAN interfeysi ko'rsatilsa, bind o'zgarishi to'liq yechim emas va keyingi o'qilishi kerak bo'lgan narsa marshrut jadvalidir.
Bind sozlamasi nima qilolmaydi
Tinglovchini pinlash tunnel tarmog'ini tashlab ketadigan kirish ro'yxatini, so'rovga ruxsat beradigan, lekin javobga ruxsat bermaydigan firewall qoidasini yoki WireGuard havzasiga qaytadigan marshrutning yo'qligini tuzatmaydi. Ular manzil manzilidan oldin yoki keyin xatoga tushadi, va har birida turli egasi bor.
Shu bilan birga, quyidagini o'zgartirmaydiyechim qaysi yuqori oqimga yo'naltirilishini, qayta bog‘lash himoyasi maxfiy nom uchun maxfiy javobni rad etadimi yoki mijoz o‘z qidiruv domenlarini qanday qo‘llaydi. Bu alohida nazorat vositalari. Javob manbai noto‘g‘ri bo‘lsa bog‘lash manzilini o‘zgartiring, va aks holda boshqa narsani o‘zgartiring.