Tunnels
TunnelConfig
Tunnel is het object op het hoogste niveau in een Outline-configuratie. Hiermee bepaal je hoe de VPN wordt ingesteld.
Indeling: ExplicitTunnelConfig | LegacyShadowsocksConfig | LegacyShadowsocksURI
ExplicitTunnelConfig
Indeling: struct
Velden:
transport
(TransportConfig): Het transport waarmee pakketten moeten worden uitgewisseld met de doelbestemming.error
(struct): Informatie om te communiceren met de gebruiker als er een servicefout is (bijv. verlopen sleutel, quotum bereikt).message
(string): Gebruiksvriendelijk bericht om te tonen aan de gebruiker.details
(string): Bericht om te tonen als de gebruiker de details van de fout opent. Nuttig voor probleemoplossing.
De velden error
en transport
sluiten elkaar uit.
Correct voorbeeld:
transport:
$type: tcpudp
tcp:
... # Stream Dialer for TCP
udp:
... # Packet Listener for UDP
Foutief voorbeeld:
error:
message: Quota exceeded
details: Used 100GB out of 100GB
Transporten
TransportConfig
Hiermee bepaal je hoe pakketten moeten worden uitgewisseld met de doelbestemming.
Indeling: Interface
Ondersteunde Interface-typen:
tcpudp
: TCPUDPConfig
TCPUDPConfig
Met TCPUDPConfig kun je aparte TCP- en UDP-strategieën instellen.
Indeling: struct
Velden:
tcp
(DialerConfig): De Stream Dialer om te gebruiken voor TCP-verbindingen.udp
(PacketListenerConfig): De Packet Listener om te gebruiken voor UDP-pakketten.
Voorbeeld voor het sturen van TCP en UDP naar verschillende eindpunten:
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
Endpoints
Met Endpoints maak je verbinding met een vast eindpunt. Dit heeft de voorkeur over Dialers omdat je hiermee eindpuntspecifieke optimalisaties kunt doorvoeren. Er zijn Stream en Packet Endpoints.
EndpointConfig
Indeling: string | Interface
De Endpoint string is het host:poort-adres van het geselecteerde eindpunt. De verbinding wordt gemaakt met de standaard Dialer.
Ondersteunde Interface-typen voor Stream en Packet Endpoints:
dial
: DialEndpointConfigfirst-supported
: FirstSupportedConfigwebsocket
: WebsocketEndpointConfigshadowsocks
: ShadowsocksConfig
DialEndpointConfig
Hiermee maak je verbinding door een vast adres aan te roepen. Je kunt hier een dialer aan toevoegen, zodat je verschillende strategieën samen kunt gebruiken.
Indeling: struct
Velden:
address
(string): Het adres van het eindpunt om aan te roepen.dialer
(DialerConfig): De dialer om het adres mee aan te roepen.
WebsocketEndpointConfig
Hiermee worden stream- en pakketverbindingen getunneld naar een eindpunt via WebSockets.
Voor streamverbindingen wordt elke write veranderd in een WebSocket-bericht. Voor pakketverbindingen wordt elk pakket veranderd in een WebSocket-bericht.
Indeling: struct
Velden:
url
(string): De URL van het WebSocket-eindpunt. Het schema moethttps
ofwss
zijn voor WebSocket over TLS, enhttp
ofws
zijn voor WebSocket in niet-versleutelde tekst.endpoint
(EndpointConfig): Het eindpunt van de webserver waarmee verbinding moet worden gemaakt. Als je hier niets invoert, wordt er verbinding gemaakt met het adres dat je opgeeft in de URL.
Dialers
Dialers maken verbinding met een eindpuntadres. Er zijn Stream en Packet Dialers.
DialerConfig
Indeling: null | Interface
De Dialer null (afwezig) is de standaard Dialer, die directe TCP-verbindingen gebruikt voor streams en directe UDP-verbindingen gebruikt voor pakketten.
Ondersteunde Interface-typen voor Stream en Packet Dialers:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksConfig
Packet Listeners
Een Packet Listener maakt een ongebonden pakketverbinding waarmee je pakketten kunt sturen naar meerdere bestemmingen.
PacketListenerConfig
Indeling: null | Interface
De Packet Listener null (afwezig) is de standaard Packet Listener. Dit is een UDP Packet Listener.
Ondersteunde Interface-typen:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksPacketListenerConfig
Strategieën
Shadowsocks
LegacyShadowsocksConfig
LegacyShadowsocksConfig vertegenwoordigt een tunnel die Shadowsocks gebruikt voor het transport. Hiermee implementeer je de verouderde indeling voor compatibiliteit met eerdere versies.
Indeling: struct
Velden:
server
(string): De host om verbinding mee te maken.server_port
(number): Het poortnummer om verbinding mee te maken.method
(string): De AEAD-codering om te gebruiken.password
(string): Gebruikt om de versleutelingssleutel mee te maken.prefix
(string): De voorvoegselvermomming om te gebruiken. Wordt ondersteund voor stream- en pakketverbindingen.
Voorbeeld:
server: example.com
server_port: 4321
method: chacha20-ietf-poly1305
password: SECRET
prefix: "POST "
LegacyShadowsocksURI
LegacyShadowsocksURI vertegenwoordigt een tunnel die Shadowsocks gebruikt voor het transport. Hiermee implementeer je de verouderde URL-indeling voor compatibiliteit met eerdere versies.
Indeling: string
Ga naar Verouderde URI-indeling voor Shadowsocks en SIP002 URI-schema. Plug-ins worden niet ondersteund.
Voorbeeld:
ss://chacha20-ietf-poly1305:SECRET@example.com:443?prefix=POST%20
ShadowsocksConfig
ShadowsocksConfig kan een Stream en Packet Dialer vertegenwoordigen, of een Packet Listener die Shadowsocks gebruikt.
Indeling: struct
Velden:
endpoint
(EndpointConfig): Het Shadowsocks-eindpunt waarmee verbinding moet worden gemaakt.cipher
(string): De AEAD-codering om te gebruiken.secret
(string): Gebruikt om de versleutelingssleutel mee te maken.prefix
(string, optioneel): De voorvoegselvermomming om te gebruiken. Wordt ondersteund voor stream- en pakketverbindingen.
Voorbeeld:
endpoint: example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
Metadefinities
FirstSupportedConfig
Gebruikt de eerste configuratie die wordt ondersteund door de app. Dit is een manier om nieuwe configuraties te gebruiken en compatibiliteit te behouden met eerdere configuraties.
Indeling: struct
Velden:
options
(EndpointConfig[] | DialerConfig[] | PacketListenerConfig[]): Lijst met opties om te overwegen.
Voorbeeld:
options:
- $type: websocket
url: wss://example.com/SECRET_PATH
- ss.example.com:4321
Interface
Met Interfaces kun je een van meerdere implementaties kiezen. In het veld $type
voer je het type in dat die configuratie vertegenwoordigt.
Voorbeeld:
$type: shadowsocks
endpoint: example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET