Skip to content

FakeDNS ​

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

شکل ​

fakeDns دارای شکل JSON چندریختی است: یا یک شیء استخر واحد است یا آرایه‌ای از اشیاء استخر.

json
// Single pool:
{
  "fakeDns": { "ipPool": "198.18.0.0/15", "poolSize": 65535 }
}

// Multiple pools (most common — one for v4, one for v6):
{
  "fakeDns": [
    { "ipPool": "198.18.0.0/15", "poolSize": 32768 },
    { "ipPool": "fc00::/18",      "poolSize": 32768 }
  ]
}

فیلدهای عنصر استخر:

فیلدنوعپیش‌فرضتوضیح
ipPoolstring (CIDR)(الزامی)بلوک CIDR که آدرس‌های جعلی از آن تحویل داده می‌شوند.
poolSizeint64(الزامی)تعداد آدرس‌هایی که از CIDR استفاده می‌شود (اندازهٔ LRU).

پُرسازی خودکار ​

Xray همچنین در صورتی که بخش DNS شما به سرور خاص fakedns ارجاع دهد ولی بلوک fakeDns وجود نداشته باشد، یک بلوک FakeDNS پیش‌فرض به‌طور خودکار اضافه می‌کند — به FakeDNSPostProcessingStage.Process در infra/conf/fakedns.go:73 رجوع کنید. پیش‌فرض‌ها 198.18.0.0/15 برای IPv4 و fc00::/18 برای IPv6 هستند که در حالت دو پشته‌ای هرکدام به اندازهٔ 32768 و در حالت تک‌پشته‌ای 65535 تعیین می‌شوند.

نکات ​

  • شکل‌های قانونی JSON با آزمایش unmarshal در UnmarshalJSON (infra/conf/fakedns.go:36-47) تشخیص داده می‌شوند. ورودی ترکیبی (مثلاً یک شیء با فیلد فهرستی نامرتبط) در زمان تحلیل خطا تولید می‌کند.
  • برای آن‌که موتور مسیریابی واقعاً به دامنهٔ اصلی بازنویسی کند، ورودی متناظر باید اسنیف را با destOverride شامل "fakedns" یا "fakedns+others" فعال کرده باشد — اگر چنین ورودی‌ای یافت نشود، Xray در راه‌اندازی هشدار چاپ می‌کند (infra/conf/fakedns.go:121-132).

منبع: infra/conf/fakedns.go:13-48 · v26.9.9 (52a412d)

Core Tutorial اثر Argsment