Shadowsocks hujjatlari

Shadowsocks konfiguratsiya formati

Faylni sozlash

Shadowsocks JSON formati konfiguratsiyasini oladi:

{

    “server”:”mening_server_ip”,

    "server_port": 8388,

    "local_port": 1080,

    "parol":"barfoo!",

    "usul":"chacha20-ietf-poly1305"

}

JSON formati

  • server: host nomi yoki server IP (IPv4/IPv6).
  • server_port: server port raqami.
  • local_port: mahalliy port raqami.
  • parol: uzatishni shifrlash uchun ishlatiladigan parol.
  • usul: shifrlash usuli.

Shifrlash usuli

Biz serverlarimizni sozlaymiz va chacha20-ietf-poly1305 AEAD shifridan foydalanishni tavsiya qilamiz, chunki bu shifrlashning eng kuchli usuli. 

Shadowsocks serveringizni sozlasangiz, “chacha20-ietf-poly1305” yoki “aes-256-gcm” dan birini tanlashingiz mumkin.

URI va QR kodi

Android / IOS uchun Shadowsocks shuningdek, BASE64 kodlangan URI format konfiguratsiyasini oladi:

ss://BASE64-KODLANGAN-STRING-TO‘LDIRMASIZ#TAG

 

Oddiy URI quyidagicha bo'lishi kerak: ss://method:password@hostname:port

Yuqoridagi URI RFC3986 ga amal qilmaydi. Bu holda parol foizli kodlangan emas, oddiy matn bo'lishi kerak.



Misol: Biz 192.168.100.1:8888 serverdan foydalanmoqdamiz. foydalanish bf-cfb shifrlash usuli va parol test/!@#:

 

Keyin, oddiy URI bilan ss://bf-cfb:test/!@#:@192.168.100.1:8888, biz BASE64 kodlangan URI ni yaratishimiz mumkin: 

 

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

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Ushbu URI-larni tartibga solish va aniqlashga yordam berish uchun BASE64 kodlangan qatordan keyin teg qo'shishingiz mumkin:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

Manzil berish

Shadowsocks SOCKS5 manzil formatida joylashgan manzillardan foydalanadi:

[1-bayt turi][oʻzgaruvchan uzunlikdagi xost][2 baytlik port]

 

Bu erda manzil turlari aniqlangan:

  • 0x01: xost 4 baytli IPv4 manzilidir.
  • 0x03 : xost - bu 1 bayt uzunlikdan boshlanadigan, keyin esa maksimal 255 baytlik domen nomidan iborat o'zgaruvchan uzunlikdagi qator.
  • 0x04: xost 16 baytli IPv6 manzilidir.

 

Port raqami 2 baytli katta endian belgisiz butun sondir.

TCP

ss-local mijoz ss-remote-ga ulanishni maqsad manzildan boshlab, undan keyin foydali yuk ma'lumotlari bilan shifrlangan ma'lumotlarni yuborish orqali boshlaydi. Shifrlash ishlatilgan shifrga qarab har xil bo'ladi.

[maqsadli manzil][yuk]

Masofadan boshqarish pulti shifrlangan ma'lumotlarni oladi, so'ngra maqsad manzilni shifrlaydi va tahlil qiladi. Keyin u maqsadga yangi TCP ulanishini yaratadi va foydali yuk ma'lumotlarini unga yo'naltiradi. ss-remote maqsaddan javob oladi, so'ngra ma'lumotlarni shifrlaydi va uni uzilgunga qadar ss-local-ga qaytaradi.

Xafagarchilik uchun mahalliy va masofaviy qo'l siqish ma'lumotlarini birinchi paketdagi bir oz foydali yuk bilan yuborishi kerak.

UDP

ss-local maqsadli manzil va foydali yukni o'z ichiga olgan shifrlangan ma'lumotlar paketini ss-remote-ga yuboradi.

[maqsadli manzil][yuk]

Shifrlangan paket qabul qilingandan so'ng, ss-remote maqsad manzilni parolini ochadi va tahlil qiladi. Keyin u maqsadli yuk bilan yangi ma'lumotlar paketini yuboradi. ss-remote maqsaddan ma'lumotlar paketlarini oladi va maqsad manzilini har bir paketdagi foydali yukga qo'shib qo'yadi. Shifrlangan nusxalar ss-local-ga qaytariladi.

[maqsadli manzil][yuk]

Bu jarayon ss-local uchun tarmoq manzilini tarjima qilish orqali ss-remote-ga tushirilishi mumkin.

5 kunlik bepul sinov muddatini boshlang