Shadowsacks دستاويز
چر
Shadowsocks ٺاھ جوڙ فارميٽ
فائل ترتيب ڏيو
Shadowsocks JSON فارميٽ جون ترتيبون وٺي ٿو:
{
"سرور":"my_server_ip",
"سرور_پورٽ": 8388,
"local_port":1080,
"پاسورڊ":"barfoo!",
"طريقو": "chacha20-ietf-poly1305"
}
JSON فارميٽ
- سرور: توهان جو ميزبان نالو يا سرور IP (IPv4/IPv6).
- سرور_پورٽ: سرور پورٽ نمبر.
- local_port: مقامي پورٽ نمبر.
- پاسورڊ: هڪ پاسورڊ منتقلي کي انڪرپٽ ڪرڻ لاء استعمال ڪيو ويندو آهي.
- طريقو: انڪرپشن جو طريقو.
انڪرپشن جو طريقو
اسان اسان جي سرورن کي ترتيب ڏيون ٿا ۽ سفارش ڪريون ٿا ته توھان استعمال ڪريو chacha20-ietf-poly1305 AEAD cipher ڇاڪاڻ ته اھو انڪريپشن جو مضبوط طريقو آھي.
جيڪڏهن توهان پنهنجي شيڊساڪس سرور کي ترتيب ڏئي رهيا آهيو، توهان يا ته "chacha20-ietf-poly1305" يا "aes-256-gcm" مان چونڊي سگهو ٿا.
URI ۽ QR ڪوڊ
Android / IOS لاءِ Shadowsocks پڻ 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
انهن URIs کي منظم ۽ سڃاڻڻ ۾ مدد ڪرڻ لاءِ، توهان BASE64 انڪوڊ ٿيل اسٽرنگ کان پوءِ هڪ ٽيگ شامل ڪري سگهو ٿا:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
ايڊريس
Shadowsocks SOCKS5 ايڊريس فارميٽ ۾ مليل ايڊريس استعمال ڪري ٿو:
[1-بائيٽ قسم] [متغير ڊگھائي ميزبان] [2-بائيٽ پورٽ]
هتي بيان ڪيل پتي جا قسم آهن:
- 0x01 : ميزبان هڪ 4-byte IPv4 پتو آهي.
- 0x03 : هوسٽ هڪ متغير ڊگھائي اسٽرنگ آهي، جيڪا 1-بائيٽ ڊگھائي سان شروع ٿيندي، ان کان پوءِ وڌ ۾ وڌ 255-بائيٽ ڊومين جو نالو.
- 0x04 : ميزبان هڪ 16-byte IPv6 پتو آهي.
پورٽ نمبر هڪ 2-بائيٽ وڏو-انڊين غير دستخط ٿيل عدد آهي.
ٽي پي
ايس ايس-مقامي ڪلائنٽ ss-ريموٽ سان ڪنيڪشن شروع ڪري ٿو انڪرپٽ ٿيل ڊيٽا موڪلڻ سان شروع ٿيندڙ ٽارگيٽ ايڊريس کان پوءِ پيل لوڊ ڊيٽا. انڪريپشن مختلف هوندي استعمال ٿيل سائفر جي لحاظ کان.
[هدف پتو] [پيلو لوڊ]
ss-remote انڪرپٽ ٿيل ڊيٽا وصول ڪري ٿو، پوءِ ٽارگيٽ ايڊريس کي ڊيڪرپٽ ۽ پارس ڪري ٿو. ان کان پوء اهو ٽارگيٽ ڏانهن هڪ نئون TCP ڪنيڪشن ٺاهي ٿو ۽ ان ڏانهن پيل لوڊ ڊيٽا کي اڳتي وڌائي ٿو. ss-remote ٽارگيٽ مان هڪ جواب وصول ڪري ٿو پوءِ ڊيٽا کي انڪرپٽ ڪري ٿو ۽ ان کي واپس ss-local ڏانهن موڪلي ٿو جيستائين اهو ڊسڪنيڪٽ نه ٿئي.
مبهم مقصدن لاءِ، مقامي ۽ ريموٽ کي پهرين پيڪيٽ ۾ ڪجهه پيل لوڊ سان هٿ ملائڻ واري ڊيٽا موڪلڻ گهرجي.
يو ايس پي
ss-local انڪرپٽ ٿيل ڊيٽا پيڪٽ موڪلي ٿو جنهن ۾ ٽارگيٽ ايڊريس ۽ پيل لوڊ شامل آهي ss-remote ڏانهن.
[هدف پتو] [پيلو لوڊ]
هڪ دفعو انڪرپٽ ٿيل پيڪٽ حاصل ڪيو ويو آهي، ايس ايس-ريموٽ ڊيڪرپٽ ۽ ٽارگيٽ ايڊريس کي پارس ڪري ٿو. اهو وري هڪ نئون ڊيٽا پيڪٽ موڪليندو آهي جنهن سان ٽارگيٽ ڏانهن پيل لوڊ. ss-remote ٽارگيٽ مان ڊيٽا پيڪٽس وصول ڪري ٿو ۽ ٽارگيٽ ايڊريس کي هر پيڪٽ ۾ پيل لوڊ ڪرڻ لاءِ اڳڀرائي ڪري ٿو. اينڪرپٽ ٿيل ڪاپيون واپس موڪليا وڃن ٿا ss-local.
[هدف پتو] [پيلو لوڊ]
اهو عمل ss-remote کي ss-local لاءِ نيٽ ورڪ ايڊريس جي ترجمي کي انجام ڏيڻ لاءِ جوڙي سگهجي ٿو.