Shadowsocks dokumentasie

Shadowsocks-konfigurasieformaat

Stel lêer op

Shadowsocks neem JSON-formaat konfigurasies:

{

    "bediener":"my_bediener_ip",

    "bediener_poort":8388,

    "plaaslike_poort":1080,

    "wagwoord":"barfoo!",

    “metode”:”chacha20-ietf-poly1305″

}

JSON-formaat

  • bediener: jou gasheernaam of bediener-IP (IPv4/IPv6).
  • bediener_poort: bedienerpoortnommer.
  • plaaslike_poort: plaaslike poortnommer.
  • wagwoord: 'n wagwoord wat gebruik word om oordrag te enkripteer.
  • metode: enkripsie metode.

Enkripsie metode

Ons konfigureer ons bedieners en beveel aan dat jy die chacha20-ietf-poly1305 AEAD-kode gebruik omdat dit die sterkste metode van enkripsie is. 

As u u eie shadowsocks-bediener opstel, kan u kies tussen óf “chacha20-ietf-poly1305” of “aes-256-gcm”.

URI en QR-kode

Shadowsocks vir Android / IOS neem ook BASE64-gekodeerde URI-formaat konfigurasies:

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

 

Die gewone URI moet wees: ss://metode:wagwoord@gasheernaam:poort

Bogenoemde URI volg nie RFC3986 nie. Die wagwoord in hierdie geval moet gewone teks wees, nie persent-geënkodeer nie.



Voorbeeld: Ons gebruik 'n bediener by 192.168.100.1:8888 gebruik van bf-cfb enkripsiemetode en wagwoord toets/!@#:

 

Dan, met die gewone URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, kan ons die BASE64-gekodeerde URI genereer: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Om hierdie URI's te help organiseer en identifiseer, kan jy 'n merker na die BASE64-gekodeerde string byvoeg:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

aanspreek

Shadowsocks gebruik die adresse wat in die SOCKS5-adresformaat gevind word:

[1-greep-tipe][gasheer met veranderlike lengte][2-greep-poort]

 

Hier is die adrestipes wat gedefinieer is:

  • 0x01: gasheer is 'n 4-grepe IPv4-adres.
  • 0x03 : gasheer is 'n string met veranderlike lengte, wat begin met 'n 1-grepe lengte, gevolg deur 'n maksimum 255-grepe domeinnaam.
  • 0x04: gasheer is 'n 16-grepe IPv6-adres.

 

Die poortnommer is 'n 2-grepe groot-endian ongetekende heelgetal.

TCP

Die ss-plaaslike kliënt begin 'n verbinding met ss-remote deur geënkripteerde data te stuur wat begin met die teikenadres gevolg deur die loonvragdata. Die enkripsie sal verskil afhangende van die syfer wat gebruik word.

[teikenadres][loonvrag]

Die ss-remote ontvang die geënkripteerde data, dan dekripteer en ontleed die teikenadres. Dan skep dit 'n nuwe TCP-verbinding met die teiken en stuur die loonvragdata daarnatoe. ss-remote ontvang 'n antwoord van die teiken en enkripteer dan die data en stuur dit terug na ss-local totdat dit ontkoppel word.

Vir verduistering doeleindes, moet plaaslike en afgeleë die handdruk data stuur met 'n paar loonvrag in die eerste pakkie.

UDP

ss-local stuur die geënkripteerde datapakket wat die teikenadres en loonvrag bevat na ss-remote.

[teikenadres][loonvrag]

Sodra die geënkripteerde pakkie ontvang is, dekripteer en ontleed ss-remote die teikenadres. Dit stuur dan 'n nuwe datapakkie met die loonvrag na die teiken. ss-remote ontvang die datapakkies vanaf die teiken en plaas die teikenadres vooraf aan die loonvrag in elke pakkie. Geënkripteerde kopieë word teruggestuur na ss-local.

[teikenadres][loonvrag]

Hierdie proses kan daarop neerkom dat ss-remote 'n netwerkadresvertaling vir ss-local uitvoer.

Begin jou 5-dae gratis proeflopie