dokuméntasi Shadowsocks
napigasi
Format Konfigurasi Shadowsocks
File Konpigurasikeun
Shadowsocks nyandak konfigurasi format JSON:
{
"server":"my_server_ip",
"Server_port": 8388,
"local_port": 1080,
"sandi":"barfoo!",
"Metoda": "chacha20-ietf-poly1305"
}
Format JSON
- server: hostname atanapi server IP anjeun (IPv4/IPv6).
- server_port: angka port server.
- local_port: nomer port lokal.
- sandi: sandi dipaké pikeun encrypt mindahkeun.
- métode: métode énkripsi.
Métode Énkripsi
Kami ngonpigurasikeun server kami sareng nyarankeun yén anjeun nganggo cipher chacha20-ietf-poly1305 AEAD sabab éta mangrupikeun metode enkripsi anu paling kuat.
Lamun ngonpigurasikeun server shadowsocks sorangan, Anjeun bisa milih ti boh "chacha20-ietf-poly1305" atawa "aes-256-gcm".
URI & QR Code
Shadowsocks pikeun Android / IOS ogé nyandak konfigurasi format URI anu disandikeun BASE64:
ss://BASE64-ENCODED-STRING-TANPA-PADDING#TAG
URI polos kedah: ss: // métode: sandi @ hostname: port
URI di luhur henteu nuturkeun RFC3986. Sandi dina hal ieu kudu téks polos, teu persen-disandikeun.
Conto: Kami nganggo server di 192.168.100.1:8888 ngagunakeun bf-cfb métode énkripsi sarta sandi uji/!@#:.
Lajeng, kalawan URI polos ss://bf-cfb:test/!@#:@192.168.100.1:8888, urang tiasa ngahasilkeun URI disandikeun BASE64:
> console.log( “ss://” + btoa(“bf-cfb:test/!@#:@192.168.100.1:8888”) )
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg
Pikeun ngabantosan ngatur sareng ngaidentipikasi URI ieu, anjeun tiasa nambihan tag saatos senar anu disandikeun BASE64:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
alamat
Shadowsocks nganggo alamat anu aya dina format alamat SOCKS5:
[Tipe 1-bait][host panjang variabel][port 2-bait]
Ieu mangrupikeun jinis alamat anu ditetepkeun:
- 0x01: host mangrupikeun alamat IPv4 4-bait.
- 0x03 : host nyaéta string panjang variabel, dimimitian ku panjang 1-bait, dituturkeun ku ngaran domain max 255-bait.
- 0x04: host mangrupikeun alamat IPv16 6-bait.
Jumlah port nyaéta 2-bait badag-endian integer unsigned.
TCP
Klién ss-lokal ngamimitian sambungan ka ss-remote ku ngirim data énkripsi dimimitian ku alamat target dituturkeun ku data payload. Énkripsi bakal béda-béda gumantung kana cipher anu dianggo.
[alamat target][payload]
ss-remote nampi data énkripsi, teras ngadekrip sareng nga-parses alamat target. Teras nyiptakeun sambungan TCP énggal ka udagan sareng neraskeun data payload ka dinya. ss-remote nampi balesan ti udagan teras énkripsi data sareng teraskeun deui ka ss-local dugi ka dipegatkeun.
Pikeun tujuan obfuscation, lokal sareng jauh kedah ngirim data sasalaman sareng sababaraha muatan dina pakét munggaran.
UDP
ss-local ngirimkeun pakét data énkripsi anu ngandung alamat target sareng payload ka ss-remote.
[alamat target][payload]
Sakali pakét énkripsi ditampi, ss-remote ngadekrip sareng nga-parses alamat target. Éta teras ngirimkeun pakét data énggal kalayan muatan ka udagan. ss-remote narima pakét data ti udagan jeung prepends alamat target kana payload dina unggal pakét. Salinan énkripsi dikirim deui ka ss-local.
[alamat target][payload]
Prosés ieu bisa digodog nepi ka ss-jauh ngalakukeun tarjamahan alamat jaringan pikeun ss-lokal.