ਜਦੋਂ Android ਐਪ ਟਨਲ ਉੱਪਰ ਆਉਣ ਵਾਲੇ ਪਲ ਹੀ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ, ਤਾਂ ਤਿੰਨ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਜ਼ਿੰਮੇਵਾਰ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਉਹ ਇੱਕੋ ਜਿਹੀਆਂ ਦਿਸਣ ਵਾਲੀਆਂ ਅਸਫਲਤਾਵਾਂ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ। ਐਪ ਫ਼ੋਨ ਦੀ ਆਪਣੀ ਨੈੱਟਵਰਕ ਹਾਲਤ ਪੜ੍ਹ ਕੇ ਸਥਾਨਕ ਤੌਰ ’ਤੇ ਇਨਕਾਰ ਕਰ ਸਕਦੀ ਹੈ। ਸਰਵਰ ਤੁਸੀਂ ਜਿੱਥੋਂ ਆਉਂਦੇ ਹੋ ਉਸ ਪਤੇ ਨੂੰ ਸ਼੍ਰੇਣੀਬੱਧ ਕਰਕੇ ਉਸਨੂੰ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ। ਜਾਂ ਇਨਕਾਰ ਦਾ VPN ਨਾਲ ਕੋਈ ਸੰਬੰਧ ਹੀ ਨਾ ਹੋਵੇ। ਹੇਠਾਂ ਦਿੱਤਾ ਕ੍ਰਮ ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਸਬੂਤ ਇਕੱਠੇ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਆਊਟਲੈਟ ਬਦਲਣਾ ਸਭ ਤੋਂ ਮਹਿੰਗਾ ਕਦਮ ਹੈ ਅਤੇ ਜਾਂਚ ਸਥਾਨਕ ਹੋਣ ’ਤੇ ਸਭ ਤੋਂ ਘੱਟ ਮਦਦ ਕਰਨ ਵਾਲਾ ਕਦਮ ਹੈ।

ਕਦਮ 1: ਪਤਾ ਕਰੋ ਐਪ ਕਦੋਂ ਇਨਕਾਰ ਕਰਦੀ ਹੈ

ਸਮਾਂ ਪਹਿਲਾ ਭੇਦਕ ਹੈ। ਲੌਗ ਬਫ਼ਰ ਖਾਲੀ ਕਰੋ, ਅਸਫਲਤਾ ਦੁਬਾਰਾ ਪੈਦਾ ਕਰੋ ਅਤੇ ਵੇਖੋ ਐਪ ਨੇ ਸ਼ਿਕਾਇਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੀ ਕੀਤਾ:

adb logcat -c
# reproduce the failure in the app
adb logcat -d | grep -iE 'vpn|network|connect|http' | tail -60

ਜੇ ਐਪ ਕਿਸੇ ਵੀ ਬਾਹਰ ਜਾਣ ਵਾਲੀ ਬੇਨਤੀ ਦੀ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਇਨਕਾਰ ਕਰਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਸਥਾਨਕ ਫ਼ੈਸਲਾ ਵੇਖ ਰਹੇ ਹੋ। ਜੇ ਉਹ ਜੁੜਦੀ ਹੈ, ਕੁਝ ਭੇਜਦੀ ਹੈ ਅਤੇ ਫਿਰ ਗਲਤੀ ਦਿਖਾਉਂਦੀ ਹੈ, ਤਾਂ ਇਨਕਾਰ ਦੂਜੇ ਪਾਸੇ ਤੋਂ ਆਇਆ ਹੈ। ਜੇ ਟਨਲ ਬੰਦ ਹੋਣ ’ਤੇ ਵੀ ਐਪ ਉਸੇ ਤਰ੍ਹਾਂ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਤਾਂ VPN ਕਦੇ ਵੀ ਬਦਲਣ ਵਾਲਾ ਨਹੀਂ ਸੀ।

