Android హాట్స్పాట్ పోర్ట్ ఫార్వర్డింగ్: మూడు ప్రవేశ బిందువులు
ఫోన్, క్యారియర్ మార్గం మరియు VPN నిష్క్రమణ వేర్వేరు సరిహద్దులను చూపుతాయి. ఏదైనా పోర్ట్ తెరవడానికి ముందు వినే సాకెట్ ఏ యంత్రం సొంతం అని నిర్ణయించండి.
మీరు హాట్స్పాట్ ఆన్ చేశారు, VPN కనెక్ట్ చేశారు, యాప్లో పోర్ట్ తెరిచారు, ఇప్పటికీ మరో పరికరం కనెక్ట్ కాలేకపోతోంది. లేని భాగం దాదాపు ఎప్పుడూ పోర్ట్ కాదు. వినే సాకెట్ ఏ యంత్రానికి చెందినది, మరో పరికరం ఏ చిరునామాను చేరుకోవాలి అనేది ప్రశ్న. నేను దీన్ని ఫోన్ నుండి బయటకు చూస్తున్నాను, ఎందుకంటే మీరు ఉన్న స్క్రీన్ మూడు ప్రవేశ బిందువుల్లో ఏది మీరు నిజంగా పరీక్షిస్తున్నారో చెబుతుంది.
సేవ నిజంగా అమలయ్యే చోటు నుండి ప్రారంభించండి
కనెక్షన్ను అంగీకరించాల్సిన యాప్ను తెరిచి దాని స్థితి పేజీని చదవండి. అది వినిపిస్తోందని చెబితే, అది బంధించిన చిరునామాను గుర్తించండి, ఎందుకంటే ఆ ఒక్క వివరం క్రింది చాలా సందర్భాలను నిర్ణయిస్తుంది. 127.0.0.1కు బంధించిన యాప్ ఫోన్ నుండి మాత్రమే చేరుకోగలదు, ఏ హాట్స్పాట్ క్లయింట్, క్యారియర్ మ్యాపింగ్ లేదా VPN నిష్క్రమణ దాన్ని మార్చదు.
తర్వాత సేవను ఏ పరికరం నడుపుతుందో నిర్ధారించండి. అది ఫోన్ అయితే సాకెట్ ఆ యాప్ది; హాట్స్పాట్ వెనుక ల్యాప్టాప్ అయితే వినేది మరియు దాని ఫైర్వాల్ ల్యాప్టాప్వి, ఫోన్ ప్యాకెట్లను మాత్రమే ఫార్వర్డ్ చేస్తుంది. ఇవి వేర్వేరు యజమానులతో వేర్వేరు నిర్మాణాలు, వాటిని కలపడమే ఒక చోట తెరిచిన పోర్ట్ మరో చోట ఏమీ చేయకపోవడానికి కారణం.
డీబగ్ చేయగల బిల్డ్లో adb shell /proc/net/tcp ద్వారా సాకెట్లను జాబితా చేయగలదు, కానీ చాలామందికి యాప్ స్వంత స్థితి నిజాయితీ మూలం. మీరు ఊహించని చిరునామాలో యాప్ తెరిచిన సాకెట్ను పరీక్షించే ఉచ్చు నుండి కూడా ఇది తప్పిస్తుంది.
మొదటి ప్రవేశ బిందువు: హాట్స్పాట్లో మరో పరికరం
ఇది స్థానిక సందర్భం మరియు సరిగ్గా చేయడం సులభం. మరో పరికరం తన గేట్వేగా చూసే చిరునామా వద్ద, యాప్ వినే పోర్ట్లో ఫోన్ను చేరుకుంటుంది, హాట్స్పాట్ వెలుపల ఏదీ పాల్గొనాల్సిన అవసరం లేదు. క్యారియర్ మ్యాపింగ్ అవసరం లేదు, ప్రొవైడర్ ఫీచర్ ఉండాల్సిన అవసరం లేదు, ఎందుకంటే ట్రాఫిక్ స్థానిక విభాగాన్ని ఎప్పుడూ విడిచిపెట్టదు.
రెండు విషయాలు దీన్ని భంగం చేస్తాయి. యాప్ లూప్బ్యాక్కు బంధించబడింది, లేదా ఫోన్లో క్లయింట్ విధానం స్థానిక కనెక్షన్ను అనుమతించదు. యాప్ ప్రామాణీకరణ చేస్తే కేవలం TCP కనెక్షన్కు బదులుగా యాప్ స్వంత ప్రోటోకాల్తో పరీక్షించండి, ఎందుకంటే అంగీకరించి తర్వాత తిరస్కరించే వినేది దూరం నుండి మూసిన పోర్ట్లానే కనిపిస్తుంది.
సేవ ఫోన్కు అనుసంధానించిన ల్యాప్టాప్లో నడుస్తుంటే, ఫోన్ హాట్స్పాట్ చిరునామా గమ్యమే కాదు. హాట్స్పాట్ ఇంటర్ఫేస్లో ల్యాప్టాప్ చిరునామా మరియు ల్యాప్టాప్లో వినేది అవసరం, ఫోన్ ఇక ఫార్వర్డింగ్ తప్ప ఏదానికీ యజమాని కాదు.
రెండవ ప్రవేశ బిందువు: క్యారియర్ మార్గం
మొబైల్ నెట్వర్క్ నుండి ఫోన్ను చేరుకోవడం వేరే సమస్య, చాలాసార్లు IPv4కు అది సరళంగా పనిచేయదు. క్యారియర్లు హ్యాండ్సెట్లను పంచుకున్న అనువాదం వెనుక ఉంచుతారు, అందుకే RFC 6598 అలాంటి ఏర్పాటు కోసమే పంచుకున్న చిరునామా పరిధిని కేటాయించింది. అభ్యర్థించని ఇన్బౌండ్ కనెక్షన్కు రావడానికి మ్యాపింగ్ లేదు, ఎంత స్థానిక కాన్ఫిగరేషన్ చేసినా అది సృష్టించబడదు, ఎందుకంటే అనువాదకుడు మీ పరికరం కాదు.
రూట్ యాక్సెస్ కూడా దాన్ని మార్చదు. అది ఫోన్ స్టాక్పై నియంత్రణ ఇస్తుంది, క్యారియర్ అనువాదకుడిపై కాదు, వ్యతిరేకంగా వాగ్దానం చేసే విధానాలు సాధారణంగా క్యారియర్ ఎప్పుడూ ఇవ్వని పబ్లిక్ చిరునామాను ఊహిస్తాయి. క్యారియర్ పబ్లిక్ IPv6 ప్రిఫిక్స్ ఇచ్చే చోట ఇన్బౌండ్ మార్గం ఉండవచ్చు, కానీ ఏదైనా సమాధానం ఇచ్చే ముందు వినేది మరియు ఫోన్ ఫైర్వాల్కు ఇంకా ఉద్దేశపూర్వక అనుమతి కావాలి.
మూడవ ప్రవేశ బిందువు: VPN నిష్క్రమణ
టన్నెల్ పనిచేస్తున్నప్పుడు వెబ్సైట్ నివేదించే చిరునామా కవర్ చేయబడిన అవుట్బౌండ్ ట్రాఫిక్కు నిష్క్రమణ చిరునామా. అది మీ తరఫున ఇన్బౌండ్ కనెక్షన్లను అంగీకరించే చిరునామా కాదు. దాన్ని ఇన్బౌండ్గా ఉపయోగించడానికి ప్రొవైడర్ నిజంగా అందించే ఫీచర్ కావాలి, ఉదాహరణకు ఫార్వర్డ్ చేసిన పోర్ట్ లేదా మీ ఖాతాకు కట్టిన ఇన్బౌండ్ మ్యాపింగ్, అలాగే నిష్క్రమణ నుండి క్లయింట్ వరకు ఉపయోగించగల మార్గం.
స్థానిక అనుమతి నియమం అలాంటి మ్యాపింగ్ను సృష్టించలేదు. అది చేయగలిగేది యాప్ ప్రతిస్పందనలు ఏ మార్గంలో వెళ్తాయో మార్చడం, యాప్ టన్నెల్ నుండి మినహాయించబడినప్పుడు ఇది ముఖ్యం: అభ్యర్థన మరియు ప్రతిస్పందన వేర్వేరు నెట్వర్క్ సందర్భాల్లో ముగియవచ్చు, కనెక్షన్ ఫైర్వాల్ సమస్యలా కనిపించే విధంగా విఫలమవుతుంది.
ఒక మార్గాన్ని మొదటి నుండి చివరి వరకు పరీక్షించండి, తర్వాత యజమానిని పేర్కొనండి
పరీక్షించే ముందు టుపుల్ రాయండి: ఉద్దేశించిన మూలం, గమ్య చిరునామా, రవాణా, పోర్ట్ మరియు వినే సాకెట్ యజమాని యంత్రం. ఏదైనా అంశం ఊహ అయితే, పరీక్ష ఉపయోగకరంగా ఏమీ చెప్పదు, చివరికి మొదటిదాన్ని వివరించడానికి రెండవ పొరను మారుస్తారు.
తర్వాత ఆ ఒక్క అనుమతించిన మార్గాన్ని యాప్ ప్రామాణీకరణ చెక్కుచెదరకుండా పరీక్షించండి. అస్పష్టమైన పబ్లిక్-చిరునామా తనిఖీ సమాధానం ఇవ్వడానికి మాత్రమే విస్తృత వినేదిని ప్రచురించడం లేదా సంబంధం లేని నియంత్రణలను ఆఫ్ చేయడం మానుకోండి, ఎందుకంటే రెండు మార్పులూ పరీక్ష కంటే ఎక్కువ కాలం ఉంటాయి, ఏదీ నిర్మాణం పనిచేస్తుందని నిరూపించదు.
Android టెథరింగ్ ఉపవ్యవస్థ డౌన్స్ట్రీమ్ ట్రాఫిక్ను తన స్వంత మార్గంలో ఫార్వర్డ్ చేస్తుంది, సాధారణ యాప్ VPN క్యాప్చర్ నుండి వేరుగా, కాబట్టి కనెక్ట్ చేసిన ల్యాప్టాప్లో పనిచేసే బ్రౌజర్ ఫోన్లోని సేవకు ఇన్బౌండ్ యాక్సెస్ గురించి ఏమీ చెప్పదు. దాన్ని పనిచేస్తోందని చెప్పే ముందు:
- వినే సాకెట్ ఉద్దేశించిన సహచరుడు చేరుకోగల చిరునామాలో ఉంది, లూప్బ్యాక్లో కాదు.
- సహచరుడు ఆ ప్రవేశ బిందువుకు చెందిన చిరునామాను ఉపయోగిస్తున్నాడు, స్థితి పేజీ నిష్క్రమణ చిరునామాను కాదు.
- క్యారియర్ లేదా ప్రొవైడర్ వైపు ఏదైనా మ్యాపింగ్ మద్దతు ఉన్న ఫీచర్, మీరు స్థానికంగా జోడించిన నియమం కాదు.
- అభ్యర్థన మరియు ప్రతిస్పందన ఒకే నెట్వర్క్ సందర్భం ద్వారా వెళ్తాయి, యాప్ ప్రామాణీకరణ ఇప్పటికీ దాటుతుంది.