Documentació de Shadowsocks
navegació
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.