Shadowsocks dokumentācija

Shadowsocks konfigurācijas formāts

Konfigurēt failu

Shadowsocks izmanto JSON formāta konfigurācijas:

{

    “serveris”: “mans_servera_ip”,

    “server_port”: 8388,

    “local_port”:1080,

    “password”: “barfoo!”,

    “metode”: “chacha20-ietf-poly1305”

}

JSON formāts

  • serveris: jūsu resursdatora nosaukums vai servera IP (IPv4/IPv6).
  • server_port: servera porta numurs.
  • local_port: vietējā porta numurs.
  • parole: parole, ko izmanto pārsūtīšanas šifrēšanai.
  • metode: šifrēšanas metode.

Šifrēšanas metode

Mēs konfigurējam savus serverus un iesakām izmantot chacha20-ietf-poly1305 AEAD šifru, jo tā ir spēcīgākā šifrēšanas metode. 

Ja konfigurējat savu shadowsocks serveri, varat izvēlēties no “chacha20-ietf-poly1305” vai “aes-256-gcm”.

URI un QR kods

Shadowsocks operētājsistēmai Android/IOS izmanto arī BASE64 kodēta URI formāta konfigurācijas:

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

 

Vienkāršajam URI jābūt šādam: ss://method:password@hostname:port

Iepriekš minētais URI neatbilst RFC3986. Parolei šajā gadījumā jābūt vienkāršam tekstam, nevis procentiem kodētai.



Piemērs: mēs izmantojam serveri ar 192.168.100.1:8888 izmantojot bf-cfb šifrēšanas metode un parole pārbaude/!@#:

 

Pēc tam ar vienkāršu URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, mēs varam ģenerēt BASE64 kodēto URI: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Lai palīdzētu sakārtot un identificēt šos URI, aiz BASE64 kodētās virknes varat pievienot tagu:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Risināšana

Shadowsocks izmanto adreses, kas atrodamas SOCKS5 adreses formātā:

[1 baita veids][mainīga garuma resursdators][2 baitu ports]

 

Šeit ir definētie adrešu veidi:

  • 0x01: resursdators ir 4 baitu IPv4 adrese.
  • 0x03 : resursdators ir mainīga garuma virkne, kas sākas ar 1 baita garumu, kam seko ne vairāk kā 255 baitu domēna nosaukums.
  • 0x04: resursdators ir 16 baitu IPv6 adrese.

 

Porta numurs ir 2 baitu lielais neparakstīts vesels skaitlis.

TCP

Ss-local klients uzsāk savienojumu ar ss-remote, nosūtot šifrētus datus, sākot ar mērķa adresi, kam seko lietderīgās slodzes dati. Šifrēšana būs atšķirīga atkarībā no izmantotā šifra.

[mērķa adrese][lietderīgā slodze]

SS-tālvadības pults saņem šifrētos datus, pēc tam atšifrē un parsē mērķa adresi. Pēc tam tas izveido jaunu TCP savienojumu ar mērķi un pārsūta uz to lietderīgās slodzes datus. ss-remote saņem atbildi no mērķa, pēc tam šifrē datus un pārsūta tos atpakaļ uz ss-local, līdz tas tiek atvienots.

Apmulsināšanas nolūkos vietējai un tālvadībai ir jānosūta rokasspiediena dati ar nelielu slodzi pirmajā paketē.

UDP

ss-local nosūta šifrētu datu paketi, kas satur mērķa adresi un lietderīgo slodzi, uz ss-remote.

[mērķa adrese][lietderīgā slodze]

Kad šifrētā pakete ir saņemta, ss-remote atšifrē un parsē mērķa adresi. Pēc tam tas nosūta mērķim jaunu datu paketi ar lietderīgo slodzi. ss-remote saņem datu paketes no mērķa un katras paketes lietderīgajai slodzei pievieno mērķa adresi. Šifrētās kopijas tiek nosūtītas atpakaļ uz ss-local.

[mērķa adrese][lietderīgā slodze]

Šo procesu var samazināt līdz ss-remote, kas veic tīkla adreses tulkošanu ss-local.

Sāciet savu 5 dienu bezmaksas izmēģinājumu