Định cấu hình

Đườ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 đến
  • error (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ùng
    • details (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 errortransport 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ợ:

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:

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ặc wss đối với Websocket qua TLS và http hoặc ws đố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:

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ợ:

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ối
  • server_port (số): số cổng để kết nối
  • method (chuỗi): mã hoá AEAD cần sử dụng
  • password (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ũ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ối
  • cipher (chuỗi): mã hoá AEAD cần sử dụng
  • secret (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:

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