Dokumentace Shadowsocks

Formát konfigurace Shadowsocks

Konfigurační soubor

Shadowsocks přebírá konfigurace formátu JSON:

{

    "server":"my_server_ip",

    "port_serveru":8388,

    "Local_port": 1080,

    "heslo":"barfoo!",

    "metoda": "chacha20-ietf-poly1305"

}

Formát JSON

  • server: název hostitele nebo IP serveru (IPv4/IPv6).
  • server_port: číslo portu serveru.
  • local_port: číslo místního portu.
  • heslo: heslo používané k šifrování přenosu.
  • metoda: metoda šifrování.

Metoda šifrování

Nakonfigurujeme naše servery a doporučujeme vám používat šifru chacha20-ietf-poly1305 AEAD, protože je to nejsilnější metoda šifrování. 

Pokud konfigurujete svůj vlastní server shadowsocks, můžete si vybrat buď z „chacha20-ietf-poly1305“ nebo „aes-256-gcm“.

URI a QR kód

Shadowsocks pro Android / IOS také přebírají konfigurace formátu URI kódované BASE64:

ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG

 

Prostý identifikátor URI by měl být: ss://method:password@hostname:port

Výše uvedené URI neodpovídá RFC3986. Heslo by v tomto případě mělo být prostý text, nikoli zakódované v procentech.



Příklad: Používáme server na adrese 192.168.100.1:8888 použitím bf-cfb způsob šifrování a heslo test/!@#:

 

Pak s prostým URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, můžeme vygenerovat BASE64 kódovaný URI: 

 

> console.log( “ss://” + btoa(”bf-cfb:test/!@#:@192.168.100.1:8888”) )

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Chcete-li usnadnit organizaci a identifikaci těchto URI, můžete za řetězec kódovaný BASE64 připojit značku:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Adresování

Shadowsocks používá adresy nalezené ve formátu adresy SOCKS5:

[1bajtový typ][hostitel s proměnnou délkou][2bajtový port]

 

Zde jsou definovány typy adres:

  • 0x01: hostitel je 4bajtová adresa IPv4.
  • 0x03 : hostitel je řetězec s proměnnou délkou začínající délkou 1 bajtu, po níž následuje název domény o maximální délce 255 bajtů.
  • 0x04: hostitel je 16bajtová adresa IPv6.

 

Číslo portu je 2bajtové celé číslo bez znaménka big-endian.

TCP

Klient ss-local inicializuje připojení k ss-remote odesláním zašifrovaných dat počínaje cílovou adresou, po které následují data užitečného zatížení. Šifrování se bude lišit v závislosti na použité šifře.

[cílová adresa][payload]

Ss-remote přijímá zašifrovaná data, poté dešifruje a analyzuje cílovou adresu. Poté vytvoří nové připojení TCP k cíli a předá mu data užitečného zatížení. ss-remote obdrží odpověď od cíle, poté zašifruje data a předá je zpět do ss-local, dokud nebude odpojen.

Pro účely zmatku by místní a vzdálené měly odeslat data handshake s určitým nákladem v prvním paketu.

UDP

ss-local odešle šifrovaný datový paket obsahující cílovou adresu a užitečné zatížení do ss-remote.

[cílová adresa][payload]

Jakmile je šifrovaný paket přijat, ss-remote dešifruje a analyzuje cílovou adresu. Poté odešle nový datový paket s užitečným zatížením do cíle. ss-remote přijme datové pakety od cíle a přidá cílovou adresu k užitečné zátěži v každém paketu. Zašifrované kopie jsou odesílány zpět do ss-local.

[cílová adresa][payload]

Tento proces lze zredukovat na ss-remote provádějící překlad síťových adres pro ss-local.

Začněte svou 5denní bezplatnou zkušební verzi