تونل وصل است، سایت‌ها باز می‌شوند — اما پرس‌وجوهای DNS شاید هنوز بی‌پرده سفر کنند و هر دامنه‌ای را که می‌بینید به شبکهٔ محلی اعلام کنند. این همان نشت DNS است و بخش بزرگی از حریم خصوصیِ پراکسی را بی‌اثر می‌کند. ببینیم کلش نام‌ها را چطور حل می‌کند و سوراخ را چطور می‌بندیم.

نشت DNS: پرس‌وجوهای بی‌رمز پورت 53 از کنار تونل می‌گذرند و DNS رمزشده داخل می‌ماند
اصل نشت: ترافیک از تونل می‌رود اما مقصد از قبل جار زده شده

نشت چطور اتفاق می‌افتد

با پراکسی سیستمِ تنها، مرورگرها معمولاً حل نام را به خود پراکسی می‌سپارند — قابل‌قبول. اما زیر TUN با تنظیم DNS سرسری، یا وقتی برنامه‌ای مستقیم رزولور سیستم را صدا می‌زند، پرس‌وجوها به‌صورت UDP بی‌رمز به رزولور سرویس‌دهندهٔ اینترنت (پورت 53) می‌روند. محموله از تونل می‌گذرد؛ اما نیت سفر از قبل اعلام شده است.

پاسخ کلش: رزولور را خودت باش

Mihomo ماژول DNS داخلی با دو حالت دارد:

  • fake-ip (پیشنهادی): وقتی برنامه آدرس google.com را می‌پرسد، هسته فوراً آدرسی از بازهٔ رزرو (198.18.x.x) برمی‌گرداند. برنامه به همان آدرس ساختگی وصل می‌شود؛ هسته از روی آن دامنه را بازمی‌شناسد و طبق قوانین دامنه‌ای مسیر می‌دهد. حل واقعی در خروجی پراکسی انجام می‌شود. شبکهٔ محلی فقط آدرس‌های ساختگی می‌بیند — بدون نشت، و یک رفت‌وبرگشت هم صرفه‌جویی می‌شود.
  • redir-host: آی‌پی واقعی برمی‌گرداند. با نرم‌افزارهای بدقلق سازگارتر، اما بسیار نشت‌پذیرتر. فقط وقتی برنامه‌ای جدی با fake-ip درگیر است سراغش بروید.

قالب آزموده

در کانفیگ Merge بگذارید (روشش) تا بخش DNS اشتراک را بازنویسی کند:

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "+.local"
    - "+.msftconnecttest.com"   # بررسی اتصال سیستم پاسخ واقعی می‌خواهد
  nameserver:
    - https://1.1.1.1/dns-query
  fallback:
    - https://8.8.8.8/dns-query
  fallback-filter:
    geoip: true

دو ایده در آن هست: رزولورها DoH هستند (رمزنگاری HTTPS)، پس حتی پرس‌وجویی که بیرون تونل برود بی‌رمز نیست؛ و fake-ip-filter نام‌های شبکهٔ محلی و بررسی‌های سیستم را از آدرس ساختگی معاف می‌کند تا چاپگر و درگاه‌های ورود وای‌فای سالم بمانند.

قطعهٔ آخر: DNS hijack زیر TUN

با TUN روشن، «DNS hijack» را روی مقدار پیش‌فرض any:53 نگه دارید: هر پرس‌وجوی بی‌رمز باقی‌مانده — از برنامه‌هایی که هیچ تنظیمی را قبول ندارند — به‌زور وارد هسته می‌شود. خود TUN: آموزش.

تست نشت

  1. با پراکسی روشن، تست Extended را در dnsleaktest.com یا browserleaks.com/dns اجرا کنید؛
  2. همهٔ رزولورهای فهرست باید متعلق به منطقهٔ خروجی پراکسی یا سرویس DoH پیکربندی‌شدهٔ شما باشند؛
  3. ظاهر شدن رزولور سرویس‌دهندهٔ اینترنت‌تان در فهرست = نشت. فعال بودن fake-ip و کار کردن hijack را دوباره چک کنید.

بعد از تغییر تنظیمات DNS، هسته را ری‌استارت کنید تا کش fake-ip خالی شود. مخلوط نگاشت‌های قدیم و جدید چند سایت را از دسترس می‌اندازد و مشکل را بزرگ‌تر از واقعیت نشان می‌دهد.