Shadowsocks dokumentasjon

Shadowsocks konfigurasjonsformat

Konfigurasjonsfil

Shadowsocks tar JSON-formatkonfigurasjoner:

{

    "server":"my_server_ip",

    "server_port":8388,

    "local_port":1080,

    "passord":"barfoo!",

    "metode":"chacha20-ietf-poly1305"

}

JSON-format

  • server: vertsnavnet eller serverens IP (IPv4/IPv6).
  • server_port: serverportnummer.
  • lokal_port: lokalt portnummer.
  • passord: et passord som brukes til å kryptere overføring.
  • metode: krypteringsmetode.

Krypteringsmetode

Vi konfigurerer serverne våre og anbefaler at du bruker chacha20-ietf-poly1305 AEAD-chifferet fordi det er den sterkeste metoden for kryptering. 

Hvis du konfigurerer din egen shadowsocks-server, kan du velge mellom enten "chacha20-ietf-poly1305" eller "aes-256-gcm".

URI og QR-kode

Shadowsocks for Android / IOS tar også BASE64-kodede URI-formatkonfigurasjoner:

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

 

Den vanlige URI-en skal være: ss://method:password@vertsnavn:port

Ovennevnte URI følger ikke RFC3986. Passordet i dette tilfellet skal være ren tekst, ikke prosentkodet.



Eksempel: Vi bruker en server på 192.168.100.1:8888 ved hjelp av bf-cfb krypteringsmetode og passord test/!@#:

 

Deretter med vanlig URI ss://bf-cfb:test/!@#:@192.168.100.1:8888, kan vi generere den BASE64-kodede URI: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

For å hjelpe deg med å organisere og identifisere disse URI-ene, kan du legge til en tag etter den BASE64-kodede strengen:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

adressering

Shadowsocks bruker adressene som finnes i SOCKS5-adresseformatet:

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

 

Her er adressetypene som er definert:

  • 0x01: vert er en 4-byte IPv4-adresse.
  • 0x03 : vert er en streng med variabel lengde, som starter med en lengde på 1 byte, etterfulgt av et maks. 255 byte domenenavn.
  • 0x04: vert er en 16-byte IPv6-adresse.

 

Portnummeret er et 2-byte big-endian usignert heltall.

TCP

ss-local-klienten starter en tilkobling til ss-remote ved å sende krypterte data som starter med måladressen etterfulgt av nyttelastdata. Krypteringen vil være forskjellig avhengig av chifferen som brukes.

[måladresse][nyttelast]

ss-fjernkontrollen mottar de krypterte dataene, og dekrypterer og analyserer måladressen. Deretter oppretter den en ny TCP-forbindelse til målet og videresender nyttelastdataene til den. ss-remote mottar et svar fra målet, krypterer deretter dataene og videresender dem tilbake til ss-local til de kobles fra.

For tilsløringsformål bør lokale og eksterne sende håndtrykkdataene med noe nyttelast i den første pakken.

UDP

ss-local sender den krypterte datapakken som inneholder måladressen og nyttelasten til ss-remote.

[måladresse][nyttelast]

Når den krypterte pakken er mottatt, dekrypterer og analyserer ss-remote måladressen. Den sender deretter en ny datapakke med nyttelasten til målet. ss-remote mottar datapakkene fra målet og legger måladressen foran nyttelasten i hver pakke. Krypterte kopier sendes tilbake til ss-local.

[måladresse][nyttelast]

Denne prosessen kan kokes ned til at ss-remote utfører en nettverksadresseoversettelse for ss-local.

Start din 5-dagers gratis prøveperiode