Android ഹോട്ട്സ്പോട്ട് പോർട്ട് ഫോർവേഡിംഗ്: മൂന്ന് പ്രവേശന കേന്ദ്രങ്ങൾ
ഫോൺ, കാരിയർ പാത, VPN എക്സിറ്റ് എന്നിവ വ്യത്യസ്ത അതിരുകൾ വെളിപ്പെടുത്തുന്നു. ഏതെങ്കിലും പോർട്ട് തുറക്കുന്നതിനു മുൻപ് ലിസണിംഗ് സോക്കറ്റ് ഏത് യന്ത്രത്തിന്റേതാണെന്ന് കണ്ടെത്തുക.
നിങ്ങൾ ഹോട്ട്സ്പോട്ട് ഓണാക്കി, VPN ബന്ധിപ്പിച്ചു, ആപ്പിൽ ഒരു പോർട്ട് തുറന്നു, എന്നിട്ടും മറ്റ് ഉപകരണത്തിന് കണക്ട് ചെയ്യാനാകുന്നില്ല. ഇല്ലാത്തത് മിക്കവാറും പോർട്ട് തന്നെയല്ല. ലിസണിംഗ് സോക്കറ്റ് ഏത് യന്ത്രത്തിന്റേതാണ്, മറ്റ് ഉപകരണം ഏത് വിലാസത്തിൽ എത്തണം എന്നതാണ് യഥാർത്ഥ ചോദ്യം. ഞാൻ ഇത് ഫോണിൽ നിന്ന് പുറത്തേക്ക് പരിശോധിക്കുന്നു, കാരണം നിങ്ങൾ നോക്കുന്ന സ്ക്രീൻ മൂന്ന് പ്രവേശന കേന്ദ്രങ്ങളിൽ ഏതാണ് യഥാർത്ഥത്തിൽ പരീക്ഷിക്കുന്നതെന്ന് കാണിക്കുന്നു.
സേവനം യഥാർത്ഥത്തിൽ പ്രവർത്തിക്കുന്നിടത്ത് തുടങ്ങുക
കണക്ഷൻ സ്വീകരിക്കേണ്ട ആപ്പ് തുറന്ന് അതിന്റെ സ്റ്റാറ്റസ് പേജ് വായിക്കുക. ലിസൺ ചെയ്യുന്നു എന്ന് പറഞ്ഞാൽ, അത് ബന്ധിപ്പിച്ച വിലാസം എഴുതി വയ്ക്കുക; താഴെ പറയുന്ന മിക്ക കേസുകളും തീരുമാനിക്കുന്നത് ആ ഒരു വിശദാംശമാണ്. 127.0.0.1 ലേക്ക് ബന്ധിപ്പിച്ച ആപ്പ് ഫോണിൽ നിന്ന് മാത്രമേ എത്താനാകൂ, ഒരു ഹോട്ട്സ്പോട്ട് ക്ലയന്റോ കാരിയർ മാപ്പിംഗോ VPN എക്സിറ്റോ അത് മാറ്റില്ല.
തുടർന്ന് സേവനം ഏത് ഉപകരണത്തിലാണ് ഓടുന്നതെന്ന് ഉറപ്പാക്കുക. ഫോണിലാണെങ്കിൽ സോക്കറ്റ് ആ ആപ്പിന്റേതാണ്; ഹോട്ട്സ്പോട്ടിന് പിന്നിലെ ലാപ്ടോപ്പിലാണെങ്കിൽ ലിസണറും അതിന്റെ ഫയർവാളും ലാപ്ടോപ്പിന്റേതാണ്, ഫോൺ പാക്കറ്റുകൾ മാത്രം ഫോർവേഡ് ചെയ്യുന്നു. ഇവ വ്യത്യസ്ത ഉടമകളുള്ള വ്യത്യസ്ത ഡിസൈനുകളാണ്; ഇവ കൂട്ടിക്കലർത്തുന്നതാണ് ഒരിടത്ത് തുറന്ന പോർട്ട് മറ്റൊരിടത്ത് ഒന്നും ചെയ്യാത്തതിന് കാരണം.
ഡീബഗ് ചെയ്യാവുന്ന ബിൽഡിൽ adb shell /proc/net/tcp വഴി സോക്കറ്റുകൾ ലിസ്റ്റ് ചെയ്യാം, പക്ഷേ മിക്ക ആളുകൾക്കും ആപ്പിന്റെ സ്വന്തം സ്റ്റാറ്റസാണ് വിശ്വസനീയമായ ഉറവിടം. നിങ്ങൾ പ്രതീക്ഷിക്കാത്ത വിലാസത്തിൽ ആപ്പ് തുറന്ന സോക്കറ്റ് പരീക്ഷിക്കുന്ന കെണിയും ഇത് ഒഴിവാക്കുന്നു.
ആദ്യ പ്രവേശന കേന്ദ്രം: ഹോട്ട്സ്പോട്ടിലെ മറ്റൊരു ഉപകരണം
ഇത് ലോക്കൽ കേസാണ്, ശരിയായി ചെയ്യാൻ ഏറ്റവും എളുപ്പമുള്ളതും. മറ്റ് ഉപകരണം തന്റെ ഗേറ്റ്വേയായി കാണുന്ന വിലാസത്തിൽ, ആപ്പ് ലിസൺ ചെയ്യുന്ന പോർട്ടിൽ ഫോണിൽ എത്തുന്നു; ഹോട്ട്സ്പോട്ടിന് പുറത്തുള്ള ഒന്നും ഇതിൽ ഉൾപ്പെടേണ്ടതില്ല. കാരിയർ മാപ്പിംഗ് ആവശ്യമില്ല, പ്രൊവൈഡർ ഫീച്ചർ ഉണ്ടാകേണ്ടതുമില്ല, കാരണം ട്രാഫിക് ലോക്കൽ സെഗ്മെന്റ് വിട്ട് പോകുന്നില്ല.
രണ്ട് കാര്യങ്ങൾ ഇത് തകർക്കുന്നു. ആപ്പ് ലൂപ്പ്ബാക്കിലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു, അല്ലെങ്കിൽ ഫോണിലെ ക്ലയന്റ് പോളിസി ലോക്കൽ കണക്ഷൻ അനുവദിക്കുന്നില്ല. ആപ്പ് ഓതന്റിക്കേഷൻ നടത്തുന്നുണ്ടെങ്കിൽ വെറും TCP കണക്ടിന് പകരം ആപ്പിന്റെ സ്വന്തം പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് പരീക്ഷിക്കുക; സ്വീകരിച്ച് പിന്നീട് നിരസിക്കുന്ന ലിസണർ ദൂരത്ത് നിന്ന് നോക്കുമ്പോൾ അടച്ച പോർട്ട് പോലെ തന്നെ കാണും.
സേവനം ഫോണുമായി ബന്ധിപ്പിച്ച ലാപ്ടോപ്പിലാണ് ഓടുന്നതെങ്കിൽ, ഫോണിന്റെ ഹോട്ട്സ്പോട്ട് വിലാസം ലക്ഷ്യമേയല്ല. ഹോട്ട്സ്പോട്ട് ഇന്റർഫേസിലെ ലാപ്ടോപ്പ് വിലാസവും ലാപ്ടോപ്പിലെ ലിസണറും വേണം; ഫോൺ ഇനി ഫോർവേഡിംഗ് അല്ലാതെ മറ്റൊന്നിന്റെയും ഉടമയല്ല.
രണ്ടാം പ്രവേശന കേന്ദ്രം: കാരിയർ പാത
മൊബൈൽ നെറ്റ്വർക്കിൽ നിന്ന് ഫോണിലേക്ക് എത്തുന്നത് വേറൊരു പ്രശ്നമാണ്, മിക്കപ്പോഴും IPv4-ന് ഇത് പ്രവർത്തിക്കുന്നില്ല. കാരിയർമാർ ഹാൻഡ്സെറ്റുകൾ പങ്കിട്ട ട്രാൻസ്ലേഷന് പിന്നിലാക്കുന്നു; അതുകൊണ്ടാണ് RFC 6598 അത്തരം ക്രമീകരണത്തിനായി ഒരു പങ്കിട്ട വിലാസ ശ്രേണി മാറ്റിവെച്ചത്. ആവശ്യപ്പെടാത്ത ഇൻബൗണ്ട് കണക്ഷന് എത്താൻ ഒരു മാപ്പിംഗും ഇല്ല, ലോക്കൽ കോൺഫിഗറേഷൻ എത്രയും ചെയ്താലും അത് സൃഷ്ടിക്കുന്നില്ല, കാരണം ട്രാൻസ്ലേറ്റർ നിങ്ങളുടെ ഉപകരണമല്ല.
റൂട്ട് ആക്സസും ഇത് മാറ്റുന്നില്ല. അത് ഫോണിന്റെ സ്റ്റാക്കിന്മേൽ നിയന്ത്രണം തരുന്നു, കാരിയറുടെ ട്രാൻസ്ലേറ്ററിന്മേലല്ല; അല്ലാതെ വാഗ്ദാനം ചെയ്യുന്ന റെസിപ്പികൾ സാധാരണയായി കാരിയർ ഒരിക്കലും നൽകാത്ത ഒരു പബ്ലിക് വിലാസം അനുമാനിക്കുന്നു. കാരിയർ ഒരു പബ്ലിക് IPv6 പ്രിഫിക്സ് നൽകുന്നിടത്ത് ഇൻബൗണ്ട് പാത ഉണ്ടായേക്കാം, പക്ഷേ എന്തെങ്കിലും ഉത്തരം നൽകുന്നതിന് മുൻപ് ലിസണറിനും ഫോണിന്റെ ഫയർവാളിനും ബോധപൂർവമായ അനുമതി ഇപ്പോഴും വേണം.
മൂന്നാം പ്രവേശന കേന്ദ്രം: VPN എക്സിറ്റ്
ടണൽ ഓണായിരിക്കുമ്പോൾ ഒരു വെബ്സൈറ്റ് റിപ്പോർട്ട് ചെയ്യുന്ന വിലാസം, കവർ ചെയ്ത ഔട്ട്ബൗണ്ട് ട്രാഫിക്കിന്റെ എക്സിറ്റ് വിലാസമാണ്. നിങ്ങളുടെ പേരിൽ ഇൻബൗണ്ട് കണക്ഷനുകൾ സ്വീകരിക്കുന്ന വിലാസം അതല്ല. അത് ഇൻബൗണ്ടായി ഉപയോഗിക്കാൻ പ്രൊവൈഡർ യഥാർത്ഥത്തിൽ നൽകുന്ന ഒരു ഫീച്ചർ വേണം, ഉദാഹരണത്തിന് ഫോർവേഡ് ചെയ്ത പോർട്ട് അല്ലെങ്കിൽ നിങ്ങളുടെ അക്കൗണ്ടുമായി ബന്ധിപ്പിച്ച ഇൻബൗണ്ട് മാപ്പിംഗ്, കൂടാതെ എക്സിറ്റിൽ നിന്ന് ക്ലയന്റിലേക്ക് ഉപയോഗയോഗ്യമായ ഒരു പാതയും.
ഒരു ലോക്കൽ അനുവദനീയ നിയമത്തിന് ആ മാപ്പിംഗ് സൃഷ്ടിക്കാനാകില്ല. അത് ചെയ്യാൻ കഴിയുന്നത്, ആപ്പിന്റെ മറുപടികൾ ഏത് പാതയിലൂടെ പോകുന്നു എന്ന് മാറ്റുന്നതാണ്; ആപ്പ് ടണലിൽ നിന്ന് ഒഴിവാക്കപ്പെടുമ്പോൾ ഇത് പ്രധാനമാണ്: അഭ്യർത്ഥനയും മറുപടിയും വ്യത്യസ്ത നെറ്റ്വർക്ക് സന്ദർഭങ്ങളിൽ എത്താം, കണക്ഷൻ ഫയർവാൾ പ്രശ്നം പോലെ തോന്നിക്കുന്ന രീതിയിൽ പരാജയപ്പെടുന്നു.
ഒരു പാത ആദ്യം മുതൽ അവസാനം വരെ പരീക്ഷിക്കുക, പിന്നെ ഉടമയെ പേരിടുക
പരീക്ഷിക്കുന്നതിന് മുൻപ് ട്യൂപ്പിൾ എഴുതുക: ഉദ്ദേശിച്ച ഉറവിടം, ലക്ഷ്യ വിലാസം, ട്രാൻസ്പോർട്ട്, പോർട്ട്, ലിസണിംഗ് സോക്കറ്റിന്റെ ഉടമയായ യന്ത്രം. ഏതെങ്കിലും ഘടകം ഊഹമാണെങ്കിൽ, പരീക്ഷണം ഉപയോഗപ്രദമായ ഒന്നും പറയില്ല; അവസാനം ആദ്യത്തേത് വിശദീകരിക്കാൻ രണ്ടാം പാളി മാറ്റേണ്ടിവരും.
തുടർന്ന് ആ ഒരു അനുവദിച്ച പാത ആപ്പിന്റെ ഓതന്റിക്കേഷൻ നഷ്ടപ്പെടുത്താതെ പരീക്ഷിക്കുക. അവ്യക്തമായ പബ്ലിക് വിലാസ പരിശോധനയ്ക്ക് ഉത്തരം ലഭിക്കാൻ വേണ്ടി വിശാലമായ ലിസണർ പ്രസിദ്ധീകരിക്കുന്നതോ ബന്ധമില്ലാത്ത നിയന്ത്രണങ്ങൾ ഓഫ് ചെയ്യുന്നതോ ഒഴിവാക്കുക; രണ്ട് മാറ്റങ്ങളും പരീക്ഷണത്തേക്കാൾ നീണ്ടുനിൽക്കും, ഡിസൈൻ പ്രവർത്തിക്കുന്നു എന്ന് രണ്ടും തെളിയിക്കുന്നുമില്ല.
Android-ന്റെ ടെതറിംഗ് സബ്സിസ്റ്റം ഡൗൺസ്ട്രീം ട്രാഫിക് സ്വന്തം പാതയിലൂടെ ഫോർവേഡ് ചെയ്യുന്നു, സാധാരണ ആപ്പ് VPN ക്യാപ്ചറിൽ നിന്ന് വേറിട്ട്; അതിനാൽ ഫോണുമായി ബന്ധിപ്പിച്ച ലാപ്ടോപ്പിലെ പ്രവർത്തിക്കുന്ന ബ്രൗസർ, ഫോണിലെ ഒരു സേവനത്തിലേക്കുള്ള ഇൻബൗണ്ട് ആക്സസിനെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല. ഇത് പ്രവർത്തിക്കുന്നു എന്ന് വിളിക്കുന്നതിന് മുൻപ്:
- ലിസണിംഗ് സോക്കറ്റ്, ഉദ്ദേശിച്ച പിയർ എത്താവുന്ന ഒരു വിലാസത്തിലാണ്, ലൂപ്പ്ബാക്കിലല്ല.
- പിയർ ആ പ്രവേശന കേന്ദ്രത്തിന്റെ വിലാസമാണ് ഉപയോഗിക്കുന്നത്, സ്റ്റാറ്റസ് പേജിൽ നിന്നുള്ള എക്സിറ്റ് വിലാസമല്ല.
- കാരിയർ അല്ലെങ്കിൽ പ്രൊവൈഡർ ഭാഗത്തുള്ള ഏത് മാപ്പിംഗും പിന്തുണയ്ക്കുന്ന ഫീച്ചറാണ്, നിങ്ങൾ ലോക്കലായി ചേർത്ത ഒരു നിയമമല്ല.
- അഭ്യർത്ഥനയും മറുപടിയും ഒരേ നെറ്റ്വർക്ക് സന്ദർഭത്തിലൂടെ സഞ്ചരിക്കുന്നു, ആപ്പിന്റെ ഓതന്റിക്കേഷൻ ഇപ്പോഴും കടന്നുപോകുന്നു.