sing-box در برابر Xray

کدام هسته نمایه‌های شما را اجرا می‌کند، Xray VLESS Preference چگونه کار می‌کند و خطاهای Reality با سرورهای جدیدتر Xray چگونه برطرف می‌شوند.

هستهٔ Throne بر پایهٔ sing-box ساخته شده و Xray را هم در خود دارد. بیشتر نمایه‌ها روی sing-box اجرا می‌شوند. برخی نمایه‌های VLESS و همهٔ پیکربندی‌های سفارشی Xray روی Xray اجرا می‌شوند. این صفحه توضیح می‌دهد که Throne چگونه هسته را انتخاب می‌کند، چگونه این انتخاب را برای لینک‌های VLESS تغییر دهید و چگونه خطاهای اتصال Reality را برطرف کنید.

دو هسته در یک برنامه

sing-box همیشه اجرا می‌شود. پورت پروکسی محلی، حالت TUN، قوانین مسیریابی و DNS بر عهدهٔ آن است. Xray به‌عنوان یک بخش کمکی درون همان هسته اجرا می‌شود. Xray فقط زمانی راه‌اندازی می‌شود که نمایهٔ در حال اجرا به آن نیاز داشته باشد؛ برای مثال وقتی خود نمایه، یکی از هاپ‌های زنجیرهٔ آن یا خروجی یک قانون مسیریابی روی Xray اجرا شود. sing-box این ترافیک را از راه یک اتصال محلی داخلی به Xray می‌سپارد؛ بنابراین حالت TUN، نمایه‌های مسیریابی و تنظیمات DNS با هر دو هسته یکسان کار می‌کنند.

این نمایه‌ها روی Xray اجرا می‌شوند:

ستون نوع (Type) از کجا می‌آید
VLESS (Xray) لینک‌های vless://، بسته به Xray VLESS Preference؛ خروجی‌های VLESS در JSON با قالب Xray؛ نوع VLESS (Xray) در ویرایشگر نمایه.
Custom Xray … Outbound نوع Custom (Xray outbound)؛ خروجی‌های دیگر در JSON واردشده با قالب Xray.
Custom Xray Config نوع Custom (Xray config)؛ فهرست‌های واردشده از پیکربندی‌های کامل Xray.

همهٔ نمایه‌های دیگر، از جمله VLESS، روی sing-box اجرا می‌شوند.

برخی قابلیت‌های VLESS فقط در Xray وجود دارند. لینک vless:// که از یکی از آن‌ها استفاده کند، همیشه به‌صورت VLESS (Xray) وارد می‌شود، صرف‌نظر از اینکه ترجیح روی چه مقداری تنظیم شده باشد:

  • ترنسپورت XHTTP (type=xhttp) و تنظیمات extra آن،
  • رمزنگاری VLESS (مقداری برای encryption به‌جز none)،
  • Finalmask،
  • ترنسپورت TCP (raw) با هدر HTTP همراه با TLS.

پیام‌های Xray در همان زبانهٔ گزارش‌ها (Logs) نمایش داده می‌شوند. میزان جزئیات آن‌ها در تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Logging → Xray Log level تعیین می‌شود.

انتخاب هسته برای لینک‌های VLESS

تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← هسته (Core) ← Xray VLESS Preference تعیین می‌کند که یک لینک vless:// هنگام وارد شدن به کدام هسته سپرده شود:

گزینه لینک‌هایی که به‌صورت VLESS (Xray) وارد می‌شوند
XHTTP Only فقط لینک‌هایی که به یک قابلیت مخصوص Xray نیاز دارند (فهرست بالا را ببینید). لینک‌های Reality روی sing-box می‌مانند.
XHTTP And Reality (پیش‌فرض) لینک‌های بالا، به‌علاوهٔ همهٔ لینک‌های Reality.
All VLESS همهٔ لینک‌های vless://.

همهٔ لینک‌های vless:// دیگر به نمایه‌های VLESS تبدیل می‌شوند که روی sing-box اجرا می‌شوند.

