خروجیها
outbounds آرایهٔ مقاصد بالادست است. هر مدخل یک شیء تخت است: پاکت type / tag بهعلاوهٔ فیلدهای خود نوع انتخابشده در همان سطح. قاعدهٔ «اولین خروجی پیشفرض است» وجود ندارد — ترافیک تطبیقنیافته به route.final میرود.
پاکت
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
type | string | — | direct | block | selector | urltest | socks | http | shadowsocks | vmess | trojan | naive | tor | ssh | shadowtls | vless | anytls | hysteria | tuic | hysteria2 | نوع خروجی. تعیین میکند بقیهٔ شیء به کدام ساختار گزینهها رمزگشایی شود. مقدار ثبتنشده در راهاندازی با "unknown outbound type" شکست میخورد. |
tag | string | — | — | نام یکتای این خروجی. قواعد مسیر، 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 را درون خود دارد؛ فیلدها در همان سطح تختِ پاکت ظاهر میشوند.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
detour | string | — | — | از راه خروجی دیگری (با آدرسدهی tag آن) شمارهگیری میکند. |
bind_interface | string | — | — | رابط شبکهای که اتصالهای خروجی به آن متصل میشوند. |
inet4_bind_address | *badoption.Addr | — | — | آدرس مبدأ IPv4 برای اتصال. |
inet6_bind_address | *badoption.Addr | — | — | آدرس مبدأ IPv6 برای اتصال. |
bind_address_no_port | bool | false | true | false | هنگام اتصال IP_BIND_ADDRESS_NO_PORT میگذارد — تخصیص پورت را تا connect عقب میاندازد. فقط Linux. |
protect_path | string | — | — | مسیر سوکت Unix شبح protect در Android VpnService؛ هر fd سوکت پیش از شمارهگیری به آنجا فرستاده میشود. |
routing_mark | FwMark | — | — | SO_MARK (fwmark) که روی سوکتهای خروجی گذاشته میشود. فقط Linux. |
reuse_addr | bool | false | true | false | SO_REUSEADDR را روی سوکتهای خروجی تنظیم میکند. |
netns | string | — | — | فضاینام شبکه برای شمارهگیری (نام یا مسیر). فقط Linux. |
connect_timeout | badoption.Duration | — | — | مهلت اتصال TCP. رشتهٔ مدت، مانند "5s". |
tcp_fast_open | bool | false | true | false | TCP Fast Open را برای اتصالهای خروجی فعال میکند. |
tcp_multi_path | bool | false | true | false | Multipath TCP را برای اتصالهای خروجی فعال میکند. |
disable_tcp_keep_alive | bool | false | true | false | TCP keep-alive را برای اتصالهای خروجی خاموش میکند. |
tcp_keep_alive | badoption.Duration | — | — | مدت بیکاری پیش از شروع پروبهای keep-alive. رشتهٔ مدت. |
tcp_keep_alive_interval | badoption.Duration | — | — | فاصلهٔ بین پروبهای keep-alive. رشتهٔ مدت. |
udp_fragment | *bool | false | true | false | قطعهقطعهکردن بستههای UDP بزرگتر از MTU را بهجای اسقاط اجازه میدهد. |
domain_resolver | *DomainResolveOptions | — | — | کدام سرور DNS (با tag) آدرس سرور را حل کند: یک رشتهٔ tag ساده، یا شیئی با بازنویسیهای هر شمارهگیری. |
network_strategy | *NetworkStrategy | — | — | استراتژی گزینش میان شبکههای در دسترس (مثل default / hybrid / fallback). فقط ساختهای سکویی با آگاهی از شبکه. |
network_type | badoption.Listable[InterfaceType] | — | — | انواع شبکهٔ ترجیحی (wifi، cellular، ethernet، other) هنگام استفاده از network_strategy. |
fallback_network_type | badoption.Listable[InterfaceType] | — | — | انواع شبکهای که هنگام در دسترس نبودن موارد ترجیحی به آنها بازگشت میشود. |
fallback_delay | badoption.Duration | — | — | درنگ پیش از شروع شمارهگیری جایگزین (به سبک Happy-Eyeballs). رشتهٔ مدت، مانند "300ms". |
domain_strategy | DomainStrategy | — | prefer_ipv4 | prefer_ipv6 | ipv4_only | ipv6_only | استراتژی خانوادهٔ آدرس هنگام حل دامنهٔ سرور. |
منبع: option/outbound.go:67-93 · ثابتشده در v1.13.15 (3708fa1)
فیلدهای مشترک سرور (ServerOptions)
خروجیهای پروتکلی که به سرور ثابتی وصل میشوند ServerOptions را درون خود دارند.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
server | string | — | — | نام میزبان یا IP سرور. |
server_port | uint16 | — | — | پورت سرور. |
منبع: option/outbound.go:148-151 · ثابتشده در v1.13.15 (3708fa1)
مثال حداقلی
{
"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)
