Dokumentasyon sa Shadowsocks

Format sa Pag-configure sa Shadowsocks

Pag-configure sa File

Ang Shadowsocks nagkinahanglan og JSON format configurations:

{

    "server": "akong_server_ip",

    "server_port": 8388,

    "local_port": 1080,

    "password":"barfoo!",

    “pamaagi”:”chacha20-ietf-poly1305″

}

Format sa JSON

  • server : imong hostname o server IP (IPv4/IPv6).
  • server_port: numero sa pantalan sa server.
  • local_port: lokal nga port number.
  • password: usa ka password nga gigamit sa pag-encrypt sa pagbalhin.
  • pamaagi: pamaagi sa pag-encrypt.

Pamaagi sa Pag-encrypt

Gi-configure namo ang among mga server ug girekomenda nga gamiton nimo ang chacha20-ietf-poly1305 AEAD cipher tungod kay kini ang pinakalig-on nga pamaagi sa pag-encrypt. 

Kung nag-configure sa imong kaugalingon nga shadowsocks server, mahimo ka makapili gikan sa "chacha20-ietf-poly1305" o "aes-256-gcm".

URI ug QR Code

Ang Shadowsocks alang sa Android / IOS nagkuha usab sa BASE64 nga naka-encode sa URI format configs:

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

 

Ang yano nga URI kinahanglan nga: ss://method:password@hostname:port

Ang URI sa ibabaw wala magsunod sa RFC3986. Ang password sa niini nga kaso kinahanglan nga yano nga teksto, dili porsyento-encoded.



Pananglitan: Naggamit kami og server sa 192.168.100.1:8888 sa paggamit sa bf-cfb pamaagi sa pag-encrypt ug password pagsulay/!@#:

 

Unya, uban sa yano nga URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, makamugna kami sa BASE64 nga naka-encode nga URI: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Aron makatabang sa pag-organisar ug pag-ila niini nga mga URI, mahimo nimong idugang ang usa ka tag pagkahuman sa BASE64 nga gi-encode nga string:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Pagtawag

Ang Shadowsocks naggamit sa mga adres nga makita sa SOCKS5 address format:

[1-byte type][variable-length host][2-byte port]

 

Ania ang mga tipo sa adres nga gihubit:

  • 0x01 : host kay 4-byte IPv4 address.
  • 0x03 : host kay usa ka variable nga gitas-on nga string, nagsugod sa 1-byte nga gitas-on, gisundan sa usa ka max 255-byte nga domain name.
  • 0x04 : host kay 16-byte IPv6 address.

 

Ang numero sa pantalan usa ka 2-byte nga big-endian nga wala’y pirma nga integer.

TCP

Ang ss-local nga kliyente magsugod og koneksyon sa ss-remote pinaagi sa pagpadala sa naka-encrypt nga datos sugod sa target nga adres nga gisundan sa payload data. Ang pag-encrypt managlahi depende sa cipher nga gigamit.

[target nga adres][payload]

Gidawat sa ss-remote ang na-encrypt nga datos, dayon gi-decrypt ug gi-parse ang target nga adres. Dayon nagmugna kini og bag-ong koneksyon sa TCP ngadto sa target ug ipasa ang payload data niini. Ang ss-remote makadawat og tubag gikan sa target unya i-encrypt ang datos ug ipasa kini balik sa ss-local hangtod nga ma-disconnect kini.

Alang sa mga katuyoan sa pagkubkob, ang lokal ug layo kinahanglan magpadala sa datos sa handshake nga adunay pipila nga kargamento sa una nga pakete.

UDP

Gipadala sa ss-local ang naka-encrypt nga pakete sa datos nga adunay sulud nga adres ug payload sa ss-remote.

[target nga adres][payload]

Kung madawat na ang naka-encrypt nga pakete, ang ss-remote mag-decrypt ug mag-parse sa target nga adres. Nagpadala kini usa ka bag-ong pakete sa datos nga adunay payload sa target. Gidawat sa ss-remote ang mga packet sa datos gikan sa target ug giandam ang target nga adres sa payload sa matag pakete. Ang na-encrypt nga mga kopya ipadala balik sa ss-local.

[target nga adres][payload]

Kini nga proseso mahimong lutoon ngadto sa ss-remote nga naghimo sa usa ka network address nga paghubad alang sa ss-local.

Sugdi ang imong 5 ka adlaw nga Libre nga pagsulay