Skip to content

خروجی‌ها

outbounds آرایهٔ مقاصد بالادست است. هر مدخل یک شیء تخت است: پاکت type / tag به‌علاوهٔ فیلدهای خود نوع انتخاب‌شده در همان سطح. قاعدهٔ «اولین خروجی پیش‌فرض است» وجود ندارد — ترافیک تطبیق‌نیافته به route.final می‌رود.

پاکت

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
typestringdirect | block | selector | urltest | socks | http | shadowsocks | vmess | trojan | naive | tor | ssh | shadowtls | vless | anytls | hysteria | tuic | hysteria2نوع خروجی. تعیین می‌کند بقیهٔ شیء به کدام ساختار گزینه‌ها رمزگشایی شود. مقدار ثبت‌نشده در راه‌اندازی با "unknown outbound type" شکست می‌خورد.
tagstringنام یکتای این خروجی. قواعد مسیر، route.final، خروجی‌های گروهی و detour شماره‌گیر به آن ارجاع می‌دهند.

منبع: option/outbound.go:19-23 · ثابت‌شده در v1.13.15 (3708fa1)

فیلدهای هر نوع در صفحات پروتکل مستند شده‌اند: Direct، HTTP و SOCKS، Shadowsocks، VMess، Trojan، Naive، Tor، SSH، VLESS، AnyTLS، Hysteria2، TUIC. ‏selector و urltest خروجی‌های گروهی‌اند که میان tag های دیگر انتخاب می‌کنند.

فیلدهای مشترک شماره‌گیری (DialerOptions)

هر خروجی شماره‌گیر DialerOptions را درون خود دارد؛ فیلدها در همان سطح تختِ پاکت ظاهر می‌شوند.

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
detourstringاز راه خروجی دیگری (با آدرس‌دهی tag آن) شماره‌گیری می‌کند.
bind_interfacestringرابط شبکه‌ای که اتصال‌های خروجی به آن متصل می‌شوند.
inet4_bind_address*badoption.Addrآدرس مبدأ IPv4 برای اتصال.
inet6_bind_address*badoption.Addrآدرس مبدأ IPv6 برای اتصال.
bind_address_no_portboolfalsetrue | falseهنگام اتصال IP_BIND_ADDRESS_NO_PORT می‌گذارد — تخصیص پورت را تا connect عقب می‌اندازد. فقط Linux.
protect_pathstringمسیر سوکت Unix شبح protect در Android VpnService؛ هر fd سوکت پیش از شماره‌گیری به آنجا فرستاده می‌شود.
routing_markFwMarkSO_MARK (‏fwmark) که روی سوکت‌های خروجی گذاشته می‌شود. فقط Linux.
reuse_addrboolfalsetrue | falseSO_REUSEADDR را روی سوکت‌های خروجی تنظیم می‌کند.
netnsstringفضای‌نام شبکه برای شماره‌گیری (نام یا مسیر). فقط Linux.
connect_timeoutbadoption.Durationمهلت اتصال TCP. رشتهٔ مدت، مانند "5s".
tcp_fast_openboolfalsetrue | falseTCP Fast Open را برای اتصال‌های خروجی فعال می‌کند.
tcp_multi_pathboolfalsetrue | falseMultipath TCP را برای اتصال‌های خروجی فعال می‌کند.
disable_tcp_keep_aliveboolfalsetrue | falseTCP keep-alive را برای اتصال‌های خروجی خاموش می‌کند.
tcp_keep_alivebadoption.Durationمدت بی‌کاری پیش از شروع پروب‌های keep-alive. رشتهٔ مدت.
tcp_keep_alive_intervalbadoption.Durationفاصلهٔ بین پروب‌های keep-alive. رشتهٔ مدت.
udp_fragment*boolfalsetrue | falseقطعه‌قطعه‌کردن بسته‌های UDP بزرگ‌تر از MTU را به‌جای اسقاط اجازه می‌دهد.
domain_resolver*DomainResolveOptionsکدام سرور DNS (با tag) آدرس سرور را حل کند: یک رشتهٔ tag ساده، یا شیئی با بازنویسی‌های هر شماره‌گیری.
network_strategy*NetworkStrategyاستراتژی گزینش میان شبکه‌های در دسترس (مثل default / hybrid / fallback). فقط ساخت‌های سکویی با آگاهی از شبکه.
network_typebadoption.Listable[InterfaceType]انواع شبکهٔ ترجیحی (wifi، cellular، ethernet، other) هنگام استفاده از network_strategy.
fallback_network_typebadoption.Listable[InterfaceType]انواع شبکه‌ای که هنگام در دسترس نبودن موارد ترجیحی به آن‌ها بازگشت می‌شود.
fallback_delaybadoption.Durationدرنگ پیش از شروع شماره‌گیری جایگزین (به سبک Happy-Eyeballs). رشتهٔ مدت، مانند "300ms".
domain_strategyDomainStrategyprefer_ipv4 | prefer_ipv6 | ipv4_only | ipv6_onlyاستراتژی خانوادهٔ آدرس هنگام حل دامنهٔ سرور.

منبع: option/outbound.go:67-93 · ثابت‌شده در v1.13.15 (3708fa1)

فیلدهای مشترک سرور (ServerOptions)

خروجی‌های پروتکلی که به سرور ثابتی وصل می‌شوند ServerOptions را درون خود دارند.

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
serverstringنام میزبان یا IP سرور.
server_portuint16پورت سرور.

منبع: option/outbound.go:148-151 · ثابت‌شده در v1.13.15 (3708fa1)

مثال حداقلی

json
{
  "outbounds": [
    {
      "type": "shadowsocks",
      "tag": "proxy",
      "server": "example.com",
      "server_port": 8388,
      "method": "2022-blake3-aes-128-gcm",
      "password": "<base64-key>"
    },
    { "type": "direct", "tag": "direct" }
  ],
  "route": { "final": "proxy" }
}

نکات

  • خروجی dns در 1.11.0 منسوخ و در 1.13.0 حذف شد — پیکربندی آن خطاست؛ ربودن DNS اکنون یک rule action است. خروجی wireguard هم حذف شده: به‌جایش از نقطه‌انتهایی WireGuard استفاده کنید.
  • shadowsocksr فقط به‌صورت جانگه‌داری که خطا می‌دهد ثبت است (در 1.6.0 حذف شد). ‏hysteria، tuic، hysteria2 و خروجی naive به ساخت with_quic نیاز دارند (باینری‌های انتشار رسمی آن را دارند).
  • detour خروجی‌ها را با tag زنجیر می‌کند؛ زنجیری که به خودش برسد خطای راه‌اندازی است.
  • وقتی server دامنه است، حل آن از domain_resolver / domain_strategy پیروی می‌کند؛ بدون آن‌ها DNS پیش‌فرض مسیر اعمال می‌شود.

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

  • Xray-core فیلدهای پروتکل را در settings تو در تو می‌کند، با proxySettings زنجیر می‌سازد و اولین مدخل آرایه را مقصد پیش‌فرض مسیر می‌گیرد. خروجی‌های Xray را ببینید.
  • mihomo این‌ها را proxies می‌نامد و انواع گروهی (select، ‏url-test، fallback، load-balance) گروه‌های پراکسی جداگانه‌اند، نه انواع خروجی.

منبع: option/outbound.go:19-23 · v1.13.15 (3708fa1)

Core Tutorial اثر Argsment