Shadowsocks hujjatlari
navigatsiya
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.