ഷാഡോസോക്സ് ഡോക്യുമെന്റേഷൻ
നാവിഗേഷൻ
Shadowsocks കോൺഫിഗറേഷൻ ഫോർമാറ്റ്
ഫയൽ കോൺഫിഗർ ചെയ്യുക
Shadowsocks JSON ഫോർമാറ്റ് കോൺഫിഗറേഷനുകൾ എടുക്കുന്നു:
{
“സെർവർ”:”my_server_ip”,
“server_port”:8388,
"ലോക്കൽ_പോർട്ട്":1080,
“പാസ്വേഡ്”:”ബാർഫൂ!”,
“രീതി”:”chacha20-ietf-poly1305″
}
JSON ഫോർമാറ്റ്
- സെർവർ: നിങ്ങളുടെ ഹോസ്റ്റ്നാമം അല്ലെങ്കിൽ സെർവർ IP (IPv4/IPv6).
- server_port: സെർവർ പോർട്ട് നമ്പർ.
- ലോക്കൽ_പോർട്ട്: ലോക്കൽ പോർട്ട് നമ്പർ.
- പാസ്വേഡ്: കൈമാറ്റം എൻക്രിപ്റ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഒരു രഹസ്യവാക്ക്.
- രീതി: എൻക്രിപ്ഷൻ രീതി.
എൻക്രിപ്ഷൻ രീതി
ഞങ്ങൾ ഞങ്ങളുടെ സെർവറുകൾ കോൺഫിഗർ ചെയ്യുകയും നിങ്ങൾ chacha20-ietf-poly1305 AEAD സൈഫർ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുകയും ചെയ്യുന്നു, കാരണം ഇത് എൻക്രിപ്ഷന്റെ ഏറ്റവും ശക്തമായ രീതിയാണ്.
നിങ്ങളുടെ സ്വന്തം shadowsocks സെർവർ കോൺഫിഗർ ചെയ്യുകയാണെങ്കിൽ, "chacha20-ietf-poly1305" അല്ലെങ്കിൽ "aes-256-gcm" എന്നിവയിൽ നിന്ന് നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.
URI & QR കോഡ്
ആൻഡ്രോയിഡ് / ഐഒഎസിനുള്ള ഷാഡോസോക്കുകൾ BASE64 എൻകോഡ് ചെയ്ത URI ഫോർമാറ്റ് കോൺഫിഗറേഷനുകളും എടുക്കുന്നു:
ss://BASE64-എൻകോഡ് ചെയ്ത-സ്ട്രിങ്ങ്-പാഡിംഗ് ഇല്ലാതെ#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
അഭിസംബോധന
SOCKS5 വിലാസ ഫോർമാറ്റിൽ കാണുന്ന വിലാസങ്ങൾ Shadowsocks ഉപയോഗിക്കുന്നു:
[1-ബൈറ്റ് തരം][വേരിയബിൾ-ലെംഗ്ത്ത് ഹോസ്റ്റ്][2-ബൈറ്റ് പോർട്ട്]
നിർവചിച്ചിരിക്കുന്ന വിലാസ തരങ്ങൾ ഇതാ:
- 0x01 : ഹോസ്റ്റ് ഒരു 4-ബൈറ്റ് IPv4 വിലാസമാണ്.
- 0x03 : ഹോസ്റ്റ് എന്നത് ഒരു വേരിയബിൾ ലെങ്ത് സ്ട്രിംഗ് ആണ്, 1-ബൈറ്റ് ദൈർഘ്യത്തിൽ ആരംഭിക്കുന്നു, തുടർന്ന് പരമാവധി 255-ബൈറ്റ് ഡൊമെയ്ൻ നാമം.
- 0x04 : ഹോസ്റ്റ് ഒരു 16-ബൈറ്റ് IPv6 വിലാസമാണ്.
പോർട്ട് നമ്പർ 2-ബൈറ്റ് ബിഗ്-എൻഡിയൻ ഒപ്പിടാത്ത പൂർണ്ണസംഖ്യയാണ്.
TCP
ss-ലോക്കൽ ക്ലയന്റ്, ടാർഗെറ്റ് വിലാസത്തിൽ തുടങ്ങി പേലോഡ് ഡാറ്റയ്ക്ക് ശേഷം എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ അയച്ചുകൊണ്ട് ss-remote-ലേക്ക് ഒരു കണക്ഷൻ ആരംഭിക്കുന്നു. ഉപയോഗിക്കുന്ന സൈഫറിനെ ആശ്രയിച്ച് എൻക്രിപ്ഷൻ വ്യത്യസ്തമായിരിക്കും.
[ലക്ഷ്യ വിലാസം][പേലോഡ്]
ss-റിമോട്ട് എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ സ്വീകരിക്കുന്നു, തുടർന്ന് ലക്ഷ്യ വിലാസം ഡീക്രിപ്റ്റ് ചെയ്യുകയും പാഴ്സ് ചെയ്യുകയും ചെയ്യുന്നു. തുടർന്ന് അത് ടാർഗെറ്റിലേക്ക് ഒരു പുതിയ TCP കണക്ഷൻ സൃഷ്ടിക്കുകയും പേലോഡ് ഡാറ്റ അതിലേക്ക് കൈമാറുകയും ചെയ്യുന്നു. ss-remote-ന് ടാർഗെറ്റിൽ നിന്ന് ഒരു മറുപടി ലഭിക്കുന്നു, തുടർന്ന് ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്യുകയും അത് വിച്ഛേദിക്കപ്പെടുന്നതുവരെ ss-local-ലേക്ക് തിരികെ കൈമാറുകയും ചെയ്യുന്നു.
അവ്യക്തമായ ആവശ്യങ്ങൾക്കായി, ലോക്കലും റിമോട്ടും ആദ്യ പാക്കറ്റിൽ കുറച്ച് പേലോഡ് ഉപയോഗിച്ച് ഹാൻഡ്ഷേക്ക് ഡാറ്റ അയയ്ക്കണം.
UDP
ടാർഗെറ്റ് വിലാസവും പേലോഡും അടങ്ങുന്ന എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ പാക്കറ്റ് ss-local ss-remote-ലേക്ക് അയയ്ക്കുന്നു.
[ലക്ഷ്യ വിലാസം][പേലോഡ്]
എൻക്രിപ്റ്റ് ചെയ്ത പാക്കറ്റ് ലഭിച്ചുകഴിഞ്ഞാൽ, ss-remote ലക്ഷ്യ വിലാസം ഡീക്രിപ്റ്റ് ചെയ്യുകയും പാഴ്സ് ചെയ്യുകയും ചെയ്യുന്നു. തുടർന്ന് ടാർഗെറ്റിലേക്ക് പേലോഡിനൊപ്പം ഒരു പുതിയ ഡാറ്റ പാക്കറ്റ് അയയ്ക്കുന്നു. ss-remote ടാർഗെറ്റിൽ നിന്ന് ഡാറ്റ പാക്കറ്റുകൾ സ്വീകരിക്കുകയും ഓരോ പാക്കറ്റിലെ പേലോഡിലേക്ക് ടാർഗെറ്റ് വിലാസം മുൻകൂട്ടി നൽകുകയും ചെയ്യുന്നു. എൻക്രിപ്റ്റ് ചെയ്ത പകർപ്പുകൾ ss-local-ലേക്ക് തിരികെ അയയ്ക്കുന്നു.
[ലക്ഷ്യ വിലാസം][പേലോഡ്]
ss-local-നായി നെറ്റ്വർക്ക് വിലാസ വിവർത്തനം നടത്തുന്ന ss-remote-ലേക്ക് ഈ പ്രക്രിയ തിളപ്പിക്കാവുന്നതാണ്.