Yapılandırma (Config)

Tüneller (Tunnel)

TunnelConfig

Tünel, bir Outline yapılandırmasındaki en üst düzey nesnedir. VPN'in nasıl yapılandırılması gerektiğini belirtir.

Biçim: ExplicitTunnelConfig | LegacyShadowsocksConfig | LegacyShadowsocksURI

ExplicitTunnelConfig

Biçim: struct

Alanlar:

  • transport (TransportConfig): hedef varış noktasıyla paket alışverişi yapmak için kullanılacak araç
  • error (struct): hizmet hatası durumunda kullanıcıya iletilecek bilgiler (ör. anahtarın süresi doldu, kota tükendi)
    • message (string): kullanıcıya gösterilecek açıklayıcı mesaj
    • details (string): hata ayrıntılarını açtığında kullanıcıya gösterilecek mesaj (Sorun giderme açısından yararlıdır.)

error ve transport alanları aynı anda olamaz.

Başarılı örnek:

transport:
  $type: tcpudp
  tcp:
    ...  # Stream Dialer for TCP
  udp:
    ...  # Packet Listener for UDP

Hatalı örnek:

error:
  message: Quota exceeded
  details: Used 100GB out of 100GB

Araçlar (Transport)

TransportConfig

Paketlerin hedef varış noktasıyla nasıl değiştirilmesi gerektiğini belirtir.

Biçim: Interface

Desteklenen Interface türleri:

TCPUDPConfig

TCPUDPConfig, ayrı TCP ve UDP stratejilerinin ayarlanmasına izin verir.

Biçim: struct

Alanlar:

Farklı uç noktalara TCP ve UDP gönderme örneği:

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

Uç noktalar (Endpoint)

Uç noktalar, sabit bir uç nokta ile bağlantı kurar. Uç noktaya özgü optimizasyonlara izin verdiği için çeviricilerden daha çok tercih edilir. Akış ve paket uç noktaları vardır.

EndpointConfig

Biçim: string | Interface

string uç noktası, seçilen uç noktanın ana makine:bağlantı noktası adresidir. Bağlantı, varsayılan çevirici kullanılarak kurulur.

Akış ve paket uç noktaları için desteklenen Interface türleri:

DialEndpointConfig

Sabit bir adresi çevirerek bağlantı kurar. Çevirici kullanarak stratejilerin birleştirilmesine imkan tanıyabilir.

Biçim: struct

Alanlar:

  • address (string): çevrilecek uç nokta adresi
  • dialer (DialerConfig): adresi çevirmek için kullanılacak çevirici

WebsocketEndpointConfig

Akış ve paket bağlantıları ile bir uç nokta arasında Websockets üzerinden tünel açar.

Akış bağlantıları için her yazma işlemi bir Websocket mesajına dönüştürülür. Paket bağlantıları için her paket bir Websocket mesajına dönüştürülür.

Biçim: struct

Alanlar:

  • url (string): Websocket uç noktasının URL'si. Şema, TLS kullanılan Websocket bağlantıları için https veya wss, şifrelenmemiş Websocket bağlantıları için http ya da ws şeklinde olmalıdır.
  • endpoint (EndpointConfig): Bağlanılacak web sunucusu uç noktası. Bu alan yoksa URL'de belirtilen adrese bağlanır.

Çeviriciler

Çeviriciler, belirli bir uç nokta adresiyle bağlantı kurar. Akış ve paket çeviricileri kullanılır.

DialerConfig

Biçim: null | Interface

null (boş) çeviricisi, akış için doğrudan TCP bağlantılarını ve paketler için doğrudan UDP bağlantılarını kullanan varsayılan çevirici anlamına gelir.

Akış ve paket çeviricileri için desteklenen Interface türleri:

Paket işleyiciler (PacketListener)

Paket işleyiciler, birden fazla hedefe paket göndermek için kullanılabilecek sınırsız bir paket bağlantısı kurar.

PacketListenerConfig

Biçim: null | Interface

null (boş) paket işleyicisi, bir UDP paket işleyici olan varsayılan paket işleyici anlamına gelir.

Desteklenen Interface türleri:

Stratejiler

Shadowsocks

LegacyShadowsocksConfig

LegacyShadowsocksConfig, araç olarak Shadowsocks kullanan bir tüneli temsil eder. Geriye dönük uyumluluk için eski biçimi uygular.

Biçim: struct

Alanlar:

  • server (string): bağlanılacak ana makine
  • server_port (number): bağlanılacak bağlantı noktası numarası
  • method (string): kullanılacak AEAD şifresi
  • password (string): Şifreleme anahtarı oluşturmak için kullanılır.
  • prefix (string): kullanılacak önek gizleme yöntemi. Akış ve paket bağlantılarında desteklenir.

Örnek:

server: example.com
server_port: 4321
method: chacha20-ietf-poly1305
password: SECRET
prefix: "POST "

LegacyShadowsocksURI

LegacyShadowsocksURI, araç olarak Shadowsocks kullanan bir tüneli temsil eder. Geriye dönük uyumluluk için eski URL biçimini uygular.

Biçim: string

LegacyShadowsocksURI biçimini ve SIP002 URI şemasını inceleyin. Eklentiler desteklenmez.

Örnek:

ss://chacha20-ietf-poly1305:SECRET@example.com:443?prefix=POST%20

ShadowsocksConfig

ShadowsocksConfig, akış veya paket çeviricilerinin yanı sıra Shadowsocks kullanan bir paket işleyici de temsil edebilir.

Biçim: struct

Alanlar:

  • endpoint (EndpointConfig): bağlanılacak Shadowsocks uç noktası
  • cipher (string): kullanılacak AEAD şifresi
  • secret (string): Şifreleme anahtarı oluşturmak için kullanılır.
  • prefix (string, isteğe bağlı): kullanılacak önek gizleme yöntemi. Akış ve paket bağlantılarında desteklenir.

Örnek:

endpoint: example.com:80
cipher: chacha20-ietf-poly1305
secret: SECRET
prefix: "POST "

Meta tanımlar

FirstSupportedConfig

Uygulama tarafından desteklenen ilk yapılandırmayı kullanır. Bu yöntem, eski yapılandırmalarla geriye dönük uyumludur ve yeni yapılandırmaları dahil eder.

Biçim: struct

Alanlar:

Örnek:

options:
  - $type: websocket
    url: wss://example.com/SECRET_PATH
  - ss.example.com:4321

Interface

Arayüzler birden fazla uygulamadan birinin seçilmesine izin verir. Yapılandırmanın temsil ettiği türü belirtmek için $type alanını kullanır.

Örnek:

$type: shadowsocks
endpoint: example.com:4321
cipher: chacha20-ietf-poly1305
secret: SECRET