הגדרה

מנהרות

TunnelConfig

Tunnel הוא האובייקט ברמה העליונה בהגדרת Outline. הוא מציין איך צריך להגדיר את ה-VPN.

פורמט: ExplicitTunnelConfig | LegacyShadowsocksConfig | LegacyShadowsocksURI

ExplicitTunnelConfig

פורמט: struct

שדות:

  • transport (TransportConfig): אמצעי התעבורה שבו נעשה שימוש כדי להחליף חבילות עם יעד היעד
  • error (struct): מידע שצריך להעביר למשתמש במקרה של שגיאת שירות (למשל, פג התוקף של המפתח, המכסה נוצלה)
    • message (string): הודעה ידידותית למשתמש שמוצגת למשתמש
    • details (string): ההודעה שתוצג כשהמשתמש יפתח את פרטי השגיאה. מידע שימושי לפתרון בעיות.

השדות 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.

פורמט: struct

שדות:

דוגמה לשליחת 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

נקודות קצה

נקודות קצה יוצרות חיבורים לנקודת קצה קבועה. מומלץ להשתמש ב-API הזה במקום ב-Dialer, כי הוא מאפשר לבצע אופטימיזציות ספציפיות לנקודות קצה. יש נקודות קצה מסוג Stream ו-Packet.

EndpointConfig

פורמט: מחרוזת | ממשק

המחרוזת של נקודת הקצה היא כתובת המארח:היציאה של נקודת הקצה שנבחרה. החיבור מתבצע באמצעות האפליקציה 'חיוג' שמוגדרת כברירת מחדל.

סוגי ממשקים נתמכים לנקודות קצה של זרמים ושל חבילות:

DialEndpointConfig

יוצר חיבורים על ידי חיוג לכתובת קבועה. אפשר להשתמש במרכז שיחות, שמאפשר ליצור אסטרטגיות.

פורמט: struct

שדות:

  • address (string): כתובת נקודת הקצה לחיוג
  • dialer (DialerConfig): החייגן שבו נעשה שימוש כדי להתקשר לכתובת

WebsocketEndpointConfig

מנהרות מעבירות סטרימינג וחיבורי חבילות לנקודת קצה (endpoint) דרך Websockets.

בחיבורי סטרימינג, כל פעולת כתיבה הופכת להודעת Websocket. בחיבורי חבילות, כל חבילה הופכת להודעת Websocket.

פורמט: struct

שדות:

  • url (מחרוזת): כתובת ה-URL של נקודת הקצה של Websocket. הסכימה צריכה להיות https או wss עבור Websocket ב-TLS, ו-http או ws עבור Websocket בטקסט ללא הצפנה.
  • endpoint (EndpointConfig): נקודת הקצה של שרת האינטרנט שאליה רוצים להתחבר. אם השדה הזה לא קיים, המערכת מתחברת לכתובת שצוינה בכתובת ה-URL.

חייגנים

תוכנות חיוג יוצרות חיבורים על סמך כתובת של נקודת קצה. יש שירותי חיוג ב-Stream וב-Packet.

DialerConfig

פורמט: null | ממשק

המשמעות של Dialer null (חסר) היא Dialer ברירת המחדל, שמשתמש בחיבורי TCP ישירים לשידור ובחיבורי UDP ישירים לחבילות.

סוגי הממשקים הנתמכים ל-Stream ול-Packer Dialer:

פונקציות מסוג Packet Listener

מאזין חבילות יוצר חיבור חבילות ללא הגבלה שאפשר להשתמש בו כדי לשלוח חבילות לכמה יעדים.

PacketListenerConfig

פורמט: null | ממשק

null (לא קיים) Packet Listener הוא Packet Listener שמוגדר כברירת מחדל, שהוא UDP Packet Listener.

סוגי הממשקים הנתמכים:

שיטות

Shadowsocks

LegacyShadowsocksConfig

‏LegacyShadowsocksConfig מייצג מנהרה שמשתמשת ב-Shadowsocks בתור התעבורה. הוא מטמיע את הפורמט הקודם לצורך תאימות לאחור.

פורמט: struct

שדות:

  • server (string): המארח שאליו רוצים להתחבר
  • server_port (number): מספר היציאה שאליו רוצים להתחבר
  • method (string): הצופן של AEAD שבו משתמשים
  • password (מחרוזת): משמש ליצירת מפתח ההצפנה
  • prefix (string): ההתחזות לתחילית לשימוש. התכונה נתמכת בחיבורי זרם ובחיבורי חבילות.

דוגמה:

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

LegacyShadowsocksURI

LegacyShadowsocksURI מייצג מנהרה שמשתמשת ב-Shadowsocks ככלי התעבורה. הוא מטמיע את פורמט כתובות ה-URL הקודם לצורך תאימות לאחור.

פורמט: מחרוזת

אפשר לעיין במאמרים פורמט URI הקודם של Shadowsocks וסכימת URI של SIP002. אנחנו לא תומכים בפלאגינים.

דוגמה:

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

ShadowsocksConfig

ShadowsocksConfig יכול לייצג מתקשרים מסוג Stream או Packet, וגם מאזין ל-Packet שמשתמש ב-Shadowsocks.

פורמט: struct

שדות:

  • endpoint (EndpointConfig): נקודת הקצה (endpoint) של Shadowsocks שאליה מתחברים
  • cipher (string): הצופן של AEAD שבו רוצים להשתמש
  • secret (מחרוזת): משמש ליצירת מפתח ההצפנה
  • prefix (מחרוזת, אופציונלי): ההתחלה המזויפת שבה רוצים להשתמש. התכונה נתמכת בחיבורי זרם ובחיבורי חבילות.

דוגמה:

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

הגדרות מטא

FirstSupportedConfig

המערכת משתמשת בהגדרה הראשונה שנתמכת באפליקציה. זו דרך לשלב הגדרות חדשות תוך שמירה על תאימות לאחור להגדרות ישנות.

פורמט: struct

שדות:

דוגמה:

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

ממשק

ממשקים מאפשרים לבחור מבין כמה הטמעות. השדה $type משמש לציון הסוג ש-config מייצג.

דוגמה:

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