این ترجیح فقط برای لینک‌های vless:// اعمال می‌شود:

  • YAML با قالب Clash / Mihomo: یک مورد VLESS فقط زمانی به Xray سپرده می‌شود که از XHTTP یا رمزنگاری VLESS استفاده کند. موارد Reality روی sing-box می‌مانند.
  • JSON با قالب Xray: هر خروجی VLESS به VLESS (Xray) تبدیل می‌شود.
  • JSON با قالب sing-box: خروجی‌های VLESS روی sing-box می‌مانند.
  • ویرایشگر نمایه: خودتان VLESS یا VLESS (Xray) را در فهرست نوع (Type) انتخاب می‌کنید.

پس از تغییر ترجیح

این ترجیح فقط بر نمایه‌هایی اثر می‌گذارد که پس از تغییر وارد می‌کنید. نمایه‌های موجود هستهٔ خود را نگه می‌دارند. برای انتقال آن‌ها به هستهٔ دیگر:

  • گروه اشتراک: اشتراک را به‌روز کنید، با گروه ها (Groups) ← اشتراک را به روز کنید (Update subscription) یا با راست‌کلیک روی زبانهٔ گروه ← اشتراک را به روز کنید. Throne نمایه‌های مربوط را با نمایه‌های تازه‌ای از نوع دیگر جایگزین می‌کند؛ بنابراین نتایج تست قبلی آن‌ها از بین می‌رود.
  • نمایه‌ای که از یک لینک اضافه شده: لینک را دوباره اضافه کنید، سپس نمایهٔ قدیمی را حذف کنید.
  • نمایه‌ای که دستی ساخته‌اید: نوع آن قابل تغییر نیست. یک نمایهٔ جدید با نوع دیگر بسازید.

اگر Keep working profiles در تنظیمات اشتراک Advanced گروه روشن باشد، نمایه‌های قدیمیِ کارا ممکن است کنار نمایه‌های جدید باقی بمانند. آن‌ها را خودتان حذف کنید.

یک نمایه از کدام هسته استفاده می‌کند؟

به ستون نوع (Type) در فهرست نمایه‌ها نگاه کنید. VLESS روی sing-box اجرا می‌شود. VLESS (Xray)، Custom Xray … Outbound و Custom Xray Config روی Xray اجرا می‌شوند.

برای اینکه لایهٔ امنیتی، مانند Reality، هم در آن ستون دیده شود، تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← استایل (Style) ← Show Config Security را روشن کنید. برای نمایه‌های VLESS (Xray) و Custom (Xray outbound) و نیز برای زنجیره‌ها، منوی راست‌کلیک گزینهٔ اشتراک گذاری (Share) ← Export Xray config را هم دارد.

خطاهای Reality با سرورهای جدیدتر Xray

سرورهای جدیدتر Xray کلاینت Reality در sing-box را رد می‌کنند. در این حالت نمایه وصل نمی‌شود و در گزارش، reality verification failed دیده می‌شود (#1780).

  • Xray نسخه‌های 26.7.11 تا 26.7.28 فقط کلاینت‌هایی را می‌پذیرند که نسخهٔ جدیدی از Xray را اعلام کنند.
  • Xray نسخهٔ 26.9.9 و جدیدتر به تبادل کلید جدیدتری (X25519MLKEM768) نیاز دارند که کلاینت Reality در sing-box آن را ارائه نمی‌کند.

راه‌حل، اجرای نمایه روی Xray است:

  1. تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← هسته (Core) را باز کنید.
  2. Xray VLESS Preference را روی XHTTP And Reality یا All VLESS بگذارید.
  3. روی تایید (OK) کلیک کنید.
  4. اشتراک را به‌روز کنید یا لینک را دوباره اضافه کنید (پس از تغییر ترجیح را ببینید).
  5. بررسی کنید که ستون نوع (Type) اکنون VLESS (Xray) را نشان دهد.

این کار برای موارد Reality از یک اشتراک YAML با قالب Clash / Mihomo کمکی نمی‌کند، چون آن‌ها همیشه روی sing-box می‌مانند. اگر ارائه‌دهندهٔ شما اشتراک را به‌صورت فهرستی از لینک‌ها هم ارائه می‌دهد، از آن قالب استفاده کنید.

اگر خودتان یک سرور Xray با نسخهٔ 26.7.11 تا 26.7.28 را اداره می‌کنید، می‌توانید "minClientVer": "0.0.0" را هم به realitySettings در ورودی (inbound) VLESS آن اضافه کنید. این کار اجازه می‌دهد کلاینت‌های قدیمی‌تر وصل شوند. برای Xray نسخهٔ 26.9.9 و جدیدتر کمکی نمی‌کند.

Xray در زنجیره‌ها

یک زنجیره می‌تواند نمایه‌های sing-box و Xray را با هم ترکیب کند، با دو محدودیت:

  • همهٔ هاپ‌های Xray باید کنار هم باشند. ترافیک فقط یک بار می‌تواند از sing-box به Xray برود و برگردد: هاپ‌های sing-box، سپس هاپ‌های Xray، سپس هاپ‌های sing-box. در غیر این صورت نمایه اجرا نمی‌شود و در گزارش، «Too many core transitions» (جابه‌جایی بیش از حد میان هسته‌ها) دیده می‌شود.
  • نمایهٔ Custom (Xray config) باید بالاترین هاپ باشد و نمی‌تواند با هاپ‌های Xray دیگر در یک زنجیره باشد، چون یک زنجیره فقط می‌تواند از یک نمونهٔ Xray استفاده کند.

پروکسی front و پروکسی مقصد گروه، و نیز WARP، هم هاپ به شمار می‌آیند. زنجیره‌های پروکسی و پیکربندی‌های سفارشی را ببینید.

فایل‌های geo برای Xray

یک نمایهٔ Custom (Xray config) می‌تواند قوانین routing خودش را با مقدارهای geoip: یا geosite: داشته باشد. Xray برای این قوانین به فایل‌های geoip.dat و geosite.dat نیاز دارد. نمایه‌های دیگر و نمایه‌های مسیریابی Throne از این فایل‌ها استفاده نمی‌کنند؛ آن‌ها از مجموعه‌قوانین (rule-set) استفاده می‌کنند.

وقتی این فایل‌ها وجود نداشته باشند، Throne پیام «Geo asset files required» (فایل‌های geo لازم است) را نشان می‌دهد و پیشنهاد می‌کند آن‌ها را دانلود کند. روی بله (Yes) کلیک کنید، منتظر «Geo assets installed» (فایل‌های geo نصب شدند) بمانید و سپس نمایه را دوباره اجرا کنید.

نشانی‌های دانلود در تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Miscellaneous → Xray Geo Assets و در فیلدهای GeoIP Asset URL و GeoSite Asset URL قرار دارند. فهرست این فیلدها نشانی‌های چهار منبع را پیشنهاد می‌کند: Loyalsoldier (جهانی و چین، پیش‌فرض)، Chocolate4U (ایران)، runetfreedom (روسیه) و v2fly. هر دو فایل را از یک منبع بگیرید. هر دکمهٔ Download فایل مربوط به خود را دوباره دانلود می‌کند و جایگزین فایل قبلی می‌کند.

اگر یک قانون به دسته‌ای اشاره کند که در فایل وجود ندارد، Throne پیام «Geo asset missing category» (این دسته در فایل geo نیست) را نشان می‌دهد. منبعی را انتخاب کنید که این دسته را دارد، سپس برای آن فایل روی Download کلیک کنید.

Android

  • همین تنظیم در تنظیمات (Settings) ← Core → Xray VLESS preference قرار دارد، با گزینه‌های XHTTP only، XHTTP and Reality (پیش‌فرض) و All VLESS. این تنظیم هم فقط هنگام وارد کردن اعمال می‌شود؛ بنابراین پس از تغییر آن، اشتراک را به‌روز کنید.
  • نوع‌های نمایه، VLESS و VLESS (Xray) هستند و محدودیت‌های Xray در زنجیره‌ها هم یکسان است.