ਉਸ ਸਮੇਂ ਨੂੰ ਸਬੂਤ ਵਜੋਂ ਲਓ, ਪੁਸ਼ਟੀ ਵਜੋਂ ਨਹੀਂ। ਐਪ ਕੈਸ਼ ਕੀਤਾ ਜਵਾਬ ਦੁਬਾਰਾ ਚਲਾ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਹਾਡੇ ਵੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਪਿਛੋਕੜ ਦੀਆਂ ਬੇਨਤੀਆਂ ਸਫਲ ਜਾਂ ਅਸਫਲ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਆਖਰੀ ਸਫਲ ਬੇਨਤੀ ਅਤੇ ਗਲਤੀ ਦੇ ਸਮਾਂ-ਚਿੰਨ੍ਹ ਲਿਖੋ, ਸਿਰਫ਼ ਸੁਨੇਹਾ ਦਿਸਣ ਵਾਲਾ ਪਲ ਨਹੀਂ।

ਕਦਮ 2: ਫ਼ੋਨ ਦਾ ਆਪਣਾ ਨੈੱਟਵਰਕ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਪੜ੍ਹੋ

Android VPN ਹਾਲਤ ਨੂੰ ਨੈੱਟਵਰਕ ਸਮਰੱਥਾ ਵਜੋਂ ਦਿਖਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਟਨਲ ਸਰਗਰਮ ਹੋਣ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਐਪ ਨੂੰ ਵਪਾਰਕ ਪ੍ਰਦਾਤਾਵਾਂ ਦੀ ਸੂਚੀ ਦੀ ਲੋੜ ਨਹੀਂ। ਇਹ ਕਨੈਕਟੀਵਿਟੀ ਸੇਵਾ ਨੂੰ ਪੁੱਛਦੀ ਹੈ ਕਿ ਮੌਜੂਦਾ ਨੈੱਟਵਰਕ ਕਿਹੜਾ ਹੈ, ਅਤੇ ਜਵਾਬ ਵਿੱਚ VPN ਆਵਾਜਾਈ ਬਿੱਟ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ:

val cm = context.getSystemService(ConnectivityManager::class.java)
val caps = cm.getNetworkCapabilities(cm.activeNetwork)
val onVpn = caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN) == true

ਉਹ ਜਾਂਚ ਸਥਾਨਕ ਅਤੇ ਸਸਤੀ ਹੈ, ਅਤੇ ਇਹ ਬਿਨਾਂ ਕਿਸੇ ਦੂਰ ਖੜ੍ਹੀ ਸ਼੍ਰੇਣੀਬੱਧਤਾ ਦੇ “ਇਹ ਐਪ VPN ’ਤੇ ਨਹੀਂ ਚੱਲਦੀ” ਵਰਗੀ ਪੂਰੀ ਸ਼੍ਰੇਣੀ ਦੀਆਂ ਰਿਪੋਰਟਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦੀ ਹੈ। ਐਪ ਜੋ ਵੇਖ ਸਕਦੀ ਹੈ ਉਹ ਅਜੇ ਵੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਸੰਦਰਭ ’ਤੇ ਨਿਰਭਰ ਹੈ, ਇਸ ਲਈ ਇਹ ਨਾ ਸਮਝੋ ਕਿ ਹਰ ਐਪ ਡਿਵਾਈਸ ਦੀ ਹਰ ਪਰੋਫ਼ਾਈਲ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।

ਵਰਕਸਟੇਸ਼ਨ ਤੋਂ ਤੁਸੀਂ ਟੈਸਟ ਡਿਵਾਈਸ ’ਤੇ adb shell dumpsys connectivity ਵਰਤ ਕੇ ਅਤੇ VPN ਨੈੱਟਵਰਕ ਐਂਟਰੀ ਲੱਭ ਕੇ ਉਹੀ ਹਾਲਤ ਵੇਖ ਸਕਦੇ ਹੋ। ਟਨਲ ਉੱਪਰ ਵਾਲੀ ਇੱਕ ਰਨ ਦੀ ਤੁਲਨਾ ਟਨਲ ਹੇਠਾਂ ਵਾਲੀ ਰਨ ਨਾਲ ਕਰੋ, ਅਤੇ ਦੋਵੇਂ ਆਊਟਪੁੱਟ ਰੱਖੋ।

ਕਦਮ 3: ਪੜ੍ਹੋ ਸਰਵਰ ਅਸਲ ਵਿੱਚ ਕੀ ਵੇਖਦਾ ਹੈ

ਦੂਜਾ ਨਿਰੀਖਕ ਸੇਵਾ ਹੈ। ਇਹ ਆਉਂਦਾ ਸਰੋਤ ਪਤਾ ਵੇਖਦੀ ਹੈ, ਅਤੇ ਇਹ ਪਤੇ, ਉਸ ਪਿੱਛੇ ਦੇ ਹੋਸਟਿੰਗ ਨੈੱਟਵਰਕ, ਖੇਤਰ, ਕੈਰੀਅਰ ਜਾਂ ਖਾਤੇ ਅਤੇ ਡਿਵਾਈਸ ਨਾਲ ਜੁੜੇ ਸੰਕੇਤਾਂ ਦੇ ਆਧਾਰ ’ਤੇ ਕਾਰਵਾਈ ਕਰ ਸਕਦੀ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਵਿਲੱਖਣ ਪਛਾਣ ਨਹੀਂ, ਅਤੇ ਸਾਂਝੇ ਪਤਿਆਂ ਕਰਕੇ ਪਾਸੇ ਵਾਲੇ ਬਲਾਕ ਆਮ ਹਨ: ਇੱਕ ਪਾਬੰਦੀਸ਼ੁਦਾ ਪਤਾ ਉਸੇ ਅਨੁਵਾਦ ਪਿੱਛੇ ਦੇ ਅਸੰਬੰਧਿਤ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਵੀ ਬਾਹਰ ਕਰ ਸਕਦਾ ਹੈ।

ਪਤਾ ਉਸੇ ਰਾਹੀਂ ਲਓ ਜੋ ਐਪ ਵਰਤਦੀ ਹੈ, ਲੈਪਟਾਪ ਦੇ ਬ੍ਰਾਊਜ਼ਰ ਤੋਂ ਨਹੀਂ। ਫ਼ੋਨ ’ਤੇ ਪਤਾ-ਗੂੰਜ ਸੇਵਾ ਨੂੰ ਸਾਧਾਰਨ ਬੇਨਤੀ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਦੂਰ ਵਾਲਾ ਪਾਸਾ ਕੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸਦੀ ਤੁਲਨਾ ਸੈਲੂਲਰ ਰਾਹੀਂ ਕੀਤੀ ਬੇਨਤੀ ਨਾਲ ਕਰਨ ’ਤੇ ਪਤਾ ਚੱਲਦਾ ਹੈ ਕਿ ਪਤਾ ਬਦਲਿਆ ਵੀ ਜਾਂ ਨਹੀਂ।

ਜੇ ਐਪ ਸੈਲੂਲਰ ’ਤੇ ਚੱਲਦੀ ਹੈ ਅਤੇ ਉਸੇ ਖਾਤੇ ਨਾਲ ਟਨਲ ’ਤੇ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਇਨਕਾਰ ਦੂਰ ਵਾਲੇ ਸਿਰੇ ’ਤੇ ਜਾਂ ਐਪ ਦੀ ਆਪਣੀ ਨੀਤੀ ਵਿੱਚ ਹੈ। ਜੇ ਦੋਵਾਂ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਤਾਂ VPN ਭੇਦਕ ਨਹੀਂ ਅਤੇ ਤੁਹਾਨੂੰ ਐਂਡਪਾਇੰਟ ਦੀ ਜਾਂਚ ਬੰਦ ਕਰ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ।

ਕਦਮ 4: ਸਬੂਤ ਨੂੰ ਤਿੰਨ ਫ਼ੈਸਲਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਨਾਲ ਮਿਲਾਓ

ਤਿੰਨ ਸੰਜੋਗ ਲਗਭਗ ਹਰ ਰਿਪੋਰਟ ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਨ। ਟਨਲ ਸਰਗਰਮ ਹੋਣ ’ਤੇ ਬਿਨਾਂ ਕਿਸੇ ਬਾਹਰ ਜਾਣ ਵਾਲੀ ਕੋਸ਼ਿਸ਼ ਦੇ ਇਨਕਾਰ ਸਥਾਨਕ ਆਵਾਜਾਈ ਜਾਂਚ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਬਾਹਰ ਜਾ ਕੇ ਗਲਤੀ, ਕਿਸੇ ਖ਼ਾਸ ਹੋਸਟ ’ਤੇ ਸਮਾਂ ਖ਼ਤਮ ਜਾਂ ਖੇਤਰ-ਸੁਨੇਹੇ ਨਾਲ ਵਾਪਸ ਆਉਣ ਵਾਲੀ ਬੇਨਤੀ ਦੂਰ ਵਾਲੇ ਪਾਸੇ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ। ਟਨਲ ਤੋਂ ਬਿਨਾਂ ਸੈਲੂਲਰ ’ਤੇ ਦੁਹਰਾਉਣ ਵਾਲੀ ਅਸਫਲਤਾ ਖਾਤੇ, ਐਪ ਸੰਸਕਰਣ ਜਾਂ ਸੇਵਾ ਦੀ ਆਪਣੀ ਨੀਤੀ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ, ਅਤੇ ਕੋਈ VPN ਬਦਲਾਅ ਉਸਨੂੰ ਹਿਲਾ ਨਹੀਂ ਸਕੇਗਾ।

ਫ਼ੈਸਲਾ ਉਸ ਸਬੂਤ ਨਾਲ ਲਿਖੋ ਜਿਸਨੇ ਉਸਨੂੰ ਪੈਦਾ ਕੀਤਾ। ਇਸ ਕਦਮ ਦਾ ਮੁੱਲ ਇਹ ਹੈ ਕਿ ਇਹ ਉਸ ਚੱਕਰ ਨੂੰ ਰੋਕਦਾ ਹੈ ਜਿੱਥੇ ਕੋਈ ਹੈਂਡਸੈੱਟ ’ਤੇ ਹੀ ਚੱਲਣ ਵਾਲੀ ਜਾਂਚ ਠੀਕ ਕਰਨ ਲਈ ਚਾਰ ਵਾਰ ਆਊਟਲੈਟ ਨੋਡ ਬਦਲਦਾ ਹੈ।

ਇਹ ਦਾਅਵਿਆਂ ਨੂੰ ਇਮਾਨਦਾਰ ਵੀ ਰੱਖਦਾ ਹੈ। ਆਪਣੇ ਆਪ ਹੋਸਟ ਕਰਨਾ ਐਂਡਪਾਇੰਟ ਅਤੇ ਉਸਦਾ ਇੰਟਰਨੈੱਟ ਆਊਟਲੈਟ ਬਦਲਦਾ ਹੈ; ਇਹ Android ਨੂੰ ਇਹ ਨਹੀਂ ਭੁਲਾਉਂਦਾ ਕਿ VPN ਨੈੱਟਵਰਕ ਸਰਗਰਮ ਹੈ, ਅਤੇ ਪਤਿਆਂ ਨੂੰ ਸ਼੍ਰੇਣੀਬੱਧ ਕਰਨ ਵਾਲੀ ਸੇਵਾ ਵੱਲੋਂ ਸਵੀਕ੍ਰਿਤੀ ਦੀ ਗਾਰੰਟੀ ਵੀ ਨਹੀਂ ਦਿੰਦਾ। ਸਥਾਨਕ ਫਿਲਟਰ ਤੁਹਾਡੇ ਆਪਣੇ VPN ਨੈੱਟਵਰਕ ’ਤੇ ਵੀ ਵਪਾਰਕ ਵਾਂਗ ਹੀ ਆਸਾਨੀ ਨਾਲ ਸਰਗਰਮ ਹੋ ਸਕਦਾ ਹੈ।

ਕਦਮ 5: ਸਹਾਇਕ ਰਾਹ ਲਓ ਅਤੇ ਉਸਨੂੰ ਪਰਖੋ

ਉਤਪਾਦ ਦੀ ਦਸਤਾਵੇਜ਼ੀ ਨੀਤੀ ਅਤੇ ਉਸਦੇ ਸਹਾਇਤਾ-ਮਾਲਕ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ। ਕਲਾਇੰਟ ਸੰਸਕਰਣ, ਸਹੀ ਸੁਨੇਹਾ ਅਤੇ ਅਸਫਲਤਾ ਦੀ ਤੰਗ ਸਮਾਂ-ਖਿੜਕੀ ਭੇਜੋ; ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਨ ਲਈ ਕਿ ਗਲਤੀ ਹੈ, ਪੂਰੀ ਟ੍ਰੈਫ਼ਿਕ ਕੈਪਚਰ ਜਾਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨਾ ਭੇਜੋ।

ਜੇ ਸੇਵਾ ਸਿੱਧੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਅਤੇ ਡਿਵਾਈਸ ਨੀਤੀ ਵੀ ਦਿੰਦੀ ਹੈ, ਤਾਂ ਹਰ ਐਪ ਲਈ ਛੋਟ ਹੀ ਸਹਾਇਕ ਤਰੀਕਾ ਹੈ, ਅਤੇ ਇਹ ਟਨਲ ਲੁਕਾਉਣ ਦੀ ਬਜਾਏ ਉਸ ਐਪ ਨੂੰ ਜਾਣ-ਬੁੱਝ ਕੇ ਟਨਲ ਵਿੱਚੋਂ ਕੱਢ ਦਿੰਦਾ ਹੈ। ਫਿਰ ਐਪ ਦੀ ਟ੍ਰੈਫ਼ਿਕ ਆਪਣੇ ਰਾਹੇ ਨਿਕਲਦੀ ਹੈ, ਜੋ ਇੱਕ ਨੀਤੀ ਫ਼ੈਸਲਾ ਹੈ ਜਿਸਨੂੰ ਕਿਸੇ ਨੇ ਚੁੱਕਣਾ ਪੈਂਦਾ ਹੈ। VPN ਤੋਂ ਬਿਨਾਂ ਬਲਾਕ ਕਰਨ ਵਾਲੀ ਸੰਰਚਨਾ ਵਿੱਚ ਛੋਟ ਵਾਲੀ ਐਪ ਕਨੈਕਟੀਵਿਟੀ ਗੁਆ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਚੱਲਦੀ ਹੈ ਦਾ ਵਾਅਦਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹ ਸੰਜੋਗ ਪਰਖੋ।

ਕਿਸੇ ਵੀ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਕਦਮ-ਇੱਕ ਦੀ ਸਮਾਂ ਜਾਂਚ ਦੁਹਰਾਓ, ਐਪ ਦੇ ਚੱਲਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਅਤੇ ਹਰ ਹੋਰ ਐਪ ਦੇ ਅਜੇ ਵੀ ਟਨਲ ਵਰਤਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ। ਫਿਰ ਪਿਛਲੀ ਸੰਰਚਨਾ ਬਹਾਲ ਕਰੋ ਅਤੇ ਵੇਖੋ ਅਸਫਲਤਾ ਵਾਪਸ ਆਉਂਦੀ ਹੈ ਜਾਂ ਨਹੀਂ, ਕਿਉਂਕਿ ਜਿਸ ਸੁਧਾਰ ਨੂੰ ਤੁਸੀਂ ਦੁਬਾਰਾ ਪੈਦਾ ਨਹੀਂ ਕਰ ਸਕਦੇ ਉਹ ਸੰਜੋਗ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਫਿਰ ਮਿਲੇਗਾ।

ਸੰਬੰਧਿਤ ਲੇਖ