Shadowsocks დოკუმენტაცია

Shadowsocks კონფიგურაციის ფორმატი

ფაილის კონფიგურაცია

Shadowsocks იღებს JSON ფორმატის კონფიგურაციას:

{

    "სერვერი": "my_server_ip",

    "server_port":8388,

    "local_port": 1080,

    "პაროლი": "ბარფუ!",

    "მეთოდი": "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 for 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: ჰოსტი არის ცვლადი სიგრძის სტრიქონი, დაწყებული 1 ბაიტი სიგრძით, რასაც მოჰყვება მაქსიმუმ 255 ბაიტი დომენის სახელი.
  • 0x04: ჰოსტი არის 16 ბაიტიანი IPv6 მისამართი.

 

პორტის ნომერი არის 2-ბაიტი დიდი-ენდიანის ხელმოუწერელი მთელი რიცხვი.

TCP

ss-local კლიენტი იწყებს კავშირს ss-remote-თან დაშიფრული მონაცემების გაგზავნით, დაწყებული სამიზნე მისამართით, რასაც მოჰყვება payload მონაცემები. დაშიფვრა განსხვავებული იქნება გამოყენებული შიფრის მიხედვით.

[სამიზნე მისამართი]

ss-remote იღებს დაშიფრულ მონაცემებს, შემდეგ შიფრავს და აანალიზებს სამიზნე მისამართს. შემდეგ ის ქმნის ახალ TCP კავშირს სამიზნესთან და გადასცემს მასზე დატვირთვის მონაცემებს. ss-remote იღებს პასუხს სამიზნედან, შემდეგ შიფრავს მონაცემებს და აგზავნის უკან ss-local-ზე, სანამ არ გათიშულია.

ბუნდოვანი მიზნებისათვის, ლოკალურმა და დისტანციურმა უნდა გაგზავნონ ხელის ჩამორთმევის მონაცემები გარკვეული დატვირთვით პირველ პაკეტში.

UDP

ss-local აგზავნის დაშიფრულ მონაცემთა პაკეტს, რომელიც შეიცავს სამიზნე მისამართს და დატვირთვას ss-remote-ზე.

[სამიზნე მისამართი]

დაშიფრული პაკეტის მიღების შემდეგ, ss-remote გაშიფვრავს და აანალიზებს სამიზნე მისამართს. შემდეგ ის აგზავნის მონაცემთა ახალ პაკეტს დატვირთვით სამიზნეზე. ss-remote იღებს მონაცემთა პაკეტებს სამიზნედან და აწვდის სამიზნე მისამართს თითოეულ პაკეტში დატვირთვას. დაშიფრული ასლები იგზავნება უკან ss-local-ში.

[სამიზნე მისამართი]

ეს პროცესი შეიძლება დაიხარჯოს ss-დისტანციურად, რომელიც ასრულებს ქსელის მისამართის თარგმნას ss-local-ისთვის.

დაიწყეთ თქვენი 5-დღიანი უფასო საცდელი ვერსია