Outline korzysta z konfiguracji w formacie YAML do definiowania parametrów VPN i obsługi ruchu TCP/UDP. Konfiguracja obsługuje kompozycyjność na wielu poziomach, umożliwiając elastyczne i rozszerzalne konfiguracje.
Konfiguracja najwyższego poziomu określa TunnelConfig.
Przykłady
Standardowa konfiguracja Shadowsocks będzie wyglądała w następujący sposób:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint: ss.example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST " # HTTP request
udp:
$type: shadowsocks
endpoint: ss.example.com:53
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "\u0097\u00a7\u0001\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000" # DNS query
Zwróć uwagę, że TCP i UDP mogą być uruchamiane na różnych portach lub punktach końcowych oraz z różnymi zakresami.
Możesz korzystać z kotwic YAML oraz klucza scalającego <<
, aby uniknąć duplikowania:
transport:
$type: tcpudp
tcp:
<<: &shared
$type: shadowsocks
endpoint: ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
udp: *shared
Można teraz tworzyć strategie i wykonywać liczne przeskoki:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: dial
address: exit.example.com:4321
dialer:
$type: shadowsocks
address: entry.example.com:4321
cipher: chacha20-ietf-poly1305
secret: ENTRY_SECRET
cipher: chacha20-ietf-poly1305
secret: EXIT_SECRET
udp: *shared
W przypadku nietypowych protokołów, takich jak Shadowsocks, możesz skorzystać z Shadowsocks-over-Websockets. Zapoznaj się z przykładową konfiguracją serwera, aby dowiedzieć, się jak przeprowadzić wdrożenie. Konfiguracja klienta będzie wyglądała w następujący sposób:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
Zwróć uwagę, że punkt końcowy Websocket może w konsekwencji wybrać punkt końcowy, który może zostać wykorzystany do ominięcia blokady systemu BNS.
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
endpoint: cloudflare.net:443
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
endpoint: cloudflare.net:443
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
Aby zadbać o zgodność między wieloma wersjami klienta Outline, skorzystaj z opcji first-supported
w swojej konfiguracji. Jest to szczególnie istotne, jako że do Outline dodano nowe strategie i funkcje, a nie wszyscy użytkownicy zaktualizowali oprogramowanie klienta do najnowszej wersji. Korzystając z first-supported
, możesz zapewnić pojedynczą konfigurację, która działa bezproblemowo na wielu różnych platformach i wersjach klienta, co przełoży się na zgodność wsteczną i spójne wrażenia użytkownika.
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: first-supported
options:
- $type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/tcp
- ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: first-supported
options:
- $type: websocket
url: wss://legendary-faster-packs-und.trycloudflare.com/SECRET_PATH/udp
- ss.example.com:4321
cipher: chacha20-ietf-poly1305
secret: SS_SECRET