پیکربندی

تونل‌ها

TunnelConfig

تونل بالاترین سطح شیء در پیکربندی Outline است. نشان می‌دهد چطور باید وی‌پی‌ان پیکربندی شود.

قالب: ExplicitTunnelConfig‏ | ‫LegacyShadowsocksConfig‏ | ‫LegacyShadowsocksURI

ExplicitTunnelConfig

قالب: ساختار

فیلدها:

  • transport ‏(TransportConfig): حمل‌ونقلی که برای تبادل بسته‌ها با مقصدِ هدف‌یابی‌شده استفاده می‌شود
  • error (ساختار): اطلاعاتی که برای مراوده با کاربر استفاده می‌شود، درصورتی‌که خطای سرویس (مثل منقضی شدن کلید، مصرف بیش‌ازحد سهمیه) اتفاق بیفتد
    • message (رشته): پیام کاربرپسندی که برای نمایش داده شدن به کاربر است
    • details (رشته): پیامی برای نمایش داده شدن به کاربر وقتی جزئیات خطا را باز می‌کند. برای عیب‌یابی مفید است.

فیلدهای error و transport به‌صورت متقابل انحصاری‌اند.

نمونه موفق:

transport:
  $type: tcpudp
  tcp:
    ...  # Stream Dialer for TCP
  udp:
    ...  # Packet Listener for UDP

نمونه خطا:

error:
  message: Quota exceeded
  details: Used 100GB out of 100GB

حمل‌ونقل‌ها

TransportConfig

مشخص می‌کند چطور بسته‌ها باید با مقصد هدف‌یابی‌شده تبادل شوند.

قالب: میانا

انواع میاناهای پشتیبانی‌شده:

TCPUDPConfig

‫TCPUDPConfig اجازه می‌دهد تا راهبردهای TCP و UDP به‌طور جداگانه تنظیم شوند.

قالب: ساختار

فیلدها:

  • tcp‏ (DialerConfig): «شماره‌گیر جاری‌سازی» برای استفاده برای اتصالات TCP.
  • udp‏ (PacketListenerConfig): «شنونده بسته» برای استفاده با بسته‌های UDP.

نمونه ارسال TCP و UDP به نقطه‌های پایانی مختلف:

tcp:
  $type: shadowsocks
  endpoint: ss.example.com:80
  <<: &cipher
    cipher: chacha20-ietf-poly1305
    secret: SECRET
  prefix: "POST "

udp:
  $type: shadowsocks
  endpoint: ss.example.com:53
  <<: *cipher

نقطه‌های پایانی

نقطه‌های پایانی اتصالات به نقطه پایانی ثابتی را تبیین می‌کنند. «شماره‌گیرها» در اولویت هستند زیرا به بهینه‌سازی‌های نقطه پایانی خاص اجازه می‌دهند. نقطه‌های پایانی «جاری‌سازی» و «بسته» وجود دارند.

EndpointConfig

قالب: رشته | میانا

نقطه پایانی رشته عبارت از نشانی «میزبان:درگاه» مربوط به نقطه پایانی انتخابی است. اتصال بااستفاده از «شماره‌گیر» پیش‌فرض تبیین شد.

انواع میانای پشتیبانی‌شده برای نقاط پایانی جریان‌سازی و بسته:

DialEndpointConfig

اتصالات را با شماره‌گیری یک نشانی ثابت تبیین می‌کند. می‌تواند شماره‌گیری را بگیرد که اجازه می‌دهد راهبردها نوشته شود.

قالب: ساختار

فیلدها:

  • address (رشته): نشانی نقطه پایان برای شماره‌گیری
  • dialer‏ (DialerConfig): شماره‌گیر برای استفاده در شماره‌گیری نشانی

WebsocketEndpointConfig

تونل‌ها ازطریق Websockets اتصالات را برای نقطه پایانی جاری‌سازی و بسته‌بندی می‌کنند.

برای جاری‌سازی اتصالات، هر نوشته به پیام Websockets تبدیل می‌شود. برای اتصالات بسته، هر بسته به پیام Websockets تبدیل می‌شود.

قالب: ساختار

فیلدها:

  • url (رشته): نشانی وب برای نقطه پایانی Websockets. طرح‌واره باید https یا wss برای Websockets ازطریق «امنیت لایه انتقال» باشد و http یا ws برای متن ساده Websocket باشد.
  • endpoint‏ (EndpointConfig): سرور وب نقطه پایانی به اتصال به. اگر وجود نداشته باشد، به نشانی مشخص‌شده در این نشانی وب متصل می‌شود.

شماره‌گیرها

شماره‌گیرها اتصالاتی را که به نشانی نقطه پایان داده شده است تبیین می‌کنند. شماره‌گیرهای جاری‌سازی و بسته وجود دارد.

DialerConfig

قالب: تهی | میانا

شماره‌گیر تهی (غایب) یعنی «شماره‌گیر» پیش‌فرضی که از اتصالات مستقیم TCP برای «جریان‌سازی» و از اتصالات مستقیم UDP برای «بسته‌ها» استفاده می‌کند.

انواع میانای پشتیبانی‌شده برای شماره‌گیرهای جریان‌سازی و بسته:

شنوندگان بسته

«شنونده بسته» اتصال بسته نامحدودی را تبیین می‌کند که می‌تواند برای ارسال بسته‌ها به چندین مقصد استفاده شود.

PacketListenerConfig

قالب: تهی | میانا

«شنونده بسته» تهی (غایب) یعنی «شنونده بسته» پیش‌فرضی که «شنونده بسته UDP» است.

انواع میاناهای پشتیبانی‌شده:

راهبردها

Shadowsocks

LegacyShadowsocksConfig

‫LegacyShadowsocksConfig معرف تونلی است که از Shadowsocks به‌عنوان حمل‌ونقل استفاده می‌کند. و قالب قدیمی را برای سازگاری با نسخه قدیمی اجرا می‌کند.

قالب: ساختار

فیلدها:

  • server (رشته): میزبانی است برای اتصال به
  • server_port (شماره): شماره درگاهی است برای اتصال به
  • method (رشته): رمز ‫AEAD برای استفاده
  • password (رشته): برای تولید کلید رمزگذاری استفاده می‌شود
  • prefix (رشته): مبدل شدن پیشوند برای استفاده. در جاری‌سازی و اتصال‌های بسته‌ای پشتیبانی شده است.

نمونه:

server: example.com
server_port: 4321
method: chacha20-ietf-poly1305
password: SECRET
prefix: "POST "

LegacyShadowsocksURI

‫LegacyShadowsocksURI معرف تونلی است که از Shadowsocks به‌عنوان حمل‌ونقل استفاده می‌کند. و قالب قدیمی نشانی وب را برای سازگاری با نسخه قدیمی اجرا می‌کند.

قالب: رشته

قالب نشانی وب قدیمی Shadowsocks و طرح نشانی وب SIP002 را ببینید. افزایه‌ها را پشتیبانی نمی‌کنیم.

نمونه:

ss://chacha20-ietf-poly1305:SECRET@example.com:443?prefix=POST%20

ShadowsocksConfig

‫ShadowsocksConfig می‌تواند نماینده «شماره‌گیرهای جاری‌سازی یا بسته» باشد و همچنین شنونده بسته‌ای که از Shadowsocks استفاده می‌کند.

قالب: ساختار

فیلدها:

  • endpoint‏ (EndpointConfig): نقطه پایانی Shadowsocks به اتصال به
  • cipher (رشته): رمز ‫AEAD برای استفاده
  • secret (رشته): برای تولید کلید رمزگذاری استفاده می‌شود
  • prefix (رشته، اختیاری): مبدل شدن پیشوند برای استفاده. در جاری‌سازی و اتصال‌های بسته‌ای پشتیبانی شده است.

نمونه:

endpoint: example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "

تعریف‌های متا

FirstSupportedConfig

از اولین پیکربندی‌ای که این برنامه پشتیبانی می‌کند استفاده می‌کند. این کار راهی است برای ترکیب کردن پیکربندی‌های جدید وقتی نسخه قدیمی دارد با پیکربندی‌های قدیمی سازگار می‌شود.

قالب: ساختار

فیلدها:

نمونه:

options:
  - $type: websocket
    url: wss://example.com/SECRET_PATH
  - ss.example.com:4321

میانا

میاناها اجازه می‌دهند تا یکی از چندین اجراها انتخاب شوند. میانا برای مشخص کردن نوعی که پیکربندی ارائه می‌کند، از فیلد ‫$type استفاده می‌کند.

نمونه:

$type: shadowsocks
endpoint: example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET