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:128-139).

منبع: infra/conf/fakedns.go:13-48 · v1.260327.0 (d2758a0)

Core Tutorial اثر Argsment