Shadowsocksin dokumentaatio

Shadowsocksin määritysmuoto

Määritä tiedosto

Shadowsocks ottaa JSON-muodon kokoonpanot:

{

    "palvelin":"my_server_ip",

    "server_port":8388,

    "local_port":1080,

    “password”:”barfoo!”,

    "menetelmä":"chacha20-ietf-poly1305"

}

JSON-muoto

  • palvelin: isäntänimesi tai palvelimen IP-osoite (IPv4/IPv6).
  • server_port: palvelimen portin numero.
  • local_port: paikallinen portin numero.
  • salasana: salasana, jota käytetään tiedonsiirron salaamiseen.
  • menetelmä: salausmenetelmä.

Salausmenetelmä

Määritämme palvelimemme ja suosittelemme chacha20-ietf-poly1305 AEAD-salauksen käyttöä, koska se on vahvin salausmenetelmä. 

Jos määrität oman shadowsocks-palvelimen, voit valita joko "chacha20-ietf-poly1305" tai "aes-256-gcm".

URI- ja QR-koodi

Shadowsocks for Android / IOS ottaa myös BASE64-koodatut URI-muodot:

ss://BASE64-KOODATU-JOONE-ILMAN TÄYTTÖÄ#TAG

 

Tavallisen URI:n tulee olla: ss://method:salasana@isäntänimi:portti

Yllä oleva URI ei seuraa RFC3986:ta. Salasanan tulee tässä tapauksessa olla pelkkä teksti, ei prosenttikoodattu.



Esimerkki: Käytämme palvelinta osoitteessa 192.168.100.1:8888 käyttämällä bf-cfb salausmenetelmä ja salasana testata/!@#:

 

Sitten tavallisella URI:lla ss://bf-cfb:test/!@#:@192.168.100.1:8888, voimme luoda BASE64-koodatun URI:n: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Voit helpottaa näiden URI:iden järjestämistä ja tunnistamista lisäämällä tagin BASE64-koodatun merkkijonon jälkeen:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Osoitteet

Shadowsocks käyttää SOCKS5-osoitemuodossa olevia osoitteita:

[1-tavuinen tyyppi][muuttuvan pituinen isäntä][2-tavuinen portti]

 

Tässä on määritetty osoitetyypit:

  • 0x01: isäntä on 4-tavuinen IPv4-osoite.
  • 0x03 : isäntä on muuttuvapituinen merkkijono, joka alkaa 1-tavuisella pituudella ja jota seuraa enintään 255-tavuinen verkkotunnuksen nimi.
  • 0x04: isäntä on 16-tavuinen IPv6-osoite.

 

Portin numero on 2-tavuinen etumerkitön kokonaisluku.

TCP

ss-local-asiakas aloittaa yhteyden ss-remoten lähettämällä salattua dataa alkaen kohdeosoitteesta ja sen jälkeen hyötykuormadatasta. Salaus vaihtelee käytetyn salauksen mukaan.

[kohdeosoite][hyötykuorma]

ss-remote vastaanottaa salatut tiedot, sitten purkaa ja jäsentää kohdeosoitteen. Sitten se luo uuden TCP-yhteyden kohteeseen ja välittää hyötydatan sille. ss-remote vastaanottaa vastauksen kohteelta ja salaa tiedot ja lähettää sen takaisin ss-localiin, kunnes yhteys katkeaa.

Hämärtämistä varten paikallisten ja kauko-ohjaimien tulisi lähettää kättelytiedot, jossa on jonkin verran hyötykuormaa ensimmäisessä paketissa.

UDP

ss-local lähettää kohdeosoitteen ja hyötykuorman sisältävän salatun datapaketin ss-remotelle.

[kohdeosoite][hyötykuorma]

Kun salattu paketti on vastaanotettu, ss-remote purkaa ja jäsentää kohdeosoitteen. Sitten se lähettää uuden datapaketin hyötykuorman kanssa kohteeseen. ss-remote vastaanottaa datapaketit kohteesta ja liittää kohdeosoitteen kunkin paketin hyötykuormaan. Salatut kopiot lähetetään takaisin ss-localiin.

[kohdeosoite][hyötykuorma]

Tämä prosessi voidaan tiivistää niin, että ss-remote suorittaa verkko-osoitteen käännöksen ss-localille.

Aloita 5 päivän ilmainen kokeilujaksosi