Shadowsocks Dokumentatioun

Shadowsocks Configuratioun Format

Configuratiounsdatei

Shadowsocks hëlt JSON Format Konfiguratiounen:

{

    "Server":"my_server_ip",

    "server_port":8388,

    "Local_port": 1080,

    "Passwuert":"Barfoo!",

    "Methode":"chacha20-ietf-poly1305"

}

JSON Format

  • Server: Äre Hostnumm oder Server IP (IPv4/IPv6).
  • server_port: Serverportnummer.
  • local_port: lokal Portnummer.
  • Passwuert: e Passwuert dat benotzt gëtt fir den Transfert ze verschlësselen.
  • Method: Verschlësselungsmethod.

Verschlësselungsmethod

Mir konfiguréieren eis Serveren a recommandéieren datt Dir de Chacha20-ietf-poly1305 AEAD Chiffer benotzt well et déi stäerkst Verschlësselungsmethod ass. 

Wann Dir Ären eegene Shadowsocks Server konfiguréiert, kënnt Dir entweder aus "chacha20-ietf-poly1305" oder "aes-256-gcm" wielen.

URI & QR Code

Shadowsocks fir Android / IOS hëlt och BASE64 kodéiert URI Format Konfiguratiounen:

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

 

Déi einfach URI soll sinn: ss://method:password@hostname:port

Déi uewe genannte URI follegt net RFC3986. D'Passwuert an dësem Fall soll einfach Text sinn, net Prozent-encodéiert.



Beispill: Mir benotzen e Server op 192.168.100.1:8888 Hëllef bf-cfb Verschlësselungsmethod a Passwuert test/!@#:

 

Dann, mat der einfacher URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, kënne mir de BASE64 kodéierten URI generéieren: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Fir ze hëllefen dës URIs z'organiséieren an z'identifizéieren, kënnt Dir e Tag no der BASE64 kodéierter String addéieren:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Adress

Shadowsocks benotzt d'Adressen déi am SOCKS5 Adressformat fonnt goufen:

[1-Byte Typ][Variabel-Längt Host][2-Byte Port]

 

Hei sinn d'Adresstypen definéiert:

  • 0x01: Host ass eng 4-Byte IPv4 Adress.
  • 0x03: Host ass eng Variabel Längt String, ugefaange mat enger 1-Byte Längt, gefollegt vun engem maximalen 255-Byte Domain Numm.
  • 0x04: Host ass eng 16-Byte IPv6 Adress.

 

D'Portnummer ass en 2-Byte Big-Endian net ënnerschriwwen Ganzt.

TCP

Den ss-lokale Client initiéiert eng Verbindung mat ss-Remote andeems verschlësselte Donnéeën ufänkt mat der Ziladress gefollegt vun de Notzlaaschtdaten. D'Verschlësselung wäert anescht sinn ofhängeg vum benotzte Chiffer.

[Ziladress] [Payload]

De ss-Remote kritt déi verschlësselte Donnéeën, entschlësselt dann d'Ziladress a parséiert. Dann erstellt eng nei TCP Verbindung zum Zil a schéckt d'Notzlaaschtdaten un. ss-Remote kritt eng Äntwert vum Zil, verschlësselt dann d'Donnéeën a schéckt se zréck op ss-local bis se ofgeschalt gëtt.

Fir Obfuscatiounszwecker, lokal a Remote sollten d'Handshakedaten mat e puer Notzlaascht am éischte Paket schécken.

UDP

ss-local schéckt de verschlësselte Datepaket mat der Ziladress an d'Notzlaascht op ss-Remote.

[Ziladress] [Payload]

Wann de verschlësselte Paket kritt ass, dekrypteert ss-Remote d'Ziladress a parséiert. Et schéckt dann en neien Datepaket mat der Notzlaascht op d'Zil. ss-Remote kritt d'Datepakete vum Zil a prependéiert d'Ziladress op d'Notzlaascht an all Paket. Verschlësselte Kopie ginn zréck op ss-local geschéckt.

[Ziladress] [Payload]

Dëse Prozess kann op ss-Remote gekacht ginn fir eng Netzwierkadress Iwwersetzung fir ss-local auszeféieren.

Fänkt Äre 5-Deeg Gratis Test un