Documentație Shadowsocks

Formatul de configurare Shadowsocks

Fișierul de configurare

Shadowsocks preia configurații în format JSON:

{

    „server”:”my_server_ip”,

    „Server_port”: 8388,

    „port_local”:1080,

    „parolă”:”barfoo!”,

    „metodă”:”chacha20-ietf-poly1305″

}

Format JSON

  • Server : numele dvs. de gazdă sau IP-ul serverului (IPv4/IPv6).
  • server_port: numărul portului serverului.
  • local_port: numărul portului local.
  • parola: o parolă folosită pentru a cripta transferul.
  • metoda: metoda de criptare.

Metoda de criptare

Configuram serverele noastre și recomandăm să utilizați cifrul AEAD chacha20-ietf-poly1305 deoarece este cea mai puternică metodă de criptare. 

Dacă vă configurați propriul server shadowsocks, puteți alege dintre „chacha20-ietf-poly1305” sau „aes-256-gcm”.

URI și codul QR

Shadowsocks pentru Android / IOS acceptă și configurații de format URI codificate BASE64:

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

 

URI-ul simplu ar trebui să fie: ss://method:password@hostname:port

URI-ul de mai sus nu urmează RFC3986. Parola în acest caz ar trebui să fie text simplu, nu codificată procentual.



Exemplu: folosim un server la 192.168.100.1:8888 folosind bf-cfb metoda de criptare și parola Test/!@#:

 

Apoi, cu URI simplu ss://bf-cfb:test/!@#:@192.168.100.1:8888, putem genera URI-ul codificat BASE64: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Pentru a ajuta la organizarea și identificarea acestor URI-uri, puteți adăuga o etichetă după șirul codificat BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

adresare

Shadowsocks folosește adresele găsite în formatul de adresă SOCKS5:

[tip de 1 octet][gazdă cu lungime variabilă][port de 2 octeți]

 

Iată tipurile de adrese definite:

  • 0x01: gazda este o adresă IPv4 de 4 octeți.
  • 0x03 : gazda este un șir de lungime variabilă, începând cu o lungime de 1 octet, urmată de un nume de domeniu de maximum 255 de octeți.
  • 0x04: gazda este o adresă IPv16 de 6 octeți.

 

Numărul portului este un număr întreg nesemnat big-endian de 2 octeți.

TCP

Clientul ss-local inițiază o conexiune la ss-remote prin trimiterea de date criptate începând cu adresa țintă urmată de datele de încărcare utilă. Criptarea va fi diferită în funcție de cifrul utilizat.

[adresă țintă][sarcină utilă]

ss-remote primește datele criptate, apoi decriptează și analizează adresa țintă. Apoi creează o nouă conexiune TCP la țintă și îi transmite datele de încărcare utilă. ss-remote primește un răspuns de la țintă, apoi criptează datele și le transmite înapoi către ss-local până când este deconectată.

În scopuri de ofuscare, local și la distanță ar trebui să trimită datele de handshake cu o anumită sarcină utilă în primul pachet.

UDP

ss-local trimite pachetul de date criptate care conține adresa țintă și sarcina utilă către ss-remote.

[adresă țintă][sarcină utilă]

Odată ce pachetul criptat este primit, ss-remote decriptează și analizează adresa țintă. Apoi trimite un nou pachet de date cu sarcina utilă către țintă. ss-remote primește pachetele de date de la țintă și înaintează adresa țintă la sarcina utilă din fiecare pachet. Copiile criptate sunt trimise înapoi la ss-local.

[adresă țintă][sarcină utilă]

Acest proces poate fi redus la ss-remote care efectuează o traducere a adresei de rețea pentru ss-local.

Începeți perioada de încercare gratuită de 5 zile