Skip to content

ورودی‌ها ​

inbounds آرایهٔ سرویس‌های شنونده است. برخلاف Xray-core بلوک تو در توی settings وجود ندارد: هر مدخل یک شیء تخت است — پاکت type / tag در زیر، به‌علاوهٔ فیلدهای خود نوع انتخاب‌شده در همان سطح. اول پاکت رمزگشایی می‌شود، سپس کلیدهای باقی‌مانده به ساختار گزینه‌های ثبت‌شده برای type رمزگشایی می‌شوند و فیلدهای ناشناخته رد می‌شوند.

پاکت ​

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
typestring—tun | redirect | tproxy | direct | socks | http | mixed | shadowsocks | snell | vmess | trojan | naive | shadowtls | vless | anytls | hysteria | tuic | hysteria2 | cloudflaredنوع ورودی. تعیین می‌کند بقیهٔ شیء به کدام ساختار گزینه‌ها رمزگشایی شود. مقدار ثبت‌نشده در راه‌اندازی با "unknown inbound type" شکست می‌خورد.
tagstring——نام یکتای این ورودی. قواعد مسیریابی (inbound) و خطوط لاگ به آن ارجاع می‌دهند.

منبع: option/inbound.go:21-25 · ثابت‌شده در v1.14.2 (af6e64c)

فیلدهای هر نوع در صفحات پروتکل مستند شده‌اند: TUN، Redirect و TProxy، Direct، HTTP و SOCKS (شامل mixed)، Shadowsocks، VMess، Trojan، Naive، VLESS، AnyTLS، Hysteria2، TUIC. ‏snell و cloudflared در Snell و cloudflared مستند شده‌اند.

فیلدهای مشترک شنود (ListenOptions) ​

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

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
listen*badoption.Addr——آدرس اتصال، مانند "::" یا "127.0.0.1".
listen_portuint16——پورت شنود.
bind_interfacestring——رابط شبکه‌ای که شنونده به آن متصل می‌شود.
routing_markFwMark——SO_MARK (‏fwmark) که روی سوکت شنود گذاشته می‌شود. فقط Linux.
reuse_addrboolfalsetrue | falseSO_REUSEADDR را روی شنونده تنظیم می‌کند.
netnsstring——فضای‌نام شبکه برای شنود: نام یا مسیر، یا tag یک مدخل network_namespaces سطح بالا. فقط Linux.
disable_tcp_keep_aliveboolfalsetrue | falseTCP keep-alive را برای اتصال‌های پذیرفته‌شده خاموش می‌کند.
tcp_keep_alivebadoption.Duration——مدت بی‌کاری پیش از شروع پروب‌های keep-alive. رشتهٔ مدت، مانند "15m".
tcp_keep_alive_intervalbadoption.Duration——فاصلهٔ بین پروب‌های keep-alive. رشتهٔ مدت.
tcp_fast_openboolfalsetrue | falseTCP Fast Open را روی شنونده فعال می‌کند.
tcp_multi_pathboolfalsetrue | falseMultipath TCP را فعال می‌کند (به پشتیبانی MPTCP در Go روی آن سکو نیاز دارد).
udp_fragment*boolfalsetrue | falseقطعه‌قطعه‌کردن بسته‌های UDP بزرگ‌تر از MTU را به‌جای اسقاط اجازه می‌دهد.
udp_timeoutUDPTimeoutCompat——مهلت بی‌کاری مدخل‌های UDP NAT. رشتهٔ مدت؛ پیش‌فرض مؤثر به پروتکل اسنیف‌شده بستگی دارد.
detourstring——اتصال‌های پذیرفته‌شده را مستقیم به ورودی دیگری (با آدرس‌دهی tag آن) می‌فرستد.
proxy_protocolbool——پشتیبانی نمی‌شود: پشتیبانی از سربرگ PROXY protocol وجود ندارد؛ تنظیم آن خطاست.
proxy_protocol_accept_no_headerbool——مانند proxy_protocol پشتیبانی نمی‌شود.

منبع: option/inbound.go:79-103 · ثابت‌شده در v1.14.2 (af6e64c)

مثال حداقلی ​

json
{
  "inbounds": [
    {
      "type": "mixed",
      "tag": "mixed-in",
      "listen": "127.0.0.1",
      "listen_port": 2080
    }
  ]
}

نکات ​

  • رمزگشای سخت‌گیر داخل مدخل‌های ورودی هم اعمال می‌شود: هر غلط تایپی در نام فیلد خطای راه‌اندازی است، نه نادیده‌گیری بی‌صدا.
  • ورودی‌ها فیلد اسنیف ندارند: sniff، sniff_override_destination، sniff_timeout، domain_strategy و udp_disable_domain_unmapping هنگام راه‌اندازی رد می‌شوند و خطا به مهاجرت rule actions اشاره می‌کند. اسنیف در قواعد مسیر قرار دارد.
  • ‏shadowsocksr فقط به‌صورت جانگه‌داری که خطا می‌دهد ثبت شده است: sing-box پیاده‌سازی ShadowsocksR ندارد.
  • ‏hysteria، tuic و hysteria2 به ساختی با برچسب with_quic و cloudflared به with_cloudflared نیاز دارند (باینری‌های انتشار رسمی هر دو را دارند).
  • ‏snell سمت سرور Snell است، متناظر با خروجی snell.
  • ‏cloudflared یک کلاینت Cloudflare Tunnel تعبیه‌شده را اجرا می‌کند که با token تونل احراز هویت می‌شود، و ترافیک ورودی تونل (TCP، UDP، ICMP) را از موتور مسیریابی sing-box عبور می‌دهد. روی سوکت محلی شنود نمی‌کند، بنابراین ListenOptions برای آن کاربرد ندارد.

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

  • Xray-core فیلدهای پروتکل را در شیء settings تو در تو می‌کند و اسنیف را به‌ازای هر ورودی نگه می‌دارد. ورودی‌های Xray را ببینید.
  • mihomo از کلیدهای ریشهٔ جداگانه (port، socks-port، mixed-port، …) به‌همراه فهرست listeners استفاده می‌کند. HTTP و SOCKS و Redirect و TProxy را ببینید.

منبع: option/inbound.go:21-25 · v1.14.2 (af6e64c)

Core Tutorial اثر Argsment