Dokumentacioni i Shadowsocks
lundrim
Formati i konfigurimit të Shadowsocks
Konfiguro Skedarin
Shadowsocks merr konfigurimin e formatit JSON:
{
"server":"my_server_ip",
"server_port":8388,
“local_port”:1080,
"fjalëkalimi": "barfoo!",
"metoda":"chacha20-ietf-poly1305"
}
Formati JSON
- serveri: emri juaj i hostit ose IP i serverit (IPv4/IPv6).
- server_port: numri i portës së serverit.
- local_port: numri i portit lokal.
- fjalëkalimi: një fjalëkalim i përdorur për të enkriptuar transferimin.
- metoda: metoda e kriptimit.
Metoda e kriptimit
Ne konfigurojmë serverët tanë dhe rekomandojmë që të përdorni shifrën chacha20-ietf-poly1305 AEAD sepse është metoda më e fortë e kriptimit.
Nëse konfiguroni serverin tuaj shadowsocks, mund të zgjidhni nga "chacha20-ietf-poly1305" ose "aes-256-gcm".
Kodi URI dhe QR
Shadowsocks për Android / IOS gjithashtu merr konfigurimin e formatit URI të koduar BASE64:
ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG
URI e thjeshtë duhet të jetë: ss://method:password@hostname:port
URI-ja e mësipërme nuk ndjek RFC3986. Fjalëkalimi në këtë rast duhet të jetë tekst i thjeshtë, jo i koduar me përqindje.
Shembull: Ne po përdorim një server në 192.168.100.1:8888 përdorim bf-cfb metodën e kriptimit dhe fjalëkalimin test/!@#:.
Pastaj, me URI të thjeshtë ss://bf-cfb:test/!@#:@192.168.100.1:8888, ne mund të gjenerojmë URI të koduar BASE64:
> console.log( "ss://" + btoa("bf-cfb:test/!@#:@192.168.100.1:8888") )
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg
Për të ndihmuar në organizimin dhe identifikimin e këtyre URI-ve, mund të shtoni një etiketë pas vargut të koduar BASE64:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
adresim
Shadowsocks përdor adresat e gjetura në formatin e adresës SOCKS5:
[Lloji 1 byte][host me gjatësi të ndryshueshme][port 2 byte]
Këtu janë llojet e adresave të përcaktuara:
- 0x01 : hosti është një adresë IPv4 4 bajt.
- 0x03 : hosti është një varg me gjatësi të ndryshueshme, duke filluar me një gjatësi 1 bajt, e ndjekur nga një emër domaini maksimumi 255 bajt.
- 0x04 : hosti është një adresë IPv16 6 bajt.
Numri i portit është një numër i plotë i panënshkruar nga big-endian 2-bajtë.
TCP
Klienti ss-lokal fillon një lidhje me ss-remote duke dërguar të dhëna të koduara duke filluar me adresën e synuar të ndjekur nga të dhënat e ngarkesës. Kriptimi do të jetë i ndryshëm në varësi të kodit të përdorur.
[adresa e synuar][ngarkesa]
Telekomanda ss merr të dhënat e koduara, pastaj deshifron dhe analizon adresën e synuar. Pastaj krijon një lidhje të re TCP me objektivin dhe ia përcjell të dhënat e ngarkesës. ss-remote merr një përgjigje nga objektivi, më pas i kodon të dhënat dhe i kthen në ss-local derisa të shkëputet.
Për qëllime mjegullimi, lokale dhe në distancë duhet të dërgojnë të dhënat e shtrëngimit të duarve me një ngarkesë të caktuar në paketën e parë.
UDP
ss-local dërgon paketën e të dhënave të koduar që përmban adresën e synuar dhe ngarkesën në ss-remote.
[adresa e synuar][ngarkesa]
Pasi të merret paketa e koduar, ss-remote deshifron dhe analizon adresën e synuar. Më pas dërgon një paketë të re të dhënash me ngarkesën në objektiv. ss-remote merr paketat e të dhënave nga objektivi dhe ia parashtron adresën e synuar ngarkesës në çdo paketë. Kopjet e koduara kthehen në ss-local.
[adresa e synuar][ngarkesa]
Ky proces mund të zbërthehet në ss-remote kryerjen e një përkthimi të adresës së rrjetit për ss-local.