Đường hầm
TunnelConfig
Đường hầm là đối tượng cấp cao nhất trong cấu hình Outline. Tệp này chỉ định cách định cấu hình VPN.
Định dạng: ExplicitTunnelConfig | LegacyShadowsocksConfig | LegacyShadowsocksURI
ExplicitTunnelConfig
Định dạng: cấu trúc
Trường:
transport
(TransportConfig): phương thức truyền tải dùng để trao đổi gói với đích đếnerror
(cấu trúc): thông tin để thông báo cho người dùng trong trường hợp xảy ra lỗi dịch vụ (ví dụ: khoá đã hết hạn, hạn mức đã hết)message
(chuỗi): thông báo thân thiện với người dùng để hiển thị cho người dùngdetails
(chuỗi): thông báo hiển thị khi người dùng mở thông tin chi tiết về lỗi. Hữu ích cho việc khắc phục sự cố.
Các trường error
và transport
loại trừ lẫn nhau.
Ví dụ thành công:
transport:
$type: tcpudp
tcp:
... # Stream Dialer for TCP
udp:
... # Packet Listener for UDP
Ví dụ về lỗi:
error:
message: Quota exceeded
details: Used 100GB out of 100GB
Phương tiện vận tải
TransportConfig
Chỉ định cách trao đổi gói với đích đến mục tiêu.
Định dạng: Giao diện
Các loại giao diện được hỗ trợ:
tcpudp
: TCPUDPConfig
TCPUDPConfig
TCPUDPConfig cho phép thiết lập các chiến lược TCP và UDP riêng biệt.
Định dạng: cấu trúc
Trường:
tcp
(DialerConfig): Trình quay số trực tuyến để sử dụng cho các kết nối TCP.udp
(PacketListenerConfig): Trình nghe gói để sử dụng cho các gói UDP.
Ví dụ về việc gửi TCP và UDP đến các điểm cuối khác nhau:
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
Điểm cuối
Điểm cuối thiết lập kết nối đến một điểm cuối cố định. Bạn nên sử dụng phương thức này thay vì Trình quay số vì phương thức này cho phép tối ưu hoá theo từng điểm cuối. Có Điểm cuối luồng và Điểm cuối gói.
EndpointConfig
Định dạng: chuỗi | Giao diện
Điểm cuối chuỗi là địa chỉ máy chủ:cổng của điểm cuối đã chọn. Kết nối được thiết lập bằng cách sử dụng Trình quay số mặc định.
Các loại giao diện được hỗ trợ cho Điểm cuối của luồng và gói:
dial
: DialEndpointConfigfirst-supported
: FirstSupportedConfigwebsocket
: WebsocketEndpointConfigshadowsocks
: ShadowsocksConfig
DialEndpointConfig
Thiết lập kết nối bằng cách quay số một địa chỉ cố định. Bạn có thể sử dụng trình quay số để cho phép kết hợp các chiến lược.
Định dạng: cấu trúc
Trường:
address
(chuỗi): địa chỉ điểm cuối để quay sốdialer
(DialerConfig): trình quay số để dùng khi quay số địa chỉ
WebsocketEndpointConfig
Chuyển luồng và kết nối gói đến một điểm cuối qua Websocket.
Đối với các kết nối luồng, mỗi lần ghi sẽ được chuyển thành một thông báo Websocket. Đối với các kết nối gói, mỗi gói sẽ được chuyển thành một thông báo Websocket.
Định dạng: cấu trúc
Trường:
url
(chuỗi): URL cho điểm cuối Websocket. Giản đồ phải làhttps
hoặcwss
đối với Websocket qua TLS vàhttp
hoặcws
đối với Websocket văn bản thô.endpoint
(EndpointConfig): điểm cuối của máy chủ web để kết nối. Nếu không có, sẽ kết nối với địa chỉ được chỉ định trong URL.
Trình quay số
Trình quay số thiết lập kết nối dựa trên địa chỉ điểm cuối. Có Trình quay số gói và Trình quay số luồng.
DialerConfig
Định dạng: rỗng | Giao diện
Trình quay số rỗng (không có) có nghĩa là Trình quay số mặc định, sử dụng kết nối TCP trực tiếp cho Luồng và kết nối UDP trực tiếp cho Gói.
Các loại giao diện được hỗ trợ cho Trình quay số gói và luồng:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksConfig
Trình nghe gói
Trình nghe gói thiết lập một kết nối gói không ràng buộc có thể dùng để gửi gói đến nhiều đích.
PacketListenerConfig
Định dạng: rỗng | Giao diện
Trình nghe gói rỗng (không có) có nghĩa là Trình nghe gói mặc định, là một Trình nghe gói UDP.
Các loại giao diện được hỗ trợ:
first-supported
: FirstSupportedConfigshadowsocks
: ShadowsocksPacketListenerConfig
Chiến lược
Shadowsocks
LegacyShadowsocksConfig
LegacyShadowsocksConfig đại diện cho một Đường hầm sử dụng Shadowsocks làm phương thức truyền tải. Phương thức này triển khai định dạng cũ để tương thích ngược.
Định dạng: cấu trúc
Trường:
server
(chuỗi): máy chủ lưu trữ cần kết nốiserver_port
(số): số cổng để kết nốimethod
(chuỗi): mã hoá AEAD cần sử dụngpassword
(chuỗi): dùng để tạo khoá mã hoáprefix
(chuỗi): mục đích che giấu tiền tố cần sử dụng. Được hỗ trợ trên các kết nối luồng và gói.
Ví dụ:
server: example.com
server_port: 4321
method: chacha20-ietf-poly1305
password: SECRET
prefix: "POST "
LegacyShadowsocksURI
LegacyShadowsocksURI đại diện cho một Đường hầm sử dụng Shadowsocks làm phương thức truyền tải. Phương thức này triển khai định dạng URL cũ để tương thích ngược.
Định dạng: chuỗi
Xem Định dạng URI Shadowsocks cũ và giao thức URI SIP002. Chúng tôi không hỗ trợ trình bổ trợ.
Ví dụ:
ss://chacha20-ietf-poly1305:SECRET@example.com:443?prefix=POST%20
ShadowsocksConfig
ShadowsocksConfig có thể đại diện cho Trình quay số gói hoặc Luồng, cũng như Trình nghe gói sử dụng Shadowsocks.
Định dạng: cấu trúc
Trường:
endpoint
(EndpointConfig): điểm cuối Shadowsocks để kết nốicipher
(chuỗi): mã hoá AEAD cần sử dụngsecret
(chuỗi): dùng để tạo khoá mã hoáprefix
(chuỗi, không bắt buộc): mặt nạ tiền tố cần sử dụng. Được hỗ trợ trên các kết nối luồng và gói.
Ví dụ:
endpoint: example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "
Định nghĩa về siêu dữ liệu
FirstSupportedConfig
Sử dụng cấu hình đầu tiên mà ứng dụng hỗ trợ. Đây là cách để kết hợp các cấu hình mới trong khi vẫn tương thích ngược với các cấu hình cũ.
Định dạng: cấu trúc
Trường:
options
(EndpointConfig[] | DialerConfig[] | PacketListenerConfig[]): danh sách các tuỳ chọn cần xem xét
Ví dụ:
options:
- $type: websocket
url: wss://example.com/SECRET_PATH
- ss.example.com:4321
Giao diện
Giao diện cho phép chọn một trong nhiều cách triển khai. Phương thức này sử dụng trường $type
để chỉ định loại mà cấu hình đại diện.
Ví dụ:
$type: shadowsocks
endpoint: example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET