Shadowsocks dokumentacija

Shadowsocks konfiguracijski format

Datoteka za konfigurisanje

Shadowsocks preuzima konfiguracije JSON formata:

{

    “server”:”my_server_ip”,

    “server_port”:8388,

    “local_port”:1080,

    “lozinka”: “barfoo!”,

    “metod”:”chacha20-ietf-poly1305″

}

JSON format

  • server : vaše ime hosta ili IP servera (IPv4/IPv6).
  • server_port: broj porta servera.
  • local_port: lokalni broj porta.
  • lozinka: lozinka koja se koristi za šifriranje prijenosa.
  • metoda: metoda šifriranja.

Metoda šifriranja

Konfigurišemo naše servere i preporučujemo da koristite chacha20-ietf-poly1305 AEAD šifru jer je to najjači metod šifrovanja. 

Ako konfigurirate vlastiti shadowsocks server, možete birati između “chacha20-ietf-poly1305” ili “aes-256-gcm”.

URI & QR kod

Shadowsocks za Android / IOS također preuzima konfiguracije URI formata kodiranog BASE64:

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

 

Obični URI bi trebao biti: ss://method:password@hostname:port

Gornji URI ne prati RFC3986. Lozinka u ovom slučaju treba biti običan tekst, a ne procentualno kodirana.



Primjer: Koristimo server na 192.168.100.1:8888 korišćenje bf-cfb način šifriranja i lozinka test/!@#:

 

Zatim, sa običnim URI-jem ss://bf-cfb:test/!@#:@192.168.100.1:8888, možemo generirati BASE64 kodirani URI: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Da biste lakše organizirali i identificirali ove URI-je, možete dodati oznaku nakon niza kodiranog BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Adresiranje

Shadowsocks koristi adrese koje se nalaze u formatu adrese SOCKS5:

[1-bajtni tip][host promjenjive dužine][2-bajtni port]

 

Evo definisanih tipova adresa:

  • 0x01 : host je 4-bajtna IPv4 adresa.
  • 0x03 : host je niz varijabilne dužine, koji počinje dužinom od 1 bajt, nakon čega slijedi naziv domene od maksimalno 255 bajta.
  • 0x04 : host je 16-bajtna IPv6 adresa.

 

Broj porta je 2-bajtni big-endian neoznačeni cijeli broj.

TCP

Ss-local klijent inicira vezu sa ss-remote slanjem šifrovanih podataka počevši od ciljne adrese nakon koje slijede podaci o korisnom učitavanju. Šifriranje će se razlikovati ovisno o korištenoj šifri.

[ciljana adresa][korisni teret]

Ss-remote prima šifrirane podatke, zatim dešifruje i analizira ciljnu adresu. Zatim kreira novu TCP vezu do cilja i prosljeđuje mu podatke o korisnom učitavanju. ss-remote prima odgovor od cilja, zatim šifrira podatke i prosljeđuje ih nazad na ss-local dok se ne isključi.

U svrhu zamagljivanja, lokalni i udaljeni bi trebali poslati podatke o rukovanju s nekim korisnim opterećenjem u prvom paketu.

UDP

ss-local šalje šifrirani paket podataka koji sadrži ciljnu adresu i korisni teret na ss-remote.

[ciljana adresa][korisni teret]

Jednom kada se primi šifrovani paket, ss-remote dešifruje i analizira ciljnu adresu. Zatim šalje novi paket podataka sa korisnim opterećenjem do cilja. ss-remote prima pakete podataka od cilja i dodaje ciljnu adresu u korist učitavanja u svakom paketu. Šifrovane kopije se šalju nazad na ss-local.

[ciljana adresa][korisni teret]

Ovaj proces se može svesti na ss-remote koji izvodi translaciju mrežne adrese za ss-local.

Započnite svoju 5-dnevnu besplatnu probnu verziju