Shadowsocks कागजात

Shadowsocks कन्फिगरेसन ढाँचा

कन्फिगर फाइल

Shadowsocks ले JSON ढाँचा कन्फिगरेसनहरू लिन्छ:

{

    "सर्भर":"my_server_ip",

    "सर्भर_पोर्ट": 8388,

    "local_port":1080,

    "पासवर्ड":"barfoo!",

    "विधि":"chacha20-ietf-poly1305"

}

JSON ढाँचा

  • सर्भर: तपाईंको होस्टनाम वा सर्भर IP (IPv4/IPv6)।
  • सर्भर_पोर्ट: सर्भर पोर्ट नम्बर।
  • local_port: स्थानीय पोर्ट नम्बर।
  • पासवर्ड: ट्रान्सफर इन्क्रिप्ट गर्न प्रयोग गरिने पासवर्ड।
  • विधि: गुप्तिकरण विधि।

गुप्तिकरण विधि

हामी हाम्रा सर्भरहरू कन्फिगर गर्छौं र तपाईंलाई chacha20-ietf-poly1305 AEAD साइफर प्रयोग गर्न सिफारिस गर्छौं किनभने यो गुप्तिकरणको सबैभन्दा बलियो विधि हो। 

यदि तपाइँको आफ्नै shadowsocks सर्भर कन्फिगर गर्दै हुनुहुन्छ भने, तपाइँ "chacha20-ietf-poly1305" वा "aes-256-gcm" बाट छनौट गर्न सक्नुहुन्छ।

URI र QR कोड

एन्ड्रोइड / 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 ठेगाना ढाँचामा पाइने ठेगानाहरू प्रयोग गर्दछ:

[१-बाइट प्रकार][चर-लम्बाइ होस्ट][२-बाइट पोर्ट]

 

यहाँ परिभाषित ठेगाना प्रकारहरू छन्:

  • 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-local मा फिर्ता पठाइन्छ।

[लक्ष्य ठेगाना] [भुगतान]

यो प्रक्रिया ss-local को लागि नेटवर्क ठेगाना अनुवाद प्रदर्शन ss-remote मा उबलिएको हुन सक्छ।

तपाईंको 5-दिनको नि:शुल्क परीक्षण सुरु गर्नुहोस्