शॅडोसॉक्स दस्तऐवजीकरण

Shadowsocks कॉन्फिगरेशन स्वरूप

फाइल कॉन्फिगर करा

Shadowsocks JSON फॉरमॅट कॉन्फिगरेशन घेते:

{

    "सर्व्हर":"my_server_ip",

    "सर्व्हर_पोर्ट":8388,

    "स्थानिक_पोर्ट":1080,

    "पासवर्ड":"बरफू!",

    "पद्धत":"chacha20-ietf-poly1305"

}

JSON स्वरूप

  • सर्व्हर: तुमचे होस्टनाव किंवा सर्व्हर IP (IPv4/IPv6).
  • सर्व्हर_पोर्ट: सर्व्हर पोर्ट क्रमांक.
  • local_port: स्थानिक पोर्ट क्रमांक.
  • पासवर्ड: ट्रान्सफर एन्क्रिप्ट करण्यासाठी वापरला जाणारा पासवर्ड.
  • पद्धत: एनक्रिप्शन पद्धत.

एनक्रिप्शन पद्धत

आम्ही आमचे सर्व्हर कॉन्फिगर करतो आणि शिफारस करतो की तुम्ही chacha20-ietf-poly1305 AEAD सायफर वापरा कारण ती एन्क्रिप्शनची सर्वात मजबूत पद्धत आहे. 

तुमचा स्वतःचा shadowsocks सर्व्हर कॉन्फिगर करत असल्यास, तुम्ही “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

 

या URI ला व्यवस्थापित करण्यात आणि ओळखण्यात मदत करण्यासाठी, तुम्ही BASE64 एन्कोड केलेल्या स्ट्रिंग नंतर टॅग जोडू शकता:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

पत्ते

Shadowsocks SOCKS5 अॅड्रेस फॉरमॅटमध्ये सापडलेले पत्ते वापरतात:

[1-बाइट प्रकार][व्हेरिएबल-लांबीचा होस्ट][2-बाइट पोर्ट]

 

येथे पत्त्याचे प्रकार परिभाषित केले आहेत:

  • 0x01 : होस्ट हा 4-बाइटचा IPv4 पत्ता आहे.
  • 0x03 : होस्ट ही व्हेरिएबल लांबीची स्ट्रिंग आहे, 1-बाइट लांबीने सुरू होते, त्यानंतर कमाल 255-बाइट डोमेन नाव असते.
  • 0x04 : होस्ट हा 16-बाइटचा IPv6 पत्ता आहे.

 

पोर्ट क्रमांक हा 2-बाइट मोठा-एंडियन अस्वाक्षरित पूर्णांक आहे.

टीसीपी

ss-स्थानिक क्लायंट पेलोड डेटासह लक्ष्य पत्त्यापासून सुरू होणारा एनक्रिप्टेड डेटा पाठवून ss-रिमोटशी कनेक्शन सुरू करतो. वापरलेल्या सायफरवर अवलंबून एनक्रिप्शन वेगळे असेल.

[लक्ष्य पत्ता][पेलोड]

ss-रिमोट एनक्रिप्ट केलेला डेटा प्राप्त करतो, नंतर लक्ष्य पत्ता डिक्रिप्ट आणि पार्स करतो. मग ते लक्ष्यासाठी नवीन TCP कनेक्शन तयार करते आणि पेलोड डेटा त्याकडे अग्रेषित करते. ss-remote ला टार्गेटकडून प्रत्युत्तर प्राप्त होते नंतर डेटा कूटबद्ध करते आणि तो डिस्कनेक्ट होईपर्यंत तो परत ss-local वर पाठवतो.

अस्पष्ट हेतूंसाठी, स्थानिक आणि रिमोटने पहिल्या पॅकेटमध्ये काही पेलोडसह हँडशेक डेटा पाठवला पाहिजे.

UDP

ss-local लक्ष्य पत्ता आणि पेलोड असलेले एनक्रिप्टेड डेटा पॅकेट ss-रिमोटवर पाठवते.

[लक्ष्य पत्ता][पेलोड]

एनक्रिप्टेड पॅकेट प्राप्त झाल्यावर, ss-रिमोट लक्ष्य पत्ता डिक्रिप्ट आणि पार्स करते. ते नंतर लक्ष्यावर पेलोडसह एक नवीन डेटा पॅकेट पाठवते. ss-रिमोट लक्ष्याकडून डेटा पॅकेट्स प्राप्त करतो आणि प्रत्येक पॅकेटमधील पेलोडमध्ये लक्ष्य पत्ता प्रीपेंड करतो. एनक्रिप्ट केलेल्या प्रती ss-लोकलला परत पाठवल्या जातात.

[लक्ष्य पत्ता][पेलोड]

ही प्रक्रिया ss-remote वर ss-local साठी नेटवर्क अॅड्रेस ट्रान्सलेशन करून उकडली जाऊ शकते.

तुमची 5-दिवसांची विनामूल्य चाचणी सुरू करा