Shadowsocksin dokumentaatio
suunnistus
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.