מנהרות
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
קובע איך צריך להחליף חבילות עם יעד היעד.
פורמט: ממשק
סוגי הממשקים הנתמכים:
tcpudp
: TCPUDPConfig
TCPUDPConfig
בעזרת TCPUDPConfig אפשר להגדיר אסטרטגיות נפרדות ל-TCP ול-UDP.
פורמט: struct
שדות:
tcp
(DialerConfig): ה-Stream Dialer שישמש לחיבורי TCP.udp
(PacketListenerConfig): ה-Packet Listener שמשמש לחבילות 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
נקודות קצה
נקודות קצה יוצרות חיבורים לנקודת קצה קבועה. מומלץ להשתמש ב-API הזה במקום ב-Dialer, כי הוא מאפשר לבצע אופטימיזציות ספציפיות לנקודות קצה. יש נקודות קצה מסוג Stream ו-Packet.
EndpointConfig
פורמט: מחרוזת | ממשק
המחרוזת של נקודת הקצה היא כתובת המארח:היציאה של נקודת הקצה שנבחרה. החיבור מתבצע באמצעות האפליקציה 'חיוג' שמוגדרת כברירת מחדל.
סוגי ממשקים נתמכים לנקודות קצה של זרמים ושל חבילות:
dial
: DialEndpointConfigfirst-supported
: FirstSupportedConfigwebsocket
: WebsocketEndpointConfigshadowsocks
: ShadowsocksConfig
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:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksConfig
פונקציות מסוג Packet Listener
מאזין חבילות יוצר חיבור חבילות ללא הגבלה שאפשר להשתמש בו כדי לשלוח חבילות לכמה יעדים.
PacketListenerConfig
פורמט: null | ממשק
null (לא קיים) Packet Listener הוא Packet Listener שמוגדר כברירת מחדל, שהוא UDP Packet Listener.
סוגי הממשקים הנתמכים:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksPacketListenerConfig
שיטות
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
(EndpointConfig[] | DialerConfig[] | PacketListenerConfig[]): רשימת האפשרויות שאפשר לשקול
דוגמה:
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