Skip to content

مقایسه — انتخاب یک هسته

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

نگاهی به پشتیبانی از ویژگی‌ها

ویژگیXray-coresing-boxmihomo
قالب پیکربندیJSONJSONYAML
VLESS
VMess✓ (فقط AEAD)
Trojan✓ (بدون flow)
Shadowsocks (شامل 2022)
ShadowsocksR
Hysteria2✓ (پیکربندی تفکیک‌شده)
TUIC✓ (v5)✓ (v4 + v5)
WireGuardخروجیendpointخروجی
Naive
AnyTLS
SSH
Tor
HTTP / SOCKS✓ (شامل mixed)✓ (شامل mixed)
Dokodemo / port-forwardاختصاصیاز طریق Directاختصاصی
ورودی TUNحداقلیکاملکامل
Redirect / TProxydokodemo + sockoptاختصاصیمیان‌بُر + شنونده
TLS / uTLS / REALITY / ECH
مسیریابیقواعد JSON + متعادل‌کنندهقواعد ساختاریافته + اقداماترشته‌های فشرده
DNSفهرست URL سرورسرورهای نوع‌دارفهرست URL + نگاشت سیاست
ارائه‌دهندگان قاعده— (فقط geo داخلی)rule-setrule-providers
گروه‌های پراکسیمتعادل‌کننده (۴ راهبرد)selector / urltestselect / url-test / fallback / load-balance
Stats / PrometheusgRPC + metricsclash_api + v2ray_apiClash API

واگرایی نام فیلدها (یک ویژگی واحد، سه نام)

فهرست کاربران VLESS / VMess

مفهومXraysing-boxmihomo
فیلد UUID کاربرclients[].idusers[].uuiduuid
فیلد نام کاربرclients[].emailusers[].nameusername
flow هر کاربرclients[].flowusers[].flowflow

رمز Shadowsocks

  • Xray / sing-box: method
  • mihomo: cipher

جفت سرور / پورت

  • ورودی‌های Xray: listen + port
  • خروجی‌های Xray: address + port (شکل ساده‌شده) یا servers[].address + servers[].port
  • ورودی‌های sing-box: listen + listen_port
  • خروجی‌های sing-box: server + server_port
  • mihomo: listen + port (شنونده ورودی) / server + port (خروجی)

رد کردن اعتبارسنجی گواهی

  • Xray: tlsSettings.allowInsecure
  • sing-box: tls.insecure
  • mihomo: skip-cert-verify در هر آداپتور

اثرانگشت uTLS

  • Xray: tlsSettings.fingerprint
  • sing-box: tls.utls: { enabled, fingerprint }
  • mihomo: client-fingerprint در هر آداپتور (یا global-client-fingerprint در سطح بالا)

چندگانه‌سازی (mux)

  • Xray: streamSettings.sockopt (محدود)
  • sing-box: multiplex: { ... } روی ورودی/خروجی
  • mihomo: mux-option روی شنونده ورودی (mux به سبک sing)

کتاب راهنمای مهاجرت

از Xray VLESS به sing-box VLESS

Xray:

json
{
  "outbounds": [{
    "protocol": "vless",
    "settings": {
      "vnext": [{
        "address": "example.com",
        "port": 443,
        "users": [{ "id": "abc...", "flow": "xtls-rprx-vision" }]
      }]
    },
    "streamSettings": {
      "security": "reality",
      "realitySettings": { "publicKey": "...", "shortId": "...", "serverName": "cdn.com" }
    }
  }]
}

معادل sing-box:

json
{
  "outbounds": [{
    "type": "vless",
    "server": "example.com",
    "server_port": 443,
    "uuid": "abc...",
    "flow": "xtls-rprx-vision",
    "tls": {
      "enabled": true,
      "server_name": "cdn.com",
      "utls": { "enabled": true, "fingerprint": "chrome" },
      "reality": { "enabled": true, "public_key": "...", "short_id": "..." }
    }
  }]
}

تفاوت‌های کلیدی:

  • clients[].idusers[].uuid در ورودی؛ در خروجی از uuid تخت استفاده می‌شود.
  • streamSettings.realitySettings → زیربلوک tls.reality.
  • streamSettings.security: "reality"tls.enabled: true به‌علاوهٔ tls.reality.enabled: true.
  • اثرانگشت ضمنی chrome در Xray به‌صورت صریح tls.utls: { enabled, fingerprint } می‌شود.

از sing-box به mihomo (همان VLESS)

yaml
proxies:
  - name: vless-reality
    type: vless
    server: example.com
    port: 443
    uuid: abc...
    flow: xtls-rprx-vision
    tls: true
    servername: cdn.com
    client-fingerprint: chrome
    reality-opts:
      public-key: ...
      short-id: ...

تفاوت‌های کلیدی:

  • همهٔ فیلدهای TLS به ریشهٔ proxy منتقل می‌شوند (tls، servername، client-fingerprint). بدون بلوک تو در توی tls:.
  • reality: تبدیل به reality-opts: می‌شود.

از Hysteria2 (شکل تفکیک‌شدهٔ Xray) به sing-box

Xray پیکربندی را تفکیک می‌کند؛ sing-box همه چیز را در یک بلوک نگه می‌دارد:

yaml
# Xray (دو بلوک)
outbounds:
  - protocol: hysteria
    settings: { version: 2, address: example.com, port: 443 }
    streamSettings:
      hysteriaSettings: { version: 2, auth: pw, up: 100mbps, down: 300mbps }
json
// sing-box (یک بلوک، Mbps صحیح)
{
  "type": "hysteria2",
  "server": "example.com",
  "server_port": 443,
  "password": "pw",
  "up_mbps": 100,
  "down_mbps": 300,
  "tls": { "enabled": true }
}

قواعد مسیریابی

Xray (JSON):

json
{ "type": "field", "domain": ["geosite:cn"], "outboundTag": "direct" }

sing-box (JSON):

json
{ "rule_set": ["geosite-cn"], "outbound": "direct" }

mihomo (رشته):

GEOSITE,cn,DIRECT

Core Tutorial اثر Argsment