مقایسه — انتخاب یک هسته
این سه هسته مجموعهای از ویژگیهای همپوشان را پوشش میدهند، اما با فلسفههای طراحی بسیار متفاوت. این صفحه تفاوتها را در یک جا خلاصه میکند تا بتوانید ابزار مناسب را انتخاب کنید و میان آنها مهاجرت دهید.
نگاهی به پشتیبانی از ویژگیها
| ویژگی | Xray-core | sing-box | mihomo |
|---|---|---|---|
| قالب پیکربندی | JSON | JSON | YAML |
| 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 / TProxy | dokodemo + sockopt | اختصاصی | میانبُر + شنونده |
| TLS / uTLS / REALITY / ECH | ✓ | ✓ | ✓ |
| مسیریابی | قواعد JSON + متعادلکننده | قواعد ساختاریافته + اقدامات | رشتههای فشرده |
| DNS | فهرست URL سرور | سرورهای نوعدار | فهرست URL + نگاشت سیاست |
| ارائهدهندگان قاعده | — (فقط geo داخلی) | rule-set | rule-providers |
| گروههای پراکسی | متعادلکننده (۴ راهبرد) | selector / urltest | select / url-test / fallback / load-balance |
| Stats / Prometheus | gRPC + metrics | clash_api + v2ray_api | Clash API |
واگرایی نام فیلدها (یک ویژگی واحد، سه نام)
فهرست کاربران VLESS / VMess
| مفهوم | Xray | sing-box | mihomo |
|---|---|---|---|
| فیلد UUID کاربر | clients[].id | users[].uuid | uuid |
| فیلد نام کاربر | clients[].email | users[].name | username |
| flow هر کاربر | clients[].flow | users[].flow | flow |
رمز 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[].id→users[].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