Leabhar shadowsocks
na seòladaireachd
Cruth rèiteachaidh Shadowsocks
Faidhle rèiteachaidh
Bidh Shadowsocks a’ gabhail rèiteachaidhean cruth JSON:
{
"frithealaiche": "my_server_ip",
"Server_port": 8388,
“local_port”: 1080,
“facal-faire”: “barfoo!”,
"modh":"chacha20-ietf-poly1305"
}
Cruth JSON
- frithealaiche: d’ ainm aoigheachd no IP an fhrithealaiche (IPv4/IPv6).
- server_port : àireamh port an fhrithealaiche.
- local_port: àireamh port ionadail.
- facal-faire: facal-faire air a chleachdadh gus gluasad a chrioptachadh.
- modh: modh crioptachaidh.
Dòigh crioptachaidh
Bidh sinn a’ rèiteachadh ar frithealaichean agus a’ moladh gun cleachd thu an cipher chacha20-ietf-poly1305 AEAD oir is e seo an dòigh as làidire airson crioptachadh.
Ma tha thu a’ rèiteachadh an t-seirbheisiche shadowsocks agad fhèin, faodaidh tu taghadh bho “chacha20-ietf-poly1305” no “aes-256-gcm”.
Còd URI & QR
Bidh Shadowsocks airson Android / IOS cuideachd a’ toirt configs cruth URI còdaichte BASE64:
ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG
Bu chòir gum biodh an URI sìmplidh: ss: // Method: password@hostname: port
Chan eil an URI gu h-àrd a’ leantainn RFC3986. Bu chòir gum biodh am facal-faire sa chùis seo mar theacsa shìmplidh, gun a bhith air a chòdachadh sa cheud.
Eisimpleir: Tha sinn a’ cleachdadh frithealaiche aig 192.168.100.1:8888 cleachdadh bf-cfb modh crioptachaidh agus facal-faire deuchainn /!@#:.
An uairsin, leis an URI sìmplidh ss://bf-cfb:test/!@#:@192.168.100.1:8888, is urrainn dhuinn an URI còdaichte BASE64 a ghineadh:
> console.log ( "ss: //" + btoa ("bf-cfb: test/!@#:@192.168.100.1:8888"))
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg
Gus cuideachadh le bhith ag eagrachadh agus ag aithneachadh nan URIan sin, faodaidh tu taga a chuir a-steach às deidh sreang còd BASE64:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
A ’cur aghaidh air
Bidh Shadowsocks a’ cleachdadh nan seòlaidhean a lorgar ann an cruth seòlaidh SOCKS5:
[seòrsa 1-byte] aoigheachd fad caochlaideach] port 2-byte]
Seo na seòrsaichean seòlaidh a tha air am mìneachadh:
- 0x01: tha aoigheachd na sheòladh IPv4 4-byte.
- 0x03 : Is e sreang fad caochlaideach a th’ ann an aoigheachd, a’ tòiseachadh le fad 1-byte, agus an uairsin ainm àrainn 255-byte aig a’ char as àirde.
- 0x04: tha aoigheachd na sheòladh IPv16 6-byte.
Tha àireamh a’ phuirt na shlànaighear mòr-endian 2-byte gun ainm.
TCP
Bidh an neach-dèiligidh ss-local a’ tòiseachadh ceangal ri ss-remote le bhith a’ cur dàta crioptaichte a’ tòiseachadh leis an t-seòladh targaid agus an uairsin an dàta pàighidh pàighidh. Bidh an crioptachadh eadar-dhealaichte a rèir an cipher a thathar a’ cleachdadh.
[seòladh targaid] [luchd-pàighidh]
Bidh an ss-remote a’ faighinn an dàta crioptaichte, an uairsin a’ dì-chrioptachadh agus a’ parsadh an t-seòlaidh targaid. An uairsin cruthaichidh e ceangal TCP ùr ris an targaid agus cuiridh e air adhart an dàta pàighidh pàighidh thuige. Bidh ss-remote a’ faighinn freagairt bhon targaid agus an uairsin a’ crioptachadh an dàta agus ga chuir air ais gu ss-local gus an tèid a dhì-cheangal.
Airson adhbharan obfuscation, bu chòir ionadail agus iomallach an dàta crathadh làimhe a chuir le beagan eallach pàighidh sa chiad phacaid.
UDP
Bidh ss-local a’ cur a’ phacaid dàta crioptaichte anns a bheil an seòladh targaid agus an t-uallach pàighidh gu ss-remote.
[seòladh targaid] [luchd-pàighidh]
Cho luath ‘s a gheibhear am pasgan crioptaichte, bidh ss-remote a’ dì-chrioptachadh agus a ’parsadh an t-seòladh targaid. Bidh e an uairsin a’ cur pasgan dàta ùr leis an uallach pàighidh chun targaid. Bidh ss-remote a’ faighinn na pacaidean dàta bhon targaid agus ag ullachadh an t-seòladh targaid chun uallach pàighidh anns gach pacaid. Thèid lethbhric crioptaichte a chuir air ais gu ss-local.
[seòladh targaid] [luchd-pàighidh]
Faodar am pròiseas seo a ghoil sìos gu ss-iomallach a’ coileanadh eadar-theangachadh seòladh lìonra airson ss-local.