Skip to content

Tor — sing-box

خروجی Tor در sing-box ‏یک باینری Tor را به‌عنوان یک فرآیند فرزند اجرا می‌کند و از طریق پورت SOCKS داخلی آن پراکسی می‌کند. گزینه‌های پروتکل در اینجا تنظیم می‌کنند که sing-box چگونه آن فرآیند را اجرا و هدایت می‌کند — Tor خودش باید جداگانه نصب شود.

خروجی

type: "tor":

فیلدنوعپیش‌فرضمقادیر مجازتوضیحات
executable_pathstring(PATH lookup)<file path>مسیر باینری Tor. وقتی تنظیم نشده باشد، sing-box ‏PATH را برای `tor` جستجو می‌کند.
extra_args[]string[]<arg>آرگومان‌های اضافی خط فرمان که هنگام اجرا به Tor منتقل می‌شوند. برای `--use-bridges`، `--ClientTransportPlugin` و غیره مفید است.
data_directorystring(temp dir)<dir path>دایرکتوری کاری Tor (توصیف‌گرهای کش‌شده، اجماع، …). نگه داشتن آن بین راه‌اندازی‌ها بوت‌استرپ را سرعت می‌بخشد.
torrcmap[string]string{}{<option>: <value>}گزینه‌های درون‌خطی torrc که از طریق پروتکل کنترل Tor منتقل می‌شوند. کلیدهای استاندارد torrc مانند `ExcludeNodes`، `ExitNodes`، `StrictNodes` در اینجا کار می‌کنند.

منبع: option/tor.go:3-9 · ثابت‌شده در v1.13.11 (553cfa1)

DialerOptions را برای سوکت زیرین درون خود جای می‌دهد — bind_interface، detour و غیره.

مثال‌ها

حداقلی — اجازه دهید sing-box ‏tor را روی PATH پیدا کند و از پیش‌فرض‌ها استفاده کند:

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

باینری پین‌شده و دایرکتوری دادهٔ پایدار:

json
{
  "outbounds": [
    {
      "type": "tor",
      "tag": "tor-persistent",
      "executable_path": "/usr/local/bin/tor",
      "data_directory": "/var/lib/sing-box/tor",
      "torrc": {
        "ExitNodes": "{de},{nl}",
        "StrictNodes": "1"
      }
    }
  ]
}

با پل‌های obfs4:

json
{
  "outbounds": [
    {
      "type": "tor",
      "tag": "tor-bridged",
      "torrc": {
        "UseBridges": "1",
        "ClientTransportPlugin": "obfs4 exec /usr/bin/obfs4proxy",
        "Bridge": "obfs4 1.2.3.4:443 ABCDEF... cert=... iat-mode=0"
      }
    }
  ]
}

نکات

  • باینری Tor در زمان اجرا الزامی است. sing-box آن را همراه ندارد. اکثر توزیع‌ها tor را به‌عنوان یک پکیج عرضه می‌کنند؛ روی macOS از Homebrew استفاده کنید.
  • data_directory به‌طور پیش‌فرض در زمان شروع یک دایرکتوری موقت تازه است. این کندترین راه‌اندازی ممکن است — هر اجرا اجماع را دوباره بوت‌استرپ می‌کند. نگه داشتن این دایرکتوری چند ثانیه را در شروع ذخیره می‌کند.
  • کلیدهای torrc از طریق پروتکل کنترل Tor منتقل می‌شوند؛ مقدار باید دقیقاً همان رشته‌ای باشد که Tor انتظار دارد (بدون نقل قول خودکار). برای مقادیر چندخطی torrc، کلید را در extra_args تکرار کنید.
  • این خروجی فیلد network ندارد — خود Tor به UDP صحبت نمی‌کند، بنابراین خروجی به‌طور تعریفی فقط TCP است.

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

  • Xray-core خروجی Tor ندارد. راه حل این است که یک خروجی SOCKS را به پورت SOCKS سیستم Tor اشاره دهید. به Tor — Xray-core مراجعه کنید.
  • mihomo خروجی Tor ندارد. به Tor — mihomo مراجعه کنید.

منبع: option/tor.go:3-9 · v1.13.11 (553cfa1)

Core Tutorial اثر Argsment