വിപരീത ടെതറിംഗ് ഫോണിന്റെ ട്രാഫിക്ക് ഒരു കമ്പ്യൂട്ടറിലേക്ക് മാറ്റി ആ കമ്പ്യൂട്ടറിന്റെ കണക്ഷനിലൂടെ പുറത്തേക്ക് കൊണ്ടുപോകുന്നു. USB കേബിൾ മാത്രം ഇത് ചെയ്യുന്നില്ല: ഫോണിന് അതിന്റെ റൂട്ടിംഗ് ഏറ്റെടുക്കുന്ന ക്യാപ്ചർ സേവനം വേണം, കമ്പ്യൂട്ടറിന് ആ പാക്കറ്റുകൾ മുന്നോട്ട് കൊണ്ടുപോകുന്ന റിലേ വേണം. പാതയിൽ നാല് ചാട്ടങ്ങളുണ്ട്: ആപ്ലിക്കേഷൻ, ഫോണിലെ ക്യാപ്ചർ, USB റിലേ, ഹോസ്റ്റിന്റെ പുറത്തേക്കുള്ള വഴി, ഓരോന്നിനും വ്യത്യസ്ത ഉടമയാണ്. ഈ റൺബുക്ക് ആ പാത നിർമ്മിക്കുന്നു, ഹോസ്റ്റ് VPN ശരിയായ സ്ഥലത്ത് വയ്ക്കുന്നു, ഫലം വിശ്വസിക്കുന്നതിന് മുൻപ് ഓരോ ചാട്ടവും പരിശോധിക്കുന്നു.

എന്തെങ്കിലും പ്രവർത്തിപ്പിക്കുന്നതിന് മുൻപ് ചാട്ടങ്ങൾ ഭൂപടത്തിൽ രേഖപ്പെടുത്തുക

ഓരോ ചാട്ടവും അതിന്റെ സ്വന്തം നയം പ്രയോഗിക്കുന്നു, അതിനാൽ ഒരറ്റത്ത് പ്രവർത്തിക്കുന്ന ഫലം മറ്റേ അറ്റത്തെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല. ആപ്ലിക്കേഷൻ ലക്ഷ്യവും റിസോൾവറും തിരഞ്ഞെടുക്കുന്നു, ക്യാപ്ചർ സേവനം ഏത് ട്രാഫിക് റിലേയിലേക്ക് പ്രവേശിക്കുമെന്ന് തീരുമാനിക്കുന്നു, റിലേ അത് ഹോസ്റ്റ് സോക്കറ്റുകളിലേക്ക് കൈമാറുന്നു, ഹോസ്റ്റിന്റെ റൂട്ടിംഗും VPN-ഉം ലക്ഷ്യം ഒടുവിൽ കാണുന്ന വിലാസം നിർണ്ണയിക്കുന്നു.

HopOwnerWhat it decides
Application requestThe appDestination, resolver, address family
Capture servicePhone VpnService appWhich traffic enters the relay at all
ADB relayHost processForwarding phone flows to host sockets
Host egressHost routing and VPNExit address and host policy

ഒരു സമയത്ത് ഒരു VPN സേവന ക്ലയന്റിന് മാത്രമേ ഫോണിന്റെ ക്യാപ്ചർ പങ്ക് വഹിക്കാൻ കഴിയൂ, അതിനാൽ രണ്ടാമത്തെ സാധാരണ VPN ആപ്പ് റിലേയുടെ മേൽ പാളിയായി വരുന്നില്ല. VPN കമ്പ്യൂട്ടറിനാണെങ്കിൽ, ക്യാപ്ചർ സേവനം ആ കമ്പ്യൂട്ടറിലേക്കുള്ള പ്രവേശന കണ്ണിയാണ്, ദൂര ടണൽ ഫലത്തെ ഇതിനകം സംരക്ഷിക്കുന്നു എന്നതിന്റെ തെളിവല്ല.

ഫോണിൽ സ്പർശിക്കുന്നതിന് മുൻപ് റിലേ തയ്യാറാക്കുക

Gnirehtet ഈ ശില്പശാസ്ത്രത്തിന്റെ രേഖപ്പെടുത്തിയ ഉദാഹരണമാണ്: ഫോണിൽ root ആവശ്യമില്ലാത്ത VPN സേവന ക്ലയന്റും ഹോസ്റ്റിൽ ADB വഴി കൊണ്ടുപോകുന്ന റിലേയും, IPv4-ന് മേൽ TCP-ഉം UDP-ഉം പിന്തുണയ്ക്കുന്നു. ഈ പ്രോജക്ട് ഇനി സജീവമായി പരിപാലിക്കുന്നില്ലെന്നും അതിന്റെ ശേഖരം പറയുന്നു, അതിനാൽ ഇതിനെ റഫറൻസ് ഡിസൈനും പരീക്ഷണശാലയ്ക്കുള്ള പ്രവർത്തിക്കുന്ന ഉപകരണവുമായി കാണുക, കൈകാര്യം ചെയ്യുന്ന ഫ്ലീറ്റിൽ സ്റ്റാൻഡേർഡാക്കാവുന്ന പിന്തുണയുള്ള ഉൽപ്പന്നമായി അല്ല.

adb devices
adb shell getprop ro.build.version.release
gnirehtet run

ആദ്യം adb devices പ്രവർത്തിപ്പിക്കുക. ഹോസ്റ്റിന്റെ ഡീബഗ്ഗിംഗ് കീ സ്വീകരിച്ചിട്ടില്ലാത്ത ഫോൺ അനധികൃതമായി റിപ്പോർട്ട് ചെയ്യപ്പെടുന്നു, ഉപകരണത്തിലെ അഭ്യർത്ഥന സ്വീകരിക്കുന്നത് വരെ റിലേ ബന്ധിപ്പിക്കില്ല. gnirehtet run ക്ലയന്റ് ഇൻസ്റ്റാൾ ചെയ്യുന്നു, റിലേ ആരംഭിക്കുന്നു, ക്യാപ്ചർ സജീവമാക്കുന്നു; ഘട്ടങ്ങൾ വേർതിരിക്കുന്ന പതിപ്പിൽ അതിനുപകരം രേഖപ്പെടുത്തിയ install, relay, start എന്ന ഉപകമാൻഡുകൾ ഉപയോഗിക്കുക.

ADB ആക്സസ് ഉപകരണ നിയന്ത്രണ ബന്ധമാണ്, നെറ്റ്വർക്ക് ക്രമീകരണമല്ല. നിങ്ങൾ നിയന്ത്രിക്കുന്ന കമ്പ്യൂട്ടറിന് മാത്രം അധികാരം നൽകുക, ജോലി തീരുമ്പോൾ ആ അധികാരം പിൻവലിക്കാൻ പദ്ധതിയിടുക.

ഹോസ്റ്റ് VPN വീണ്ടും പാതയിലേക്ക് കൊണ്ടുവരിക

റിലേ ഹോസ്റ്റിലെ സാധാരണ പ്രോസസ്സാണ്, അതിനാൽ അതിന്റെ തുടർബന്ധങ്ങൾ ഹോസ്റ്റിന്റെ റൂട്ടിംഗ് പട്ടിക പിന്തുടരുന്നു. പൂർണ്ണ ടണൽ പ്രൊഫൈൽ അവ കൊണ്ടുപോകുന്നു; വിഭജിത ടണൽ ചിലപ്പോൾ കൊണ്ടുപോകണമെന്നില്ല. ഹോസ്റ്റ് VPN ആപ്പ് അനുസരിച്ചുള്ള നിയന്ത്രണങ്ങൾ ഉപയോഗിക്കുന്നുവെങ്കിൽ റിലേ ബൈനറി അനുവദിച്ച കൂട്ടത്തിൽ ചേർക്കുക, അല്ലെങ്കിൽ ബ്രൗസർ സംരക്ഷിതമായി കാണുമ്പോഴും റിലേ ഭൗതിക ഇന്റർഫേസ് ഉപയോഗിക്കുന്നത് തുടരും.

ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay

ഹോസ്റ്റ് VPN ബന്ധിപ്പിക്കുന്നതിന് മുൻപും ശേഷവും ആദ്യ രണ്ട് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക. വിലാസം മാറുന്നില്ലെങ്കിൽ, ക്ലയന്റ് ജാലകം എന്ത് പറഞ്ഞാലും റിലേ ടണലിലല്ല. സ്വകാര്യ-മാത്ര ടണൽ പൊതു ലക്ഷ്യങ്ങളെ ഹോസ്റ്റിന്റെ സാധാരണ പുറത്തേക്കുള്ള വഴിയിൽ വിടുന്നു, അത് ചോർച്ച പോലെ തോന്നുമെങ്കിലും നിങ്ങൾ ക്രമീകരിച്ച നയമാണ്.

റിലേയിലൂടെ പോകുന്ന ട്രാഫിക്കിന് DNS ഹോസ്റ്റിൽ പരിഹരിക്കപ്പെടുന്നു, അതിനാൽ ഏത് സെർവർ പേരുകൾ കാണുന്നുവെന്ന് ഹോസ്റ്റിന്റെ റിസോൾവർ തീരുമാനിക്കുന്നു. ഫോണിലെ സ്വകാര്യ DNS ക്രമീകരണം റിലേയിലൂടെ കടക്കുന്നില്ല, ഫോൺ വശത്തെ റിസോൾവർ പരിശോധന ഹോസ്റ്റിന്റെ അന്വേഷണങ്ങൾ വിവരിക്കില്ല.

ഓരോ ചാട്ടവും വെവ്വേറെ പരിശോധിക്കുക

ഈ ക്രമത്തിൽ മൂന്ന് പരിശോധനകൾ: ഫോൺ റിലേയിൽ എത്തുന്നു, റിലേ ഹോസ്റ്റിന്റെ നയപ്രകാരം ലക്ഷ്യത്തിൽ എത്തുന്നു, ആപ്പ് ലക്ഷ്യം ശരിയായി പരിഹരിച്ച് ഉപയോഗിക്കുന്നു. പേജുകൾ വീണ്ടും ലോഡ് ചെയ്ത് ഊഹിക്കുന്നതിനുപകരം ആദ്യ പരാജയത്തിൽ നിർത്തുക.

adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V

കണക്റ്റിവിറ്റി ഡമ്പിലെ VPN നെറ്റ്വർക്ക് എൻട്രി ക്യാപ്ചർ സേവനം സജീവമാണെന്ന് കാണിക്കുന്നു; റിലേയുടെ സ്വന്തം ലോഗ് ഫ്ലോകൾ വരുന്നുണ്ടോ എന്ന് കാണിക്കുന്നു. അവയിൽ ഒന്നിൽ ഇല്ലാതിരിക്കുന്നത് പ്രശ്നത്തെ വ്യക്തമായി വിഭജിക്കുന്നു: ക്യാപ്ചർ ഇല്ലെങ്കിൽ ഫോൺ വശം, ഫ്ലോ ഇല്ലെങ്കിൽ ഹോസ്റ്റ് വശം.

ഹോസ്റ്റിൽ പ്രവർത്തിക്കുന്ന ബ്രൗസർ ഹോസ്റ്റ് ബ്രൗസറിന്റെ പാത തെളിയിക്കുന്നു, റിലേ പ്രോസസ്സിന്റെ പാതയല്ല. ഓരോന്നും റിപ്പോർട്ട് ചെയ്യുന്ന വിലാസങ്ങൾ താരതമ്യം ചെയ്യുക, സ്വകാര്യ വിഭവവും പൊതു പേജും പരിശോധിക്കുക, കാരണം സ്വകാര്യ-മാത്ര ടണലിന് ഒന്ന് റൂട്ട് ചെയ്യാനാകും മറ്റൊന്നല്ല.

പൊളിച്ചുമാറ്റി പരാജയ സ്വഭാവം തിരഞ്ഞെടുക്കുക

പിൻവലിക്കൽ റൺബുക്കിന്റെ ഭാഗമാണ്. റിലേ നിർത്തി നീക്കം ചെയ്യുക, ക്യാപ്ചർ ക്ലയന്റ് അൺഇൻസ്റ്റാൾ ചെയ്യുക, ജോലി തീരുമ്പോൾ ഫോണിന്റെ ഡെവലപ്പർ ഓപ്ഷനുകളിൽ നിന്ന് ഹോസ്റ്റിന്റെ ഡീബഗ്ഗിംഗ് അധികാരം പിൻവലിക്കുക.

gnirehtet stop
gnirehtet uninstall
adb kill-server

റിലേ അപ്രത്യക്ഷമാകുമ്പോൾ ഫോൺ എന്ത് ചെയ്യണമെന്ന് തീരുമാനിക്കുക. വ്യക്തമായ തിരഞ്ഞെടുപ്പില്ലാതെ അത് മൊബൈൽ ഡാറ്റയിലേക്ക് മടങ്ങി റൂട്ട് ചെയ്യാൻ ശ്രമിച്ച ട്രാഫിക് ചോരാനിടയുണ്ട്, അതിനാൽ കണക്ഷൻ തടയുന്ന സ്വഭാവമോ VPN നയമോ ബോധപൂർവം ക്രമീകരിച്ച് അതിനെ ആശ്രയിക്കുന്നതിന് മുൻപ് പൊളിച്ചുമാറ്റൽ പരിശോധിക്കുക.

അധികാരം നൽകിയ ഹോസ്റ്റ്, റിലേ പതിപ്പ്, ഹോസ്റ്റ് ടണൽ നയം, പൊളിച്ചുമാറ്റൽ ഘട്ടങ്ങൾ എന്നിവ രേഖപ്പെടുത്തുക. ആ രേഖയാണ് അടുത്ത വിപരീത ടെതറിംഗ് ക്രമീകരണത്തെ വീണ്ടും കണ്ടെത്തുന്ന മറ്റൊരു ഉച്ചയ്ക്കുശേഷത്തിനുപകരം ആവർത്തിക്കാവുന്നതാക്കുന്നത്.

അനുബന്ധ ലേഖനങ്ങൾ