Skip to content

ورودی‌ها

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

پاکت

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

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

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

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

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

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
listen*badoption.Addrآدرس اتصال، مانند "::" یا "127.0.0.1".
listen_portuint16پورت شنود.
bind_interfacestringرابط شبکه‌ای که شنونده به آن متصل می‌شود.
routing_markFwMarkSO_MARK (‏fwmark) که روی سوکت شنود گذاشته می‌شود. فقط Linux.
reuse_addrboolfalsetrue | falseSO_REUSEADDR را روی شنونده تنظیم می‌کند.
netnsstringفضای‌نام شبکه برای شنود (نام یا مسیر). فقط 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:66-88 · ثابت‌شده در v1.13.15 (3708fa1)

مثال حداقلی

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) در 1.11.0 منسوخ و در 1.13.0 حذف شدند — دادن آن‌ها خطایی است که به مهاجرت rule actions اشاره می‌کند. اسنیف اکنون در قواعد مسیر قرار دارد.
  • shadowsocksr هنوز ثبت است اما فقط به‌صورت جانگه‌داری که خطا می‌دهد: پشتیبانی ShadowsocksR در sing-box 1.6.0 حذف شد.
  • hysteria، tuic و hysteria2 به ساختی با برچسب with_quic نیاز دارند (باینری‌های انتشار رسمی آن را دارند).

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

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

منبع: option/inbound.go:18-22 · v1.13.15 (3708fa1)

Core Tutorial اثر Argsment