Dokumentacija Shadowsocks

Format konfiguracije Shadowsocks

Konfiguracijska datoteka

Shadowsocks sprejema konfiguracije formata JSON:

{

    “strežnik”:”moj_strežnik_ip”,

    “vrata_strežnika”:8388,

    “local_port”:1080,

    “geslo”:”barfoo!”,

    “metoda”:”chacha20-ietf-poly1305”

}

Oblika JSON

  • strežnik: vaše ime gostitelja ali IP strežnika (IPv4/IPv6).
  • server_port: številka vrat strežnika.
  • local_port: lokalna številka vrat.
  • geslo: geslo, ki se uporablja za šifriranje prenosa.
  • metoda: metoda šifriranja.

Metoda šifriranja

Konfiguriramo naše strežnike in vam priporočamo, da uporabite šifro chacha20-ietf-poly1305 AEAD, ker je najmočnejša metoda šifriranja. 

Če konfigurirate lasten strežnik shadowsocks, lahko izbirate med »chacha20-ietf-poly1305« ali »aes-256-gcm«.

URI in koda QR

Shadowsocks za Android / IOS sprejema tudi konfiguracije formata URI, kodiranega z BASE64:

ss://BASE64-KODIRANI-NIZ-BREZ-PADDING#OZNAKE

 

Navadni URI bi moral biti: ss://method:password@ime gostitelja:vrata

Zgornji URI ne sledi RFC3986. Geslo v tem primeru mora biti golo besedilo, ne odstotno kodirano.



Primer: uporabljamo strežnik na 192.168.100.1:8888 uporabo bf-cfb način šifriranja in geslo test/!@#:

 

Nato z navadnim URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, lahko ustvarimo URI, kodiran z BASE64: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Za lažje organiziranje in identifikacijo teh URI-jev lahko dodate oznako za kodiranim nizom BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Naslavljanje

Shadowsocks uporablja naslove v formatu naslova SOCKS5:

[1-bajtni tip][gostitelj spremenljive dolžine][2-bajtna vrata]

 

Tu so opredeljene vrste naslovov:

  • 0x01 : gostitelj je 4-bajtni naslov IPv4.
  • 0x03 : gostitelj je niz spremenljive dolžine, ki se začne z 1-bajtno dolžino, ki mu sledi največ 255-bajtno ime domene.
  • 0x04 : gostitelj je 16-bajtni naslov IPv6.

 

Številka vrat je 2-bajtno nepredznačeno celo število z velikim endianom.

TCP

Odjemalec ss-local sproži povezavo s ss-remote tako, da pošlje šifrirane podatke, ki se začnejo s ciljnim naslovom, ki mu sledijo podatki koristnega tovora. Šifriranje se bo razlikovalo glede na uporabljeno šifro.

[ciljni naslov][tovor]

Ss-remote prejme šifrirane podatke, nato dešifrira in razčleni ciljni naslov. Nato ustvari novo povezavo TCP s ciljem in ji posreduje podatke koristnega tovora. ss-remote prejme odgovor od cilja, nato šifrira podatke in jih posreduje nazaj na ss-local, dokler se ne prekine povezava.

Za namene zamegljevanja bi morali lokalni in oddaljeni poslati podatke rokovanja z nekaj koristnega tovora v prvem paketu.

UDP

ss-local pošlje šifriran podatkovni paket, ki vsebuje ciljni naslov in tovor, na ss-remote.

[ciljni naslov][tovor]

Ko je šifrirani paket prejet, ss-remote dešifrira in razčleni ciljni naslov. Nato pošlje nov podatkovni paket s tovorom do cilja. ss-remote prejme podatkovne pakete od cilja in doda ciljni naslov obremenitvi v vsakem paketu. Šifrirane kopije se pošljejo nazaj na ss-local.

[ciljni naslov][tovor]

Ta postopek se lahko skrči na to, da ss-remote izvede prevod omrežnega naslova za ss-local.

Začnite 5-dnevno brezplačno preskusno obdobje