Documentazione di Shadowsocks

Formatu di cunfigurazione Shadowsocks

File di configurazione

Shadowsocks piglia cunfigurazioni in formatu JSON:

{

    "server":"my_server_ip",

    "server_port": 8388,

    "portu_locale": 1080,

    "password":"barfoo!",

    "metudu": "chacha20-ietf-poly1305"

}

Format JSON

  • servitore: u vostru hostname o l'IP di u servitore (IPv4/IPv6).
  • server_port: numeru di portu di u servitore.
  • local_port : numeru di portu lucale.
  • password: una password utilizata per criptà u trasferimentu.
  • metudu: mètudu di criptografia.

Metudu di criptografia

Configurate i nostri servitori è ricumandemu chì utilizate u cifru chacha20-ietf-poly1305 AEAD perchè hè u metudu più forte di criptografia. 

Se cunfigurà u vostru servitore shadowsocks, pudete sceglie "chacha20-ietf-poly1305" o "aes-256-gcm".

URI è codice QR

Shadowsocks per Android / IOS piglia ancu cunfigurazione di formatu URI codificata BASE64:

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

 

L'URI chjaru deve esse: ss://method:password@hostname:port

L'URI sopra ùn seguita micca RFC3986. A password in questu casu deve esse testu chjaru, micca per centu codificatu.



Esempiu: Utilizemu un servitore à 192.168.100.1:8888 usannu bf-cfb metudu di criptografia è password prova/!@#:

 

Allora, cù u pianu URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, pudemu generà l'URI codificata BASE64: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Per aiutà à urganizà è identificà questi URI, pudete aghjunghje una tag dopu a stringa codificata BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Indirizzu

Shadowsocks usa l'indirizzi truvati in u formatu di indirizzu SOCKS5:

[Tipu di 1 byte][host di lunghezza variabile][portu di 2 byte]

 

Eccu i tipi di indirizzu definiti:

  • 0x01: l'ospite hè un indirizzu IPv4 di 4 byte.
  • 0x03 : l'ospite hè una stringa di lunghezza variabile, cuminciendu cù una lunghezza di 1 byte, seguita da un nome di duminiu massimu di 255 byte.
  • 0x04: l'ospite hè un indirizzu IPv16 di 6 byte.

 

U numeru di u portu hè un integer senza signu big-endian di 2 byte.

TCP

U cliente ss-local inizia una cunnessione à ss-remote mandendu dati criptati cuminciendu cù l'indirizzu di destinazione seguitu da i dati di carica. U criptu serà diversu secondu u cifru utilizatu.

[indirizzu di destinazione] [payload]

U ss-remote riceve i dati criptati, poi decripta è analizza l'indirizzu di destinazione. Allora crea una nova cunnessione TCP à u mira è trasmette i dati di u payload à questu. ss-remote riceve una risposta da u target, poi cripta i dati è rinvia à ss-local finu à ch'ellu hè disconnected.

Per scopi di offuscazione, lucale è remota duveranu mandà e dati di handshake cù qualchì payload in u primu pacchettu.

UDP

ss-local manda u pacchettu di dati criptatu chì cuntene l'indirizzu di destinazione è u payload à ss-remote.

[indirizzu di destinazione] [payload]

Una volta chì u pacchettu criptatu hè ricevutu, ss-remote decripta è analizza l'indirizzu di destinazione. Allora manda un novu pacchettu di dati cù a carica utile à u mira. ss-remote riceve i pacchetti di dati da u target è prepende l'indirizzu di destinazione à u payload in ogni pacchettu. E copie criptate sò rimandate à ss-local.

[indirizzu di destinazione] [payload]

Stu prucessu pò esse ridutta à ss-remote eseguisce una traduzzione di l'indirizzu di rete per ss-local.

Cumincià a vostra prova gratuita di 5 ghjorni