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 ਦਸਤਾਵੇਜ਼ ਸਰਵਰ ਪੋਰਟ ਅਤੇ ਇੱਥੇ ਦੱਸੇ ਵਾਤਾਵਰਣ ਚਰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ, ਜੋ ਬਾਕੀ ਜਾਂਚਦੇ ਸਮੇਂ ਆਵਾਜਾਈ ਪਾਸੇ ਨੂੰ ਇਮਾਨਦਾਰ ਰੱਖਣ ਲਈ ਕਾਫ਼ੀ ਹੈ।