ADB ಮತ್ತು Android ಎಮ್ಯುಲೇಟರ್ VPN ಹಿಂದೆ ವಿಫಲ: ಮೂರು ಮಾರ್ಗಗಳು
ADB ಶೋಧನೆ, ಎಮ್ಯುಲೇಟರ್ನ ವರ್ಚುವಲ್ ನೆಟ್ವರ್ಕ್ ಕಾರ್ಡ್ ಮತ್ತು ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ VPN ಹಿಂದೆ ಪ್ರತ್ಯೇಕವಾಗಿ ವಿಫಲವಾಗುತ್ತವೆ. ಟನೆಲ್ಗೆ ದೋಷ ಹೇರುವ ಮೊದಲು ಪ್ರತಿ ಮಾರ್ಗವನ್ನು ಕ್ರಮವಾಗಿ ಪರೀಕ್ಷಿಸಿ.
ನೀವು ಕಚೇರಿ VPN ಸಂಪರ್ಕಿಸುತ್ತೀರಿ ಮತ್ತು Android Studio ಚಾಲಿತ ಎಮ್ಯುಲೇಟರ್ ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ, adb start-server ನಿಲ್ಲುತ್ತದೆ, ಮತ್ತು Wi-Fi ನಲ್ಲಿರುವ ಭೌತಿಕ ಫೋನ್ ಸಾಧನ ಪಟ್ಟಿಯಿಂದ ಹೊರಬೀಳುತ್ತದೆ. ಒಂದು ಟನೆಲ್ ಒಂದು ಉತ್ಪನ್ನವನ್ನು ತಡೆಯುತ್ತಿರುವಂತೆ ಕಾಣುತ್ತದೆ. ವಾಸ್ತವವಾಗಿ ಮೂರು ಬೇರೆ ಬೇರೆ ಮಾರ್ಗಗಳು ಮೂರು ರೀತಿಯಲ್ಲಿ ವಿಫಲವಾಗುತ್ತವೆ: adb ಸಾಧನ ಶೋಧನೆ, ಎಮ್ಯುಲೇಟರ್ನ ವರ್ಚುವಲ್ ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್. ಟನೆಲ್ ಸಾಮಾನ್ಯವಾಗಿ ಕೊನೆಯದನ್ನು ಮಾತ್ರ ಹೊಂದಿರುತ್ತದೆ, ಮತ್ತು ಹಲವು ಬಾರಿ ಅದರ ಒಂದು ಭಾಗವನ್ನು ಮಾತ್ರ.
ಮೂರು ಸಾಕೆಟ್ಗಳು, ಮೂರು ಮಾಲೀಕರು
adb ಸರ್ವರ್ ಹೋಸ್ಟ್ನಲ್ಲಿ ಪೋರ್ಟ್ 5037 ನಲ್ಲಿ ಕೇಳುತ್ತದೆ ಮತ್ತು USB ಅಥವಾ TCP ಮೂಲಕ ಸಾಧನಗಳೊಂದಿಗೆ ಮಾತನಾಡುತ್ತದೆ, ನೆಟ್ವರ್ಕ್ ಶೋಧನೆಗೆ mDNS ಬಳಸುತ್ತದೆ. ಎಮ್ಯುಲೇಟರ್ ತನ್ನದೇ ವರ್ಚುವಲ್ ರೌಟರ್ ಹಿಂದೆ ಚಲಿಸುತ್ತದೆ: ಅತಿಥಿ 10.0.2.15, ಗೇಟ್ವೇ 10.0.2.2 ಮತ್ತು DNS ಸರ್ವರ್ 10.0.2.3, ಮತ್ತು ಎಮ್ಯುಲೇಟರ್ ಪ್ರಕ್ರಿಯೆ ಇದೆಲ್ಲವನ್ನೂ ಹೋಸ್ಟ್ ಸಾಕೆಟ್ಗಳಾಗಿ ಭಾಷಾಂತರಿಸುತ್ತದೆ. ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಎಂಬುದು VPN ಕ್ಲೈಂಟ್ DNS ಮತ್ತು ಹುಡುಕಾಟ ಡೊಮೇನ್ಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಸ್ಥಳ.
ಆ ಪ್ರತ್ಯೇಕತೆಯೇ ಒಂದು ಸರಿಪಡಿಸುವಿಕೆ ಒಂದು ಸಾಧನಕ್ಕೆ ಕೆಲಸ ಮಾಡಿ ಇನ್ನೊಂದಕ್ಕೆ ಮಾಡದಿರುವುದನ್ನು ವಿವರಿಸುತ್ತದೆ. ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಬದಲಿಸುವ ಕ್ಲೈಂಟ್ ಚಾಲಿತ ಎಮ್ಯುಲೇಟರ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಆರಂಭದಲ್ಲಿ ಓದಿದ ರಿಸಾಲ್ವರ್ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಬಿಡುತ್ತದೆ. multicast ಫಿಲ್ಟರ್ ಮಾಡುವ ಕ್ಲೈಂಟ್ DNS ಮುಟ್ಟದೆ ಶೋಧನೆಯನ್ನು ಮುರಿಯುತ್ತದೆ. ವರ್ಚುವಲ್ ಅಡಾಪ್ಟರ್ಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವ ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್ ಬ್ರೌಸರ್ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಾಗಲೇ ಎಮ್ಯುಲೇಟರ್ಗೆ ನಿರಾಕರಿಸುತ್ತದೆ. ಪ್ರತಿ ಲಕ್ಷಣಕ್ಕೆ ಬೇರೆ ಕಾರಣವಿದೆ, ಆದ್ದರಿಂದ ಯಾವುದೇ ಸೆಟ್ಟಿಂಗ್ ಬದಲಿಸುವ ಮೊದಲು ವಿಫಲವಾಗುವ ಮಾರ್ಗವನ್ನು ಗುರುತಿಸಿ.
adb ನೋಡಬಹುದಾದದ್ದರಿಂದ ಆರಂಭಿಸಿ
VPN ಮುಟ್ಟುವ ಮೊದಲು adb devices ಚಲಾಯಿಸಿ. ಖಾಲಿ ಪಟ್ಟಿ ಸಾಗಣೆಯ ಸಮಸ್ಯೆ, ಮಾರ್ಗದ ಸಮಸ್ಯೆ ಅಲ್ಲ, ಮತ್ತು ಸರ್ವರ್ ಎಂದೂ ಪಟ್ಟಿ ಮಾಡದ ಸಾಧನವನ್ನು ಯಾವುದೇ ಟನೆಲ್ ಸೆಟ್ಟಿಂಗ್ ಸರಿಪಡಿಸುವುದಿಲ್ಲ. ಸರ್ವರ್ ಅನ್ನು ಸ್ವಚ್ಛವಾಗಿ ಮರುಪ್ರಾರಂಭಿಸಿ: ಮೊದಲು adb kill-server ನಂತರ adb start-server, ಮತ್ತು ಅದು ಯಾವ ಪೋರ್ಟ್ ಹಿಡಿದಿದೆ ಎಂದು ತಿಳಿಯಲು ಔಟ್ಪುಟ್ ಓದಿ. ಪ್ರಾರಂಭವೇ ನಿಲ್ಲುತ್ತಿದ್ದರೆ, multicast ಫಿಲ್ಟರ್ ಮಾಡುವ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ mDNS ಶೋಧನೆ ಸಾಮಾನ್ಯ ಸಂಶಯಿತ; ದಾಖಲಿತ ಪರಿಹಾರವೆಂದರೆ ಶೋಧನೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಸರ್ವರ್ ಪ್ರಾರಂಭಿಸುವುದು:
ADB_MDNS_OPENSCREEN=0 adb start-server
adb devicesಭೌತಿಕ ಸಾಧನಕ್ಕೆ USB ಅತಿ ಚಿಕ್ಕ ಮಾರ್ಗ. TCP ಬೇಕಿದ್ದರೆ ಸಾಧನವನ್ನು ಕೇಳುವ ಸ್ಥಿತಿಗೆ adb tcpip 5555 ಮೂಲಕ ತನ್ನಿ ಮತ್ತು ಸಾಧನದ ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್ಗೆ ಸಂಪರ್ಕಿಸಿ, adb connect 192.0.2.10:5555. ಪೋರ್ಟ್ 5037 ಹೋಸ್ಟ್ ಸರ್ವರ್ನ ಪೋರ್ಟ್, ಸಾಧನ ಕೇಳುವ ಪೋರ್ಟ್ ಅಲ್ಲ.
ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ಒಳಗಿನಿಂದ ಪರೀಕ್ಷಿಸಿ
ಎಮ್ಯುಲೇಟರ್ 10.0.2.3 ರಿಂದ DNS ಗೆ ಉತ್ತರಿಸುತ್ತದೆ, ಮತ್ತು ಆ ರಿಸಾಲ್ವರ್ಗೆ ಹೋಸ್ಟ್ ಪ್ರಕ್ರಿಯೆ ಆಹಾರ ನೀಡುತ್ತದೆ. VPN ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಬದಲಿಸಿದಾಗ ಎಮ್ಯುಲೇಟರ್ ಅದನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯಬಹುದು; ಕ್ಲೈಂಟ್ ಎಮ್ಯುಲೇಟರ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿದಾಗ ಅಥವಾ ಪ್ರಾರಂಭದ ನಂತರ ಹೋಸ್ಟ್ ಅಡಾಪ್ಟರ್ ಪಟ್ಟಿ ಬದಲಾದಾಗ ಅದು ಸಾಧ್ಯವಿಲ್ಲ. ಎರಡನ್ನೂ ಒಂದೇ ಶೆಲ್ನಿಂದ ಸಂಖ್ಯಾತ್ಮಕ ಗುರಿ ಮತ್ತು ಹೆಸರಿನಿಂದ ಬೇರ್ಪಡಿಸಿ. adb shell ping -c 2 10.0.2.2 ವರ್ಚುವಲ್ ನೆಟ್ವರ್ಕ್ ಹೋಸ್ಟ್ ಕಡೆ ತಲುಪುತ್ತದೆ ಎಂದು ಸಾಬೀತು ಮಾಡುತ್ತದೆ. ನಂತರದ ಹೆಸರು ಹುಡುಕಾಟ ರೆಸಲ್ಯೂಶನ್ ಗಡಿ ದಾಟಿದೆಯೇ ಎಂದು ತಿಳಿಸುತ್ತದೆ.
ನಂತರ ಅದೇ ಹೆಸರು ಹುಡುಕಾಟವನ್ನು ಹೋಸ್ಟ್ನಲ್ಲಿ ಚಲಾಯಿಸಿ. ಹೋಸ್ಟ್ ಪರಿಹರಿಸಿ ಎಮ್ಯುಲೇಟರ್ ಪರಿಹರಿಸದಿದ್ದರೆ ಮುರಿತ ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಮತ್ತು ಎಮ್ಯುಲೇಟರ್ನ ವರ್ಚುವಲ್ ನೆಟ್ವರ್ಕ್ ನಡುವೆ ಇದೆ, ಟನೆಲ್ನಲ್ಲಿ ಅಲ್ಲ. ಎರಡೂ ವಿಫಲವಾದರೆ ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ನೋಡಬೇಕಾದ ಸ್ಥಳ. VPN ಸಂಪರ್ಕದ ನಂತರ ಎಮ್ಯುಲೇಟರ್ ಮರುಪ್ರಾರಂಭಿಸುವುದು ಒಂದು ಪ್ರಯತ್ನಕ್ಕೆ ಯೋಗ್ಯ, ಏಕೆಂದರೆ ಕೆಲವು ಕ್ಲೈಂಟ್ಗಳು ಚಾಲಿತ ಎಮ್ಯುಲೇಟರ್ ಪ್ರಕ್ರಿಯೆ ಪಡೆಯದ ರಿಸಾಲ್ವರ್ ಸ್ಥಿತಿಯನ್ನು ಸ್ಥಾಪಿಸುತ್ತವೆ.
ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ಫಿಲ್ಟರ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ
ಪೂರ್ಣ ಟನೆಲ್ ಕ್ಲೈಂಟ್ ಹೋಸ್ಟ್ ರಿಸಾಲ್ವರ್ ಅನ್ನು ತನ್ನದರಿಂದ ಬದಲಿಸುತ್ತದೆ, ಮತ್ತು split-DNS ಕ್ಲೈಂಟ್ ಹುಡುಕಾಟ ಡೊಮೇನ್ಗಳು ಮತ್ತು ಷರತ್ತುಬದ್ಧ ಫಾರ್ವರ್ಡರ್ಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ. ಆಂತರಿಕ ಹೆಸರುಗಳು ಹಲವು ಬಾರಿ ಆ split-DNS ಸಂರಚನೆಯನ್ನು ಅವಲಂಬಿಸಿವೆ, ಆದ್ದರಿಂದ ಸಂಪರ್ಕದಲ್ಲಿರುವಾಗ ಹೋಸ್ಟ್ ಏನು ಬಳಸುತ್ತದೆ ಎಂದು ನೋಡಿ: ರಿಸಾಲ್ವರ್ ವಿಳಾಸ, ಹುಡುಕಾಟ ಡೊಮೇನ್ ಮತ್ತು ಆಂತರಿಕ ವಲಯ ಕಾರ್ಪೊರೇಟ್ DNS ಗೆ ರೂಟ್ ಆಗುತ್ತದೆಯೇ. ಸಾರ್ವಜನಿಕ ಹೆಸರುಗಳಿಗೆ ಉತ್ತರಿಸಿ ಆಂತರಿಕ ಹೆಸರುಗಳಿಗೆ ಉತ್ತರಿಸದ ರಿಸಾಲ್ವರ್ ನೀತಿಯ ಪ್ರಶ್ನೆ, ಮುರಿದ ಟನೆಲ್ ಅಲ್ಲ.
ಕೆಲವು ಕಾರ್ಪೊರೇಟ್ ಕ್ಲೈಂಟ್ಗಳು ವರ್ಚುವಲ್ ಅಡಾಪ್ಟರ್ಗಳಿಂದ ಬರುವ ಸಂಚಾರವನ್ನೂ ತಡೆಯುತ್ತವೆ. ಫಿಲ್ಟರ್ ಡ್ರೈವರ್ಗೆ ಎಮ್ಯುಲೇಟರ್ ವರ್ಚುವಲ್ ಅಡಾಪ್ಟರ್ನಂತೆ ಕಾಣುತ್ತದೆ, ಆದ್ದರಿಂದ ಹೋಸ್ಟ್ ಸಂಪೂರ್ಣವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಾಗ ನೀತಿ ಎಮ್ಯುಲೇಟರ್ಗೆ ನಿರಾಕರಿಸಬಹುದು. ಆ ನೀತಿ ಕೆಲಸದ ಕೇಂದ್ರದಿಂದ ಕಾಣುವುದಿಲ್ಲ, ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳ ಊಹೆ ಅದನ್ನು ಬಯಲು ಮಾಡುವುದಿಲ್ಲ. ಹೋಸ್ಟ್ ಪರಿಹರಿಸಿ ಎಮ್ಯುಲೇಟರ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಸಂಬಂಧವಿಲ್ಲದೆ ತಡೆಯಲ್ಪಟ್ಟರೆ, ಸರಿಯಾದ ಎಸ್ಕಲೇಶನ್ ಕ್ಲೈಂಟ್ ನೀತಿಯನ್ನು ಹೊಂದಿರುವ ತಂಡಕ್ಕೆ.
ಪರಿಶೀಲನೆಗಳ ಕ್ರಮ ಮತ್ತು ಪ್ರತಿ ಫಲಿತಾಂಶದ ಅರ್ಥ
ಮೇಲಿನಿಂದ ಕೆಳಗೆ ಕೆಲಸ ಮಾಡಿ ಮತ್ತು ಮೊದಲ ವಿಫಲ ಸಾಲಿನಲ್ಲಿ ನಿಲ್ಲಿಸಿ. ಪ್ರತಿ ಫಲಿತಾಂಶ ಬೇರೆ ಮಾಲೀಕನನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಮತ್ತು 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 ದಾಖಲೆ ಸರ್ವರ್ ಪೋರ್ಟ್ ಮತ್ತು ಇಲ್ಲಿ ಹೇಳಿದ ಪರಿಸರ ಚರಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ಉಳಿದದ್ದನ್ನು ಪರೀಕ್ಷಿಸುವಾಗ ಸಾಗಣೆ ಬದಿಯನ್ನು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಇಡಲು ಸಾಕು.