ADB සහ Android emulator VPN පිටුපස අසාර්ථක වේ: මාර්ග තුනක්
ADB සොයාගැනීම, emulator හි අතථ්ය ජාල කාඩ්පත සහ host විසඳන්නා VPN පිටුපස වෙන් වෙන් වශයෙන් අසාර්ථක වේ. උමං මාර්ගයට දොස් පැවරීමට පෙර සෑම මාර්ගයක්ම පිළිවෙලින් පරීක්ෂා කරන්න.
ඔබ කාර්යාල VPN සම්බන්ධ කරන විට Android Studio ධාවනය වන emulator අහිමි කරයි, adb start-server එක එකතැන නතර වේ, සහ Wi-Fi හි ඇති සැබෑ දුරකථනය උපාංග ලැයිස්තුවෙන් ඉවත් වේ. එක් උමං මාර්ගයක් එක් නිෂ්පාදනයක් අවහිර කරන බව පෙනේ. ඇත්ත වශයෙන්ම වෙනස් මාර්ග තුනක් ආකාර තුනකින් අසාර්ථක වේ: adb උපාංග සොයාගැනීම, emulator හි අතථ්ය ජාලය සහ host විසඳන්නා. උමං මාර්ගය සාමාන්යයෙන් අවසාන එක පමණක් හිමිකර ගනී, බොහෝ විට එහි කොටසක් පමණි.
socket තුනක්, හිමිකරුවන් තුනක්
adb සේවාදායකය host හි 5037 port එකේ සවන් දෙමින් USB හෝ TCP හරහා උපාංග සමඟ කථා කරයි, ජාල සොයාගැනීම සඳහා mDNS භාවිතා කරයි. emulator තමන්ගේම අතථ්ය router එකක පිටුපස ධාවනය වේ: අමුත්තා 10.0.2.15, ගේට්වේ 10.0.2.2 සහ DNS සේවාදායකය 10.0.2.3 වන අතර emulator ක්රියාවලිය ඒ සියල්ල host socket බවට පරිවර්තනය කරයි. host විසඳන්නා යනු VPN සේවාලාභියා DNS සහ සෙවුම් වසම් ස්ථාපනය කරන ස්ථානයයි.
එම වෙන්වීම එක් මෙවලමකට නිවැරදි කිරීමක් වැඩ කර අනෙකට නොකරන බව පැහැදිලි කරයි. host විසඳන්නා වෙනස් කරන සේවාලාභියා ධාවනය වන emulator ක්රියාවලිය ආරම්භයේදී කියවූ විසඳන්නා තත්ත්වය සමඟ තබයි. multicast පෙරහන් කරන සේවාලාභියා DNS ස්පර්ශ නොකර සොයාගැනීම කඩයි. අතථ්ය ඇඩැප්ටර පෙරහන් කරන සේවාලාභියා host බ්රවුසරය ක්රියා කරන අතරතුර emulator ප්රතික්ෂේප කරයි. සෑම රෝග ලක්ෂණයකටම වෙනස් හේතුවක් ඇත, එබැවින් කිසිදු සැකසුමක් වෙනස් කිරීමට පෙර අසාර්ථක මාර්ගය හඳුනා ගන්න.
adb දකින දෙයින් ආරම්භ කරන්න
VPN ස්පර්ශ කිරීමට පෙර adb devices ධාවනය කරන්න. හිස් ලැයිස්තුවක් ප්රවාහන ගැටලුවක්, මාර්ග ගැටලුවක් නොවේ, සහ සේවාදායකය කිසිදා ලැයිස්තුගත නොකළ උපාංගයක් කිසිදු උමං සැකසුමක් නිවැරදි නොකරයි. සේවාදායකය පිරිසිදුව නැවත අරඹන්න: පළමුව adb kill-server පසුව adb start-server, සහ එය කුමන port එකක් ගත්තාද බැලීමට ප්රතිදානය කියවන්න. ආරම්භයම එකතැන නතර වන්නේ නම්, multicast පෙරහන් කරන ජාලයක mDNS සොයාගැනීම සුපුරුදු සැකකරුය; ලේඛනගත විසඳුම වන්නේ සොයාගැනීම අක්රීය කර සේවාදායකය ආරම්භ කිරීමයි:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesසැබෑ උපාංගයකට USB කෙටිම මාර්ගයයි. TCP අවශ්ය නම් උපාංගය adb tcpip 5555 මගින් සවන් දීමේ තත්ත්වයට දමා උපාංගයේ ලිපිනය සහ port එකට සම්බන්ධ වන්න, adb connect 192.0.2.10:5555. port 5037 යනු host සේවාදායකයේ port එකයි, උපාංගය සවන් දෙන port එක නොවේ.
emulator ඇතුළතින් පරීක්ෂා කරන්න
emulator 10.0.2.3 සිට DNS ට පිළිතුරු දෙන අතර එම විසඳන්නා host ක්රියාවලියෙන් පෝෂණය වේ. VPN සේවාලාභියා host විසඳන්නා වෙනස් කරන විට emulator එය උරුම කර ගත හැක; සේවාලාභියා emulator ක්රියාවලිය පෙරහන් කරන විට හෝ ආරම්භයෙන් පසු host ඇඩැප්ටර ලැයිස්තුව වෙනස් වන විට එසේ කළ නොහැක. දෙකම එකම shell එකකින් සංඛ්යාත්මක ඉලක්කයක් සහ නමකින් වෙන් කරන්න. adb shell ping -c 2 10.0.2.2 අතථ්ය ජාලය host පැත්තට ළඟා වන බව ඔප්පු කරයි. පසුව කරන නම් සෙවීම විසඳුම මායිම පසු කළාද යන්න පවසයි.
පසුව එම නම් සෙවීම host එකේ ධාවනය කරන්න. host විසඳා emulator නොවිසඳනවා නම් බිඳීම host විසඳන්නා සහ emulator හි අතථ්ය ජාලය අතරය, උමං මාර්ගයේ නොවේ. දෙකම අසාර්ථක නම් host විසඳන්නා බැලිය යුතු තැනය. VPN සම්බන්ධ වූ පසු emulator නැවත අරඹීම එක් උත්සාහයකට සුදුසුය, මන්ද සමහර සේවාලාභීන් ධාවනය වන emulator ක්රියාවලිය නොගන්නා විසඳන්නා තත්ත්වයක් ස්ථාපනය කරයි.
host විසඳන්නා සහ සේවාලාභී පෙරහන් පරීක්ෂා කරන්න
සම්පූර්ණ උමං සේවාලාභියා host විසඳන්නා තමන්ගේ එකෙන් ප්රතිස්ථාපනය කරයි, split-DNS සේවාලාභියා සෙවුම් වසම් සහ කොන්දේසි සහිත යොමු කරන්නන් එකතු කරයි. අභ්යන්තර නම් බොහෝ විට එම split-DNS වින්යාසය මත රඳා පවතී, එබැවින් සම්බන්ධව සිටියදී host භාවිතා කරන දේ බලන්න: විසඳන්නාගේ ලිපිනය, සෙවුම් වසම සහ අභ්යන්තර කලාපය ආයතනික DNS වෙත යොමු වේද යන්න. පොදු නම්වලට පිළිතුරු දෙන නමුත් අභ්යන්තර නම්වලට නොදෙන විසඳන්නා ප්රතිපත්ති ප්රශ්නයක්, කැඩුණු උමං මාර්ගයක් නොවේ.
සමහර ආයතනික සේවාලාභීන් අතථ්ය ඇඩැප්ටරවලින් එන ගමනාගමනය ද අවහිර කරයි. පෙරහන් ධාවකයට emulator අතථ්ය ඇඩැප්ටරයක් ලෙස පෙනේ, එබැවින් host හොඳින් ක්රියා කරන අතරතුර ප්රතිපත්තිය emulator ප්රතික්ෂේප කළ හැක. එම ප්රතිපත්තිය කාර්යස්ථානයෙන් නොපෙනේ, සහ proxy සැකසුම් අනුමාන කිරීමෙන් එය හෙළි නොවේ. host විසඳා විසඳන්නා සැකසුම් කුමක් වුවත් emulator අවහිර වී ඇත්නම්, නිවැරදි උත්තරීතරකරණය සේවාලාභී ප්රතිපත්තිය හිමි කණ්ඩායමටය.
පරීක්ෂණ අනුපිළිවෙල සහ සෑම ප්රතිඵලයක අර්ථය
ඉහළ සිට පහළට වැඩ කර පළමු අසාර්ථක පේළියේ නවතින්න. සෑම ප්රතිඵලයක්ම වෙනස් හිමිකරුවෙකු වෙත යොමු කරයි, සහ Android Studio නැවත ස්ථාපනය කිරීමෙන් කිසිවක් නිවැරදි නොවේ.
| Result | Likely owner | Next check |
|---|---|---|
| adb devices is empty with USB attached | USB, driver or adb server | cable, authorization prompt, adb kill-server |
| adb start-server hangs | mDNS discovery | ADB_MDNS_OPENSCREEN=0 |
| Emulator reaches 10.0.2.2, names fail | Host resolver to emulator boundary | host lookup of the same name |
| Host resolves, emulator still fails | Emulator process or client filter | restart emulator, ask IT about virtual adapters |
| Both fail for internal names only | Split DNS or search domain | resolver and zone configuration |
සාමාන්ය අර්ථයෙන් අවසන් පේළි දෙක පමණක් VPN ප්රශ්න වන අතර අවසන් එක පමණක් DNS අන්තර්ගතය ගැනය. adb ලේඛන සේවාදායක port එක සහ මෙහි සඳහන් පරිසර විචල්ය ආවරණය කරයි, එය ඉතිරි දේ පරීක්ෂා කරන අතරතුර ප්රවාහන පැත්ත අවංකව තැබීමට ප්රමාණවත්ය.