Shadowsocks-ի փաստաթղթեր

Shadowsocks-ի կազմաձևման ձևաչափ

Կազմաձևման ֆայլ

Shadowsocks-ը վերցնում է JSON ձևաչափի կոնֆիգուրացիաներ.

{

    «սերվեր»: «my_server_ip»,

    «server_port»:8388,

    «local_port»:1080,

    «գաղտնաբառ»: «barfoo!»,

    «մեթոդ»:»chacha20-ietf-poly1305″

}

JSON ձևաչափ

  • սերվեր: ձեր հոսթի անունը կամ սերվերի IP-ն (IPv4/IPv6):
  • server_port՝ սերվերի պորտի համարը:
  • local_port՝ տեղական պորտի համարը:
  • գաղտնաբառ. գաղտնաբառ, որն օգտագործվում է փոխանցումը կոդավորելու համար:
  • մեթոդ՝ գաղտնագրման մեթոդ:

Կոդավորման մեթոդ

Մենք կարգավորում ենք մեր սերվերները և խորհուրդ ենք տալիս օգտագործել chacha20-ietf-poly1305 AEAD ծածկագիրը, քանի որ դա գաղտնագրման ամենաուժեղ մեթոդն է: 

Եթե ​​կարգավորեք ձեր սեփական shadowsocks սերվերը, կարող եք ընտրել «chacha20-ietf-poly1305» կամ «aes-256-gcm»:

URI և QR կոդ

Shadowsocks-ը Android/IOS-ի համար նաև ընդունում է BASE64 կոդավորված URI ձևաչափի կազմաձևեր.

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

 

Պարզ URI-ն պետք է լինի՝ ss://method:password@hostname:port

Վերոնշյալ URI-ը չի հետևում RFC3986-ին: Գաղտնաբառն այս դեպքում պետք է լինի պարզ տեքստ, ոչ թե տոկոսային կոդավորված:



Օրինակ՝ մենք օգտագործում ենք 192.168.100.1:8888 սերվեր օգտագործելով bf-cfb գաղտնագրման եղանակը և գաղտնաբառը փորձարկում/!@#:

 

Հետո՝ պարզ URI-ով ss://bf-cfb:test/!@#:@192.168.100.1:8888, մենք կարող ենք ստեղծել BASE64 կոդավորված URI. 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Այս URI-ները կազմակերպելու և նույնականացնելու համար կարող եք BASE64 կոդավորված տողից հետո պիտակ ավելացնել.

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Դիմելով

Shadowsocks-ն օգտագործում է SOCKS5 հասցեի ձևաչափում հայտնաբերված հասցեները.

[1 բայթ տիպ] [փոփոխական երկարությամբ հոսթ] [2 բայթ պորտ]

 

Ահա սահմանված հասցեների տեսակները.

  • 0x01. հոսթը 4 բայթանոց IPv4 հասցե է:
  • 0x03. host-ը փոփոխական երկարության տող է, որը սկսվում է 1 բայթ երկարությամբ, որին հաջորդում է առավելագույնը 255 բայթ տիրույթի անուն:
  • 0x04. հոսթը 16 բայթանոց IPv6 հասցե է:

 

Նավահանգստի համարը 2 բայթ մեծ էնդյան անստորագիր ամբողջ թիվ է:

TCP

ss-local հաճախորդը նախաձեռնում է միացում ss-remote-ի հետ՝ ուղարկելով գաղտնագրված տվյալներ՝ սկսած թիրախային հասցեից, որին հաջորդում են բեռնաթափման տվյալները: Կոդավորումը տարբեր կլինի՝ կախված օգտագործվող ծածկագրից:

[նպատակային հասցե]

ss-remote-ը ստանում է կոդավորված տվյալները, այնուհետև վերծանում և վերլուծում է թիրախային հասցեն: Այնուհետև այն ստեղծում է նոր TCP կապ դեպի թիրախ և ուղարկում է օգտակար բեռնվածության տվյալները: ss-remote-ը պատասխան է ստանում թիրախից, այնուհետև գաղտնագրում է տվյալները և այն հետ է ուղարկում ss-local, մինչև այն անջատվի:

Խճճվածության նպատակով տեղական և հեռակառավարման սարքերը պետք է ուղարկեն ձեռքսեղմման տվյալները առաջին փաթեթում որոշակի օգտակար բեռով:

UDP

ss-local-ն ուղարկում է գաղտնագրված տվյալների փաթեթը, որը պարունակում է թիրախային հասցեն և օգտակար բեռը ss-remote:

[նպատակային հասցե]

Կոդավորված փաթեթը ստանալուց հետո ss-remote-ը վերծանում և վերլուծում է թիրախային հասցեն: Այնուհետև այն ուղարկում է նոր տվյալների փաթեթ՝ օգտակար բեռով դեպի թիրախ: ss-remote-ը ստանում է տվյալների փաթեթները թիրախից և նախադրում է թիրախային հասցեն յուրաքանչյուր փաթեթի օգտակար բեռին: Կոդավորված պատճենները հետ են ուղարկվում ss-local-ին:

[նպատակային հասցե]

Այս գործընթացը կարող է զուգորդվել դեպի ss-remote, որը կատարում է ցանցային հասցեի թարգմանություն ss-local-ի համար:

Սկսեք ձեր 5-օրյա անվճար փորձաշրջանը