Shadowsocks dokumentacija

Shadowsocks konfiguracijski format

Datoteka za konfiguriranje

Shadowsocks preuzima konfiguracije JSON formata:

{

    “poslužitelj”:”moj_ip_poslužitelja”,

    “port_poslužitelja”:8388,

    “local_port”:1080,

    “lozinka”:”barfoo!”,

    “metoda”:”chacha20-ietf-poly1305”

}

JSON format

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

Metoda šifriranja

Konfiguriramo naše poslužitelje i preporučujemo da koristite chacha20-ietf-poly1305 AEAD šifru jer je to najjača metoda enkripcije. 

Ako konfigurirate vlastiti shadowsocks poslužitelj, 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 kodiranih BASE64:

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

 

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

Gornji URI ne slijedi RFC3986. Lozinka bi u ovom slučaju trebala biti običan tekst, a ne postotno kodirana.



Primjer: koristimo poslužitelj na 192.168.100.1:8888 koristeći bf-cfb način šifriranja i lozinku test/!@#:

 

Zatim, s 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

 

Kako biste organizirali i identificirali ove URI-je, možete dodati oznaku nakon BASE64 kodiranog niza:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Adresiranje

Shadowsocks koristi adrese koje se nalaze u formatu adrese SOCKS5:

[1-bajtni tip][host promjenjive duljine][2-bajtni priključak]

 

Ovdje su definirane vrste adresa:

  • 0x01 : host je 4-bajtna IPv4 adresa.
  • 0x03 : host je niz promjenjive duljine, počevši od 1 bajta, nakon čega slijedi naziv domene od najviše 255 bajta.
  • 0x04 : host je 16-bajtna IPv6 adresa.

 

Broj porta je 2-bajtni veliki-endian cijeli broj bez predznaka.

TCP

Ss-local klijent inicira vezu sa ss-remote slanjem šifriranih podataka počevši s ciljnom adresom nakon koje slijede podaci o sadržaju. Enkripcija će se razlikovati ovisno o korištenoj šifri.

[ciljna adresa][korisni teret]

Ss-remote prima šifrirane podatke, zatim dekriptira i analizira ciljnu adresu. Zatim stvara novu TCP vezu s ciljem i prosljeđuje joj podatke o korisnom teretu. ss-remote prima odgovor od cilja, zatim šifrira podatke i prosljeđuje ih natrag na ss-local dok se ne prekine veza.

U svrhu zamagljivanja, lokalni i udaljeni bi trebali poslati podatke o rukovanju s nešto korisnog sadržaja u prvom paketu.

UDP

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

[ciljna adresa][korisni teret]

Nakon što je šifrirani paket primljen, ss-remote dekriptira i analizira ciljnu adresu. Zatim šalje novi paket podataka s korisnim sadržajem do cilja. ss-remote prima pakete podataka od cilja i dodaje ciljnu adresu u sadržaj svakog paketa. Šifrirane kopije šalju se natrag na ss-local.

[ciljna adresa][korisni teret]

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

Započnite svoje 5-dnevno besplatno probno razdoblje