Documentació de Shadowsocks

Format de configuració de Shadowsocks

Fitxer de configuració

Shadowsocks pren configuracions de format JSON:

{

    “server”:”my_server_ip”,

    "port_servidor":8388,

    “port_local”:1080,

    “contrasenya”:”barfoo!”,

    "mètode":"chacha20-ietf-poly1305"

}

Format JSON

  • servidor: el vostre nom d'amfitrió o IP del servidor (IPv4/IPv6).
  • server_port: número de port del servidor.
  • port_local: número de port local.
  • contrasenya: una contrasenya utilitzada per xifrar la transferència.
  • mètode: mètode de xifratge.

Mètode de xifratge

Configurem els nostres servidors i us recomanem que utilitzeu el xifratge chacha20-ietf-poly1305 AEAD perquè és el mètode de xifratge més fort. 

Si configureu el vostre propi servidor shadowsocks, podeu triar entre "chacha20-ietf-poly1305" o "aes-256-gcm".

URI i codi QR

Shadowsocks per a Android / IOS també pren configuracions de format URI codificades BASE64:

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

 

L'URI normal hauria de ser: ss://method:password@hostname:port

L'URI anterior no segueix RFC3986. En aquest cas, la contrasenya hauria de ser text senzill, no codificada per percentatge.



Exemple: estem utilitzant un servidor a 192.168.100.1:8888 ús bf-cfb mètode de xifratge i contrasenya prova/!@#:

 

A continuació, amb l'URI normal ss://bf-cfb:test/!@#:@192.168.100.1:8888, podem generar l'URI codificat en BASE64: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Per ajudar a organitzar i identificar aquests URI, podeu afegir una etiqueta després de la cadena codificada BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Adreçament

Shadowsocks utilitza les adreces que es troben al format d'adreces SOCKS5:

[Tipus d'1 byte][amfitrió de longitud variable][port de 2 bytes]

 

Aquests són els tipus d'adreces definits:

  • 0x01: l'amfitrió és una adreça IPv4 de 4 bytes.
  • 0x03: l'amfitrió és una cadena de longitud variable, que comença amb una longitud d'1 byte, seguida d'un nom de domini de 255 bytes com a màxim.
  • 0x04: l'amfitrió és una adreça IPv16 de 6 bytes.

 

El número de port és un nombre enter sense signe big-endian de 2 bytes.

TCP

El client ss-local inicia una connexió a ss-remote enviant dades xifrades començant per l'adreça de destinació seguida de les dades de càrrega útil. El xifratge serà diferent segons el xifratge utilitzat.

[adreça objectiu][càrrega útil]

L'ss-remote rep les dades xifrades, després desxifra i analitza l'adreça de destinació. A continuació, crea una nova connexió TCP a l'objectiu i li reenvia les dades de càrrega útil. ss-remote rep una resposta de l'objectiu i després xifra les dades i les reenvia a ss-local fins que es desconnecta.

Amb finalitats d'ofuscament, els locals i els remots haurien d'enviar les dades de l'enllaç amb una mica de càrrega útil al primer paquet.

UDP

ss-local envia el paquet de dades xifrat que conté l'adreça de destinació i la càrrega útil a ss-remote.

[adreça objectiu][càrrega útil]

Un cop rebut el paquet xifrat, ss-remote desxifra i analitza l'adreça de destinació. A continuació, envia un nou paquet de dades amb la càrrega útil a l'objectiu. ss-remote rep els paquets de dades de l'objectiu i anteposa l'adreça de destinació a la càrrega útil de cada paquet. Les còpies xifrades es tornen a enviar a ss-local.

[adreça objectiu][càrrega útil]

Aquest procés es pot reduir a ss-remote que realitza una traducció d'adreces de xarxa per a ss-local.

Comença la teva prova gratuïta de 5 dies