Skip to content

Direct — sing-box ​

Direct خروجی passthrough در sing-box و یک ورودی مفید «test echo» است. سمت خروجی عمداً حداقلی است — بازنویسی مقصد وظیفهٔ موتور مسیریابی (route actions) است، نه فیلدهای خروجی.

ورودی ​

type: "direct":

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
networkNetworkList(tcp+udp)tcp | udp | محدود کردن به فقط TCP یا فقط UDP.
override_addressstring(unset)<host>بازنویسی آدرس مقصد هر اتصال پذیرفته‌شده.
override_portuint16(unset)<port>بازنویسی پورت مقصد هر اتصال پذیرفته‌شده.

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

ListenOptions (آدرس شنود، پورت، …) را درون خود جای می‌دهد. ورودی Direct بیشتر به‌عنوان یک port-forwarder استفاده می‌شود — پذیرفتن روی یک پورت، بازنویسی مقصد، مسیریابی از طریق هر خروجی.

خروجی ​

type: "direct":

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
override_addressstring(rejected)(use route actions)در خروجی پشتیبانی نمی‌شود: تنظیم آن یک خطای راه‌اندازی تولید می‌کند که به route actions اشاره می‌کند.
override_portuint16(rejected)(use route actions)همانند override_address — پشتیبانی نمی‌شود؛ از route actions استفاده کنید.
proxy_protocoluint8(unsupported)0پشتیبانی نمی‌شود: هر مقدار غیرصفر هنگام راه‌اندازی رد می‌شود.

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

خروجی فقط از DialerOptions تعبیه‌شده (bind_interface، routing_mark، detour، …) تشکیل شده است. هر سه فیلد بالا در زمان بارگذاری پیکربندی رد می‌شوند؛ به‌جای آن، بازنویسی مقصد را با گزینه‌های قاعدهٔ مسیریابی تنظیم کنید (override_address / override_port روی کنش route).

مثال‌ها ​

خروجی direct خام (رایج‌ترین حالت — فقط یک خروج به ترافیک می‌دهد):

json
{
  "outbounds": [
    { "type": "direct", "tag": "direct" }
  ]
}

خروجی direct متصل به یک رابط خاص:

json
{
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct-eth0",
      "bind_interface": "eth0"
    }
  ]
}

ورودی port-forwarder (پذیرفتن روی ۸۰۸۰، بازنویسی مقصد به internal:80):

json
{
  "inbounds": [
    {
      "type": "direct",
      "tag": "forward-8080",
      "listen": "0.0.0.0",
      "listen_port": 8080,
      "override_address": "10.0.0.5",
      "override_port": 80
    }
  ]
}

نکات ​

  • جایگزین route-action برای override_address / override_port این‌گونه است:

    json
    {
      "route": {
        "rules": [
          {
            "inbound": ["forward-8080"],
            "action": "route",
            "outbound": "direct",
            "override_address": "10.0.0.5",
            "override_port": 80
          }
        ]
      }
    }

    این کار همان رفتار را از لایهٔ پروتکل به قاعدهٔ مسیریابی منتقل می‌کند، که تمیزتر با بقیهٔ سطح مسیریابی ترکیب می‌شود.

  • خروجی bridge همتای L3 خروجی direct است: ترافیک L3 (TCP، UDP، ICMP) را از یک TUN یا دیگر نقطه‌انتهایی‌های L3 مستقیماً از یک رابط شبکه بیرون می‌فرستد. خروجی‌ها را ببینید.

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

  • Xray-core این را Freedom می‌نامد. خروجی مجموعه‌ای از امکانات بسیار غنی‌تر را ارائه می‌دهد — قطعه‌قطعه‌سازی TCP/TLS، تزریق نویز، فیلد redirect — به Freedom — Xray-core مراجعه کنید.
  • mihomo همان شکل حداقلی Direct را دارد و یک پراکسی نام‌گذاری‌شدهٔ داخلی به نام DIRECT را به‌طور خودکار تزریق می‌کند. به Direct — mihomo مراجعه کنید.

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

Core Tutorial اثر Argsment