Shadowsocks dokumentacija
navigacija
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.