ឯកសារ Shadowsocks

ទម្រង់កំណត់រចនាសម្ព័ន្ធ Shadowsocks

កំណត់រចនាសម្ព័ន្ធឯកសារ

Shadowsocks ទទួលយកការកំណត់ទម្រង់ JSON៖

{

    "ម៉ាស៊ីនមេ": "my_server_ip",

    "server_port": 8388,

    "local_port": 1080,

    "ពាក្យសម្ងាត់": "barfoo!",

    "វិធីសាស្រ្ត":"chacha20-ietf-poly1305"

}

ទម្រង់ JSON

  • ម៉ាស៊ីនមេ៖ ឈ្មោះម៉ាស៊ីន ឬ IP ម៉ាស៊ីនមេរបស់អ្នក (IPv4/IPv6) ។
  • server_port៖ លេខច្រកម៉ាស៊ីនមេ។
  • local_port៖ លេខច្រកក្នុងស្រុក។
  • ពាក្យ​សម្ងាត់៖ ជា​ពាក្យ​សម្ងាត់​ប្រើ​ដើម្បី​អ៊ិនគ្រីប​ការ​ផ្ទេរ​ប្រាក់។
  • វិធីសាស្រ្ត៖ វិធីសាស្ត្រអ៊ិនគ្រីប។

វិធីសាស្រ្តអ៊ិនគ្រីប

យើងកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេរបស់យើង ហើយណែនាំឱ្យអ្នកប្រើលេខកូដសម្ងាត់ chacha20-ietf-poly1305 AEAD ព្រោះវាជាវិធីសាស្ត្រខ្លាំងបំផុតនៃការអ៊ិនគ្រីប។ 

ប្រសិនបើកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេ shadowsocks ផ្ទាល់ខ្លួនរបស់អ្នក អ្នកអាចជ្រើសរើសពី "chacha20-ietf-poly1305" ឬ "aes-256-gcm" ។

URI & QR Code

Shadowsocks សម្រាប់ប្រព័ន្ធប្រតិបត្តិការ Android / IOS ក៏ទទួលយកការកំណត់រចនាសម្ព័ន្ធ URI ដែលបានអ៊ិនកូដ BASE64៖

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យើងអាចបង្កើត URI ដែលបានអ៊ិនកូដ BASE64៖ 

 

> 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៖ ម៉ាស៊ីនគឺជាអាសយដ្ឋាន IPv4 4 បៃ។
  • 0x03 : ម៉ាស៊ីនគឺជាខ្សែអក្សរប្រវែងអថេរ ចាប់ផ្តើមដោយប្រវែង 1 បៃ អមដោយឈ្មោះដែនអតិបរមា 255 បៃ។
  • 0x04៖ ម៉ាស៊ីនគឺជាអាសយដ្ឋាន IPv16 6 បៃ។

 

លេខច្រកគឺជាចំនួនគត់ដែលមិនបានចុះហត្ថលេខា 2 បៃធំ។

TCP

ម៉ាស៊ីនភ្ញៀវ ss-local ផ្តួចផ្តើមការតភ្ជាប់ទៅ ss-remote ដោយផ្ញើទិន្នន័យដែលបានអ៊ិនគ្រីបដោយចាប់ផ្តើមជាមួយអាសយដ្ឋានគោលដៅ បន្តដោយទិន្នន័យបន្ទុក។ ការ​បំប្លែង​កូដ​នឹង​ខុស​គ្នា​អាស្រ័យ​លើ​លេខ​សម្ងាត់​ដែល​បាន​ប្រើ។

[អាសយដ្ឋានគោលដៅ][បន្ទុក]

ss-remote ទទួលទិន្នន័យដែលបានអ៊ិនគ្រីប បន្ទាប់មក ឌិគ្រីប និងញែកអាសយដ្ឋានគោលដៅ។ បន្ទាប់មកវាបង្កើតការភ្ជាប់ TCP ថ្មីទៅកាន់គោលដៅ ហើយបញ្ជូនទិន្នន័យបន្ទុកទៅវា។ ss-remote ទទួលបានការឆ្លើយតបពីគោលដៅ បន្ទាប់មកអ៊ិនគ្រីបទិន្នន័យ និងបញ្ជូនវាត្រឡប់ទៅ ss-local វិញរហូតដល់វាត្រូវបានផ្តាច់។

សម្រាប់គោលបំណងលាក់បាំង មូលដ្ឋាន និងពីចម្ងាយគួរតែផ្ញើទិន្នន័យចាប់ដៃជាមួយនឹងបន្ទុកមួយចំនួននៅក្នុងកញ្ចប់ព័ត៌មានដំបូង។

UDP

ss-local ផ្ញើកញ្ចប់ទិន្នន័យដែលបានអ៊ិនគ្រីបដែលមានអាសយដ្ឋានគោលដៅ និងបន្ទុកទៅ ss-ពីចម្ងាយ។

[អាសយដ្ឋានគោលដៅ][បន្ទុក]

នៅពេលដែលបានទទួលកញ្ចប់ព័ត៌មានដែលបានអ៊ិនគ្រីប ss-remote ឌិគ្រីប និងញែកអាសយដ្ឋានគោលដៅ។ បន្ទាប់មកវាផ្ញើកញ្ចប់ទិន្នន័យថ្មីជាមួយនឹង payload ទៅកាន់គោលដៅ។ ss-remote ទទួលកញ្ចប់ទិន្នន័យពីគោលដៅ ហើយដាក់អាសយដ្ឋានគោលដៅជាមុនទៅនឹង payload ក្នុងកញ្ចប់នីមួយៗ។ ច្បាប់ចម្លងដែលបានអ៊ិនគ្រីបត្រូវបានបញ្ជូនទៅ ss-local វិញ។

[អាសយដ្ឋានគោលដៅ][បន្ទុក]

ដំណើរការនេះអាចត្រូវបានដាំឱ្យពុះរហូតដល់ ss-remote អនុវត្តការបកប្រែអាសយដ្ឋានបណ្តាញសម្រាប់ ss-local ។

ចាប់ផ្តើមការសាកល្បងឥតគិតថ្លៃរយៈពេល 5 ថ្ងៃរបស់អ្នក។