sing-box در برابر Xray
کدام هسته نمایههای شما را اجرا میکند، Xray VLESS Preference چگونه کار میکند و خطاهای Reality با سرورهای جدیدتر Xray چگونه برطرف میشوند.
بیشتر نمایهها روی sing-box اجرا میشوند. برخی نمایههای VLESS و همهٔ پیکربندیهای سفارشی Xray روی Xray اجرا میشوند که Throne آن را هم در خود دارد. در حالت ساده، زبانههای هسته (Core) و Logging و بیشتر تنظیمات دیگر این صفحه پنهان هستند؛ حالت ساده و پیشرفته را ببینید.
دو هسته در یک برنامه
sing-box همیشه اجرا میشود و پورت پروکسی محلی، حالت TUN، مسیریابی و DNS بر عهدهٔ آن است. Xray بهعنوان یک بخش کمکی فقط زمانی راهاندازی میشود که نمایهٔ در حال اجرا، یکی از هاپهای زنجیرهٔ آن یا خروجی یک قانون مسیریابی به آن نیاز داشته باشد. sing-box این ترافیک را بهصورت داخلی به Xray میسپارد؛ بنابراین حالت TUN، نمایههای مسیریابی و تنظیمات DNS با هر دو هسته یکسان کار میکنند.
نمایههایی که ستون نوع (Type) آنها VLESS (Xray)، Custom Xray … Outbound یا Custom Xray Config را نشان میدهد روی Xray اجرا میشوند؛ همهٔ نمایههای دیگر، از جمله VLESS، روی sing-box اجرا میشوند. لینک vless:// که از یک قابلیت مخصوص Xray استفاده کند، همیشه بهصورت VLESS (Xray) وارد میشود، هر چه Xray VLESS Preference باشد:
- ترنسپورت XHTTP (
type=xhttp) و تنظیماتextraآن، - رمزنگاری VLESS (مقداری برای
encryptionبهجزnone)، - Finalmask،
- ترنسپورت mKCP (
type=kcp)، - ترنسپورت TCP (
raw) با هدر HTTP همراه با TLS.
mKCP اتصال را روی UDP حمل میکند (kcp در شبکه (Network) در ویرایشگر نمایه). با یک ماسک xdns در Finalmask، به تونل DNS XDNS تبدیل میشود. XDRIVE هم فقط در Xray وجود دارد، اما قالب لینک ندارد.
برای دیدن پیکربندیهایی که Throne برای یک نمایه میسازد، در منوی راستکلیک آن اشتراک گذاری (Share) ← استخراج پیکربندی (Export config) را انتخاب کنید. پیامهای 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://. |
منابع دیگر:
- YAML با قالب Clash / Mihomo: یک مورد VLESS زمانی به Xray سپرده میشود که از XHTTP یا رمزنگاری VLESS، یا از Reality روی TCP، WebSocket یا gRPC استفاده کند (مگر اینکه ترجیح
XHTTP Onlyباشد). موارد VLESS دیگر روی sing-box میمانند، حتی باAll VLESS. - JSON با قالب Xray: هر خروجی VLESS به
VLESS (Xray)تبدیل میشود. - JSON با قالب sing-box: خروجیهای VLESS روی sing-box میمانند.
- ویرایشگر نمایه: خودتان
VLESSیاVLESS (Xray)را درنوع(Type) انتخاب میکنید.
پس از تغییر ترجیح
این ترجیح فقط بر نمایههایی اثر میگذارد که پس از تغییر وارد میکنید. برای انتقال نمایههای موجود به هستهٔ دیگر:
- گروه اشتراک: اشتراک را بهروز کنید (
گروه ها(Groups) ←اشتراک را به روز کنید(Update subscription)). Throne نمایههای مربوط را با نمایههای تازه جایگزین میکند؛ بنابراین نتایج تست قبلی آنها از بین میرود. - نمایهای که از یک لینک اضافه شده: لینک را دوباره اضافه کنید، سپس نمایهٔ قدیمی را حذف کنید.
- نمایهای که دستی ساختهاید: نوع آن قابل تغییر نیست. یک نمایهٔ جدید با نوع دیگر بسازید.
اگر Keep working profiles در تنظیمات اشتراک گروه روشن باشد، نمایههای قدیمیِ کارا ممکن است کنار نمایههای جدید باقی بمانند. آنها را خودتان حذف کنید.
خطاهای 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 اجرا کنید:
تنظیمات(Settings) ←تنظیمات پایه(Basic Settings) ←هسته(Core) را باز کنید.Xray VLESS Preferenceرا رویXHTTP And RealityیاAll VLESSبگذارید و رویتایید(OK) کلیک کنید.- اشتراک را بهروز کنید یا لینک را دوباره اضافه کنید (پس از تغییر ترجیح را ببینید).
- بررسی کنید که ستون
نوع(Type) اکنونVLESS (Xray)را نشان دهد.
از یک اشتراک YAML با قالب Clash / Mihomo، فقط موارد Reality روی TCP، WebSocket یا gRPC به Xray منتقل میشوند. برای انتقالهای (transport) دیگر، اگر ارائهدهندهٔ شما اشتراک را بهصورت فهرستی از لینکها هم ارائه میدهد، از آن قالب استفاده کنید.
اگر خودتان یک سرور Xray با نسخهٔ 26.7.11 تا 26.7.28 را اداره میکنید، میتوانید بهجای آن "minClientVer": "0.0.0" را به realitySettings در ورودی (inbound) VLESS آن اضافه کنید تا کلاینتهای قدیمیتر وصل شوند. این کار برای نسخهٔ 26.9.9 و جدیدتر کمکی نمیکند.
اعتماد به گواهیهای سیستم
Xray گواهی سرورها را فقط با گواهیهای ریشهای بررسی میکند که درون خودش دارد؛ بنابراین سروری که گواهیاش از یک ریشهٔ نصبشده توسط خودتان میآید، مانند ریشهٔ یک شرکت یا یک ریشهٔ خودامضا، رد میشود. تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← امنیت (Security) ← اعتماد Xray به گواهیهای سیستم (Trust System Certificates in Xray) را تیک بزنید (پیشفرض: خاموش) تا Xray به گواهیهای سیستم شما هم اعتماد کند.
XDRIVE
با ترنسپورت XDRIVE، Throne و سرور به یکدیگر وصل نمیشوند. آنها ترافیک را بهصورت فایل در فضای ذخیرهسازیای مبادله میکنند که هر دو به آن دسترسی دارند: یک پوشهٔ Google Drive، یک باکت S3، یک سرویس ذخیرهسازی دیگر با API از نوع HTTP، یا پوشهای روی همین رایانه. فقط با سروری از آن استفاده کنید که برای XDRIVE راهاندازی شده است، و با تنظیماتی که گردانندهٔ آن به شما میدهد.
XDRIVE قالب لینک ندارد، چون لینک باید رمزهای فضای ذخیرهسازی را در خود داشته باشد. بهجای آن، پیکربندی JSON سرور با قالب Xray یا یک لینک Throne (throne://add/…) را وارد کنید. اشتراکگذاری یک نمایهٔ XDRIVE لینک Throne آن را میدهد.
برای راهاندازی آن در ویرایشگر نمایه، در شبکه (Network) گزینهٔ xdrive را انتخاب کنید. XDRIVE به این تنظیمات VLESS نیاز دارد:
رمزگذاری(Encryption): رشتهٔ رمزنگاری VLESS که سرور میدهد و باmlkem768x25519plusشروع میشود.Flow: خالی.چندگانهسازی(Multiplex): هر مقداری بهجزDisabled. بانگه داری مقدار پیشفرض(Keep Default)، Throne برای XDRIVE، mux را روشن میکند. چندگانهسازی را ببینید.
در گروه فضای ذخیرهسازی (Storage)، سرویس (Service) را انتخاب کنید و آنچه گرداننده به شما میدهد را وارد کنید:
google-drive(پیشفرض):پوشه(Folder) (شناسهٔ پوشهٔ مشترک)،شناسهٔ کلاینت(Client ID)،رمز کلاینت(Client Secret) وتوکن تازهسازی(Refresh Token).s3، هر فضای ذخیرهسازی سازگار با S3 مانند AWS S3، MinIO یا Cloudflare R2:Endpoint،Bucket،پوشه(پیشوند کلیدها)،Access Key IDوSecret Access Key، و بهدلخواهRegion(خالی یعنیus-east-1) وSession Token.Path-Style Addressing(بهطور پیشفرض روشن) باکت را بهجای نام میزبان، در مسیر URL میگذارد.template، هر فضای ذخیرهسازی با API از نوع HTTP:قالب(Template) (عملیات API بهصورت JSON) ورمزها(Secrets) (مقدارهای جداشده با ویرگول که بهصورت{secret0}،{secret1}و مانند آن خوانده میشوند).local:پوشه، پوشهای روی همین رایانه.
نشانی جلویی (Front Address) و درگاه جلویی (Front Port) (پیشفرض 443) اختیاریاند: Throne به API ذخیرهسازی در این نشانی وصل میشود، در حالی که TLS همچنان نام میزبان API را میفرستد؛ نوعی domain fronting. برای استفاده از پیشفرضهای Xray، گروه تنظیم دقیق (Tuning) را خالی بگذارید.
Xray در زنجیرهها
یک زنجیره میتواند نمایههای sing-box و Xray را با هم ترکیب کند، با دو محدودیت:
- همهٔ هاپهای Xray باید کنار هم باشند: هاپهای sing-box، سپس هاپهای Xray، سپس هاپهای sing-box. در غیر این صورت نمایه اجرا نمیشود و در گزارش، «Too many core transitions» (جابهجایی بیش از حد میان هستهها) دیده میشود.
- نمایهٔ
Custom (Xray config)باید بالاترین هاپ باشد و نمیتواند با هاپهای Xray دیگر در یک زنجیره باشد.
پروکسی front و پروکسی مقصد گروه، و نیز WARP، هم هاپ به شمار میآیند. زنجیرههای پروکسی و پیکربندیهای سفارشی را ببینید.
فایلهای geo برای Xray
نمایهٔ Custom (Xray config) که قوانین routing خودش از مقدارهای geoip: یا geosite: استفاده کند، به فایلهای geoip.dat و geosite.dat نیاز دارد. وقتی این فایلها وجود نداشته باشند، Throne پیشنهاد میکند آنها را دانلود کند: روی بله (Yes) کلیک کنید، سپس نمایه را دوباره اجرا کنید.
منبع آنها را در تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Miscellaneous → Xray Geo Assets انتخاب کنید: Loyalsoldier (جهانی و چین، پیشفرض)، Chocolate4U (ایران)، runetfreedom (روسیه) یا v2fly. هر دو فایل را از یک منبع بگیرید. اگر Throne پیام «Geo asset missing category» (این دسته در فایل geo نیست) را نشان داد، منبعی را انتخاب کنید که این دسته را دارد و برای آن فایل روی Download کلیک کنید.
Android
- این ترجیح در
تنظیمات(Settings) ←هسته(Core) ←ترجیح VLESS در Xray(Xray VLESS preference) قرار دارد، با گزینههایفقط XHTTP(XHTTP only)،XHTTP و Reality(XHTTP and Reality) (پیشفرض) وهمه VLESS(All VLESS). - XDRIVE: در
شبکه(Network) گزینهٔXDRIVEرا انتخاب کنید. فیلدها درتنظیمات XDRIVE(XDRIVE settings) وتنظیم دقیق XDRIVE(XDRIVE tuning) هستند ورمزها(Secrets) در هر خط یک مقدار میگیرد. - mKCP: در
شبکهگزینهٔmKCPرا انتخاب کنید. فیلدها درتنظیمات mKCP(mKCP settings) وتنظیم دقیق mKCP(mKCP tuning) هستند. برای XDNS، ماسکxdnsرا درFinalmaskاضافه کنید. تنظیمات(Settings) ←هسته(Core) ←اعتماد به گواهیهای سیستم در Xray(Trust system certificates in Xray) به گواهیهای ریشهای اعتماد میکند که همراه Android هستند، نه به گواهیهایی که خودتان نصب کردهاید.- Throne برای Android فایلهای
geoip.datوgeosite.datرا وقتی یک پیکربندی Xray به آنها نیاز داشته باشد، خودش دانلود میکند. منبع آنها را درتنظیمات(Settings) ←هسته(Core) ←دادههای جغرافیایی Xray(Xray geo assets) انتخاب کنید.