Skip to content

خروجی‌ها ​

outbounds آرایهٔ مقاصد بالادست است. هر مدخل یک OutboundDetourConfig است: نام پروتکل، شیء settings مخصوص پروتکل، و بلوک‌های اختیاری ترابرد (streamSettings) و چندسوسازی (mux). اولین مدخل آرایه خروجی پیش‌فرض است — ترافیکی که با هیچ قاعدهٔ مسیریابی تطبیق نکند به آن می‌رود.

گزینه‌ها ​

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
protocolstring—freedom | direct | blackhole | block | loopback | http | socks | shadowsocks | vless | vmess | trojan | hysteria | dns | wireguardکدام هندلر خروجی برای شماره‌گیری استفاده شود. پیش از جستجو به حروف کوچک تبدیل می‌شود. direct نام دیگر freedom و block نام دیگر blackhole است.
sendThrough*string0.0.0.0—آدرس مبدأ محلی برای شماره‌گیری. یک IP، یک CIDR (برای هر اتصال آدرسی تصادفی از داخل آن انتخاب می‌شود)، یا دامنه‌های ویژهٔ origin / srcip را می‌پذیرد.
tagstring——نام یکتای این خروجی. قواعد مسیریابی، توازن‌دهنده‌ها، زنجیرهٔ dialerProxy و شمارنده‌های آمار به آن ارجاع می‌دهند.
settings*json.RawMessage——شیء تنظیمات مخصوص پروتکل که هندلر انتخاب‌شده توسط protocol آن را رمزگشایی می‌کند. شکل هر پروتکل را در صفحهٔ همان پروتکل ببینید.
streamSettings*StreamConfig——ترابرد و امنیت اتصال‌های خروجی (raw / ws / grpc / xhttp…، tls / reality). صفحات ترابرد و TLS را ببینید.
proxySettings*json.RawMessage(unsupported)(use sockopt.dialerProxy)پشتیبانی نمی‌شود — تنظیم آن هنگام راه‌اندازی خطا می‌دهد و به streamSettings.sockopt.dialerProxy، روش زنجیرکردن خروجی‌ها، اشاره می‌کند.
mux*MuxConfig——چندسوسازی Mux روی اتصال زیرین. فیلدها در جدول زیر.
targetStrategystringAsIsAsIs | UseIP | UseIPv4 | UseIPv6 | UseIPv4v6 | UseIPv6v4 | ForceIP | ForceIPv4 | ForceIPv6 | ForceIPv4v6 | ForceIPv6v4نحوهٔ حل دامنهٔ مقصد پیش از شماره‌گیری (تطبیق بدون حساسیت به بزرگی حروف). ‏*Use خانواده‌های داده‌شده را ترجیح می‌دهد و اجازهٔ جایگزین دارد، ‏*Force از جایگزین‌شدن خودداری می‌کند. مقدار ناشناخته خطای راه‌اندازی است. در خروجی freedom، مقدار غیر از AsIs هنگام راه‌اندازی به streamSettings.sockopt.domainStrategy منتقل می‌شود (هشداری ثبت می‌شود؛ رفتار تغییری نمی‌کند).

منبع: infra/conf/xray.go:214-223 · ثابت‌شده در v26.9.9 (52a412d)

زنجیر ​

زنجیرکردن خروجی‌ها روی ترابرد پیکربندی می‌شود: streamSettings.sockopt.dialerProxy را روی tag خروجی دیگری بگذارید تا اتصال‌های این خروجی از راه آن برقرار شوند. شیء proxySettings وجود ندارد — پیکربندی‌ای که آن را تنظیم کند هنگام راه‌اندازی با پیامی که به dialerProxy اشاره می‌کند شکست می‌خورد.

چندسوسازی (mux) ​

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
enabledboolfalsetrue | falseMux را برای ترافیک TCP این خروجی روشن می‌کند.
concurrencyint16——بیشینهٔ جریان‌های هم‌زمان روی یک اتصال فیزیکی. مقدار منفی، Mux را به‌کل غیرفعال می‌کند، از جمله مسیر XUDP.
xudpConcurrencyint16——هم‌زمانی جداگانه برای اتصال‌های XUDP (‏UDP روی Mux).
xudpProxyUDP443stringrejectreject | allow | skipبا ترافیک پراکسی‌شدهٔ UDP/443 (‏QUIC) داخل XUDP چه شود: رد شود، اجازه داده شود، یا Mux برای آن رد شود.

منبع: infra/conf/xray.go:103-108 · ثابت‌شده در v26.9.9 (52a412d)

مثال حداقلی ​

json
{
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "vless",
      "settings": {
        "vnext": [
          {
            "address": "example.com",
            "port": 443,
            "users": [{ "id": "uuid", "encryption": "none" }]
          }
        ]
      },
      "streamSettings": { "security": "tls" }
    },
    { "tag": "direct", "protocol": "freedom", "settings": {} },
    { "tag": "block", "protocol": "blackhole", "settings": {} }
  ]
}

نکات ​

  • ترتیب مهم است: مسیریابی، ترافیک تطبیق‌نیافته را به اولین خروجی می‌فرستد. مدخل پراکسی یا freedom موردنظرتان برای پیش‌فرض را در اندیس ۰ نگه دارید.
  • مقدار proxySettings.tag با streamSettings.sockopt.dialerProxy متناظر است. transportLayer همتایی ندارد، چون dialerProxy همیشه در لایهٔ ترابرد زنجیر می‌کند.
  • ‏sendThrough با CIDR برای هر اتصال آدرس مبدأی تصادفی از داخل بازه برمی‌دارد — با یک پیشوند IPv6 مسیرپذیر بسیار کارآمد است.
  • پروتکل dns خروجی ویژه‌ای است که پرس‌وجوهای DNS را شکار می‌کند؛ DNS را ببینید.

نکات بین‌هسته‌ای ​

  • sing-box همین مفهوم را با شیء تخت در هر مدخل مدل می‌کند (type + tag + فیلدها در یک سطح) و قاعدهٔ ضمنی «اولی پیش‌فرض است» ندارد — پیش‌فرض را route.final تعیین می‌کند. خروجی‌های sing-box را ببینید.
  • mihomo این‌ها را proxies می‌نامد و همیشه از راه گروه‌های پراکسی یا قواعد توزیع می‌کند، نه پیش‌فرض ترتیبی.

منبع: infra/conf/xray.go:214-223 · v26.9.9 (52a412d)

Core Tutorial اثر Argsment