Shadowsocks dokumentáció

Shadowsocks konfigurációs formátum

Konfigurációs fájl

A Shadowsocs JSON formátumú konfigurációkat vesz fel:

{

    "szerver":"saját_szerver_ip",

    "server_port":8388,

    "local_port":1080,

    “password”:”barfoo!”,

    „módszer”: „chacha20-ietf-poly1305”

}

JSON formátum

  • szerver : a gazdagép neve vagy a szerver IP-címe (IPv4/IPv6).
  • server_port: szerver port száma.
  • local_port: helyi portszám.
  • jelszó: az átvitel titkosításához használt jelszó.
  • módszer: titkosítási módszer.

Titkosítási módszer

Szervereinket konfiguráljuk, és javasoljuk a chacha20-ietf-poly1305 AEAD titkosítás használatát, mert ez a legerősebb titkosítási módszer. 

Ha saját shadowsocks szervert állít be, választhat a „chacha20-ietf-poly1305” vagy az „aes-256-gcm” közül.

URI és QR kód

A Shadowsocks Android / IOS rendszerhez BASE64 kódolású URI formátumú konfigurációkat is használ:

ss://BASE64-KÓDOLGOZOTT-SZŰRÖG-NÉLKÜL-PADDING#TAG

 

Az egyszerű URI a következő legyen: ss://method:password@hostname:port

A fenti URI nem követi az RFC3986 kódot. Ebben az esetben a jelszónak egyszerű szövegesnek kell lennie, nem százalékos kódolásúnak.



Példa: 192.168.100.1:8888 szervert használunk segítségével bf-cfb titkosítási módszer és jelszó teszt/!@#:

 

Ezután a sima URI-val ss://bf-cfb:test/!@#:@192.168.100.1:8888, előállíthatjuk a BASE64 kódolású URI-t: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Az URI-k rendszerezésének és azonosításának megkönnyítése érdekében a BASE64 kódolású karakterlánc után címkét fűzhet hozzá:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

kezelése

A Shadowsocs a SOCKS5 címformátumban található címeket használja:

[1 bájtos típus][változó hosszúságú gazdagép][2 bájtos port]

 

Itt vannak a meghatározott címtípusok:

  • 0x01: a gazdagép egy 4 bájtos IPv4-cím.
  • 0x03 : a host egy változó hosszúságú karakterlánc, amely egy 1 bájtos hosszúsággal kezdődik, majd egy legfeljebb 255 bájtos tartománynévvel kezdődik.
  • 0x04: a gazdagép egy 16 bájtos IPv6-cím.

 

A portszám egy 2 bájtos big-endian előjel nélküli egész szám.

TCP

Az ss-local kliens úgy kezdeményez kapcsolatot az ss-remote-tal, hogy titkosított adatokat küld a célcímmel, majd a hasznos adattal. A titkosítás a használt titkosítástól függően eltérő lesz.

[célcím][rakodás]

Az ss-remote fogadja a titkosított adatokat, majd dekódolja és elemzi a célcímet. Ezután új TCP-kapcsolatot hoz létre a célhoz, és továbbítja a hasznos adatokat. Az ss-remote választ kap a célponttól, majd titkosítja az adatokat, és visszaküldi az ss-local-nak, amíg meg nem szakad.

Az elhomályosítás céljából a helyi és a távoli rendszernek el kell küldenie a kézfogási adatokat az első csomagban némi hasznos adattal.

UDP

Az ss-local elküldi a célcímet és a hasznos adatokat tartalmazó titkosított adatcsomagot az ss-remote-nak.

[célcím][rakodás]

A titkosított csomag megérkezése után az ss-remote visszafejti és elemzi a célcímet. Ezután új adatcsomagot küld a hasznos teherrel a célpontnak. Az ss-remote fogadja az adatcsomagokat a célponttól, és minden egyes csomagban hozzáfűzi a célcímet a hasznos adathoz. A titkosított másolatokat visszaküldi az ss-local.

[célcím][rakodás]

Ez a folyamat levezethető az ss-remote által az ss-local hálózati címének fordítására.

Kezdje el az 5 napos ingyenes próbaidőszakot