VLESS — sing-box
sing-box پیادهسازی VLESS را عرضه میکند که با کلاینت و سرور Xray تعامل دارد، از XTLS Vision برای مسیر سریع پس از دستدهی پشتیبانی میکند و (در سمت خروجی) برای چندسوسازی UDP-over-TLS از XUDP استفاده میکند.
ورودی
ورودی type: "vless":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | []VLESSUser | [] | <VLESSUser array> | فهرست کاربران پذیرفتهشده. حداقل یک ورودی برای اینکه ورودی اتصالها را بپذیرد لازم است. |
multiplex | *InboundMultiplexOptions | (disabled) | InboundMultiplexOptions | چندسوسازی (mux) سمت سرور (smux/yamux/h2mux). این بلوک در صفحهٔ Multiplex در فاز ۴ مستند شده است. |
transport | *V2RayTransportOptions | (plain TCP) | V2RayTransportOptions | بستهبندی ترابرد اختیاری به سبک V2Ray: ws، http، grpc، quic، hysteria. به Transport در فاز ۴ مراجعه کنید. |
منبع: option/vless.go:3-9 · ثابتشده در v1.13.11 (553cfa1)
این ساختار همچنین ListenOptions (آدرس شنود، پورت، sniff، set، …) و InboundTLSOptionsContainer (مواد TLS) را درون خود جای میدهد. این بلوکها میان همهٔ انواع ورودی مشترکاند و در صفحات Inbounds و TLS در فاز ۴ مستند میشوند.
users[]
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (unset) | <string> | نام نمایشی کاربر؛ بهعنوان برچسب آمار/لاگ استفاده میشود. |
uuid | string | (required) | <UUID> | UUID کاربر. الزامی. در شکل استاندارد 8-4-4-4-12. |
flow | string | (empty) | | xtls-rprx-vision | الگوریتم flow هر کاربر. خالی = VLESS ساده؛ `xtls-rprx-vision` Vision را فعال میکند. |
منبع: option/vless.go:11-15 · ثابتشده در v1.13.11 (553cfa1)
خروجی
خروجی type: "vless":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
uuid | string | (required) | <UUID> | UUID کاربری که سرور بالادست میپذیرد. |
flow | string | (empty) | | xtls-rprx-vision | الگوریتم flow؛ باید با آنچه سرور انتظار دارد تطبیق داشته باشد. |
network | NetworkList | (tcp+udp) | tcp | udp | <empty for both> | محدود کردن به فقط TCP یا فقط UDP. خالی هر دو را فعال میکند. |
multiplex | *OutboundMultiplexOptions | (disabled) | OutboundMultiplexOptions | چندسوسازی (mux) سمت کلاینت. باید با پیکربندی چندسوسازی سرور تطبیق داشته باشد. |
transport | *V2RayTransportOptions | (plain TCP) | V2RayTransportOptions | ترابرد به سبک V2Ray (ws، http، grpc و غیره). |
packet_encoding | *string | (unset) | packetaddr | xudp | روش رمزگذاری برای حمل بستههای UDP داخل جریان VLESS. `xudp` با XUDP در Xray تطبیق دارد؛ `packetaddr` شکل قدیمیتر تکجریانی است. |
منبع: option/vless.go:17-27 · ثابتشده در v1.13.11 (553cfa1)
این ساختار DialerOptions (bind interface، routing mark، detour، …)، ServerOptions (server، server_port) و OutboundTLSOptionsContainer (tls) را درون خود جای میدهد.
مثالها
ورودی با یک کاربر و XTLS Vision:
{
"inbounds": [
{
"type": "vless",
"tag": "vless-in",
"listen": "::",
"listen_port": 443,
"users": [
{ "name": "alice", "uuid": "a3482e88-686a-4a58-8126-99c9df64b7bf", "flow": "xtls-rprx-vision" }
],
"tls": {
"enabled": true,
"server_name": "example.com",
"certificate_path": "/etc/ssl/cert.pem",
"key_path": "/etc/ssl/key.pem"
}
}
]
}خروجی از طریق REALITY، ارسال UDP از طریق XUDP:
{
"outbounds": [
{
"type": "vless",
"tag": "proxy",
"server": "example.com",
"server_port": 443,
"uuid": "a3482e88-686a-4a58-8126-99c9df64b7bf",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.google.com",
"utls": { "enabled": true, "fingerprint": "chrome" },
"reality": { "enabled": true, "public_key": "...", "short_id": "..." }
}
}
]
}نکات
- یک سرور VLESS در sing-box از
users[].uuidاستفاده میکند، نهclients[].idمانند Xray. همان UUID در هر دو پیادهسازی کار میکند؛ فقط کلید JSON تغییر میکند. - sing-box از سازوکار
fallbacksXray درون VLESS پشتیبانی نمیکند؛ رفتار معادل از طریق فیلدfallbackدر بلوک مشترکtlsفراهم میشود (که در صورت عدم تطبیق دستدهی TLS بازارسال میکند). - گزینههای
packet_encodingازproxy/vless/packetaddrبالادست میآیند.xudpپیشفرض مدرن است و با رمزگذاریای که Xray هنگام داشتن پسوند-udp443در فیلدflowاستفاده میکند تطبیق دارد. users[].flowو حالت ضمنی «بدون flow» با هم ترکیب میشوند: یک سرور بدون کاربر Vision همچنان کلاینتهای VLESS ساده را روی همان پورت میپذیرد.
نکات بینهستهای
- Xray از
clients[].id(UUID) استفاده میکند و آرایهٔfallbacksرا روی ورودی میپذیرد. به VLESS — Xray-core مراجعه کنید. - mihomo همه چیز را در یک شیء proxi واحد جای میدهد (آرایهٔ جداگانهٔ
usersدر خروجی وجود ندارد). به VLESS — mihomo مراجعه کنید.
منبع: option/vless.go:3-27 · v1.13.11 (553cfa1)
