ਬਾਹਰ ਰੱਖਿਆ ਐਪ ਅਜੇ ਵੀ ਔਨਲਾਈਨ? ਐਪ ਅਤੇ ਰੂਟ ਦੇ ਨਿਯਮ ਵੱਖਰੇ ਹਨ
Android ਐਪ ਨੂੰ VPN ਤੋਂ ਬਾਹਰ ਰੱਖਣਾ ਉਸਨੂੰ ਬਲੌਕ ਨਹੀਂ ਕਰਦਾ। ਇਜਾਜ਼ਤ ਸੂਚੀਆਂ, UID ਨੀਤੀ ਨਿਯਮ ਅਤੇ ਭੇਜੇ ਗਏ ਰੂਟ ਪਾਥ ਦਾ ਵੱਖਰਾ ਹਿੱਸਾ ਤੈਅ ਕਰਦੇ ਹਨ।
ਪੈਕੇਜ ਬਾਹਰ ਰੱਖਣਾ ਬਲੌਕ ਨਹੀਂ, ਰੂਟਿੰਗ ਹਦਾਇਤ ਹੈ, ਇਸ ਲਈ VPN ਜੁੜਨ ਤੋਂ ਬਾਅਦ ਲੋਡ ਹੋਣ ਵਾਲੇ ਪੰਨੇ ਉਮੀਦਯੋਗ ਹਨ, ਨਾਕਾਮੀ ਦਾ ਸਬੂਤ ਨਹੀਂ। ਬਾਹਰ ਰੱਖਣਾ ਐਪ ਨੂੰ ਬਲੌਕ ਕਰਨ ਦੀ ਥਾਂ ਟਨਲ ਤੋਂ ਕੱਢ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਆਮ ਨੈਟਵਰਕ ਉਸਦਾ ਟ੍ਰੈਫਿਕ ਚੁੱਕਦਾ ਹੈ। ਇੱਥੇ ਦੋ ਵੱਖਰੀਆਂ ਨੀਤੀਆਂ ਮਿਲਦੀਆਂ ਹਨ: ਇੱਕ ਪ੍ਰਕਿਰਿਆਵਾਂ ਚੁਣਦੀ ਹੈ, ਦੂਜੀ ਮੰਜ਼ਿਲਾਂ. ਉਹਨਾਂ ਨੂੰ ਇਸ ਕ੍ਰਮ ਵਿੱਚ ਪੜ੍ਹਨ ਨਾਲ ਸਮਝ ਆਉਂਦਾ ਹੈ ਕਿ ਜੁੜਿਆ ਆਈਕਨ ਅਤੇ ਚੱਲਦੀ ਐਪ ਵਿਰੋਧਾਭਾਸ ਕਿਉਂ ਨਹੀਂ ਹਨ।
ਬਾਹਰ ਰੱਖਣਾ ਨੈਟਵਰਕ ਖੁੱਲ੍ਹਾ ਕਿਉਂ ਰੱਖਦਾ ਹੈ
VpnService.Builder ਜਾਂ ਇਜਾਜ਼ਤ ਸੂਚੀ ਲੈਂਦਾ ਹੈ ਜਾਂ ਪਾਬੰਦੀ ਸੂਚੀ, ਦੋਵੇਂ ਕਦੇ ਨਹੀਂ। ਇਜਾਜ਼ਤ ਸੂਚੀ ਦੇ ਪੈਕੇਜ ਹੀ ਟਨਲ ਵਿੱਚੋਂ ਜਾਂਦੇ ਹਨ। ਪਾਬੰਦੀ ਸੂਚੀ ਇਸਨੂੰ ਉਲਟ ਦਿੰਦੀ ਹੈ: ਸੂਚੀਬੱਧ ਤੋਂ ਇਲਾਵਾ ਹਰ ਪੈਕੇਜ ਟਨਲ ਵਰਤਦਾ ਹੈ, ਅਤੇ ਸੂਚੀਬੱਧ ਭੌਤਿਕ ਪਾਥ ਰੱਖਦੇ ਹਨ। ਇਜਾਜ਼ਤ ਸੂਚੀ ਵਿੱਚ ਨਾ ਵਾਲਾ ਪੈਕੇਜ ਵੀ ਟਨਲ ਤੋਂ ਬਾਹਰ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਉਸ ਮੋਡ ਵਿੱਚ ਬਹੁਤੀਆਂ ਐਪਾਂ ਲਈ ਬਾਹਰ ਰੱਖਣਾ ਆਮ ਹਾਲਤ ਹੈ।
ਇਸ ਨਾਲ ਸਥਾਨਕ ਪਾਬੰਦੀ ਐਂਟਰੀ ਫਾਇਰਵਾਲ ਨਿਯਮ ਨਹੀਂ, ਰੂਟਿੰਗ ਫੈਸਲਾ ਬਣ ਜਾਂਦੀ ਹੈ। ਜੇ ਲੋੜ ਐਪ ਨੂੰ ਹੋਸਟ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਰੋਕਣਾ ਹੈ, ਤਾਂ ਟਨਲ ਨੇ ਉਸਨੂੰ ਢੱਕਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਜਾਂ ਸਥਾਨਕ ਨੀਤੀ ਨੇ ਟ੍ਰੈਫਿਕ ਮਨ੍ਹਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਐਪ ਨੂੰ ਟਨਲ ਤੋਂ ਕੱਢਣ ਨਾਲ ਸਿਰਫ ਇਹ ਬਦਲਦਾ ਹੈ ਕਿ ਉਸਦੇ ਪੈਕੇਟ ਕਿਹੜਾ ਇੰਟਰਫੇਸ ਚੁੱਕਦਾ ਹੈ।
Play Store ਦਾ ਮਾਮਲਾ ਆਮ ਜਾਣਬੁੱਝ ਕੇ ਲਿਆ ਉਦਾਹਰਨ ਹੈ। ਸਟੋਰ ਪੈਕੇਜ ਬਾਹਰ ਰੱਖਣ ਨਾਲ ਡਾਊਨਲੋਡ ਅਧਾਰ ਕਨੈਕਸ਼ਨ ਵਰਤ ਸਕਦੇ ਹਨ ਜਦੋਂ VPN ਨਿਕਾਸ ਟ੍ਰਾਂਸਫਰ ਵਿੱਚ ਰੁਕਾਵਟ ਪਾਉਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਬਾਹਰ ਰੱਖਣਾ ਬਲੌਕ ਨਹੀਂ, ਬਚਾਅ ਹੈ।
ਇੱਕ ਪ੍ਰੋਫਾਈਲ, ਇੱਕ ਸੂਚੀ
ਦੋਵੇਂ ਕਾਲ ਵਰਤੇ ਜਾਣ ਤੇ ਬਿਲਡਰ ਅਪਵਾਦ ਸੁੱਟਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਹਾਡੇ ਸਾਹਮਣੇ ਪ੍ਰੋਫਾਈਲ ਜਾਂ ਇਜਾਜ਼ਤ ਸੂਚੀ ਹੈ ਜਾਂ ਪਾਬੰਦੀ ਸੂਚੀ। ਇਹੀ ਇੱਕ ਤੱਥ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਹਰ ਅਗਲੀ ਨਿਗਰਾਨੀ ਕਿਵੇਂ ਪੜ੍ਹਨੀ ਹੈ। ਰੂਟਿੰਗ ਟੇਬਲ ਤੋਂ ਪਹਿਲਾਂ ਕੋਡ ਜਾਂ ਪ੍ਰਬੰਧਿਤ ਕਨਫਿਗਰੇਸ਼ਨ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਸੂਚੀ ਹੀ ਬਾਕੀ ਆਉਟਪੁੱਟ ਦਾ ਅਰਥ ਤੈਅ ਕਰਦੀ ਹੈ। ਹਾਈਬ੍ਰਿਡ ਪ੍ਰੋਫਾਈਲ ਉਹ ਹਾਲਤ ਨਹੀਂ ਜੋ ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ।
ਇਹ ਫ਼ਰਕ ਇਹ ਵੀ ਦੱਸਦਾ ਹੈ ਕਿ ਨਵੀਂ ਸਥਾਪਿਤ ਐਪ ਕੀ ਕਰੇਗੀ। ਇਜਾਜ਼ਤ ਸੂਚੀ ਵਿੱਚ ਕੋਈ ਜੋੜੇ ਬਿਨਾਂ ਉਹ ਬਾਹਰ ਰਹਿੰਦੀ ਹੈ, ਜਦਕਿ ਪਾਬੰਦੀ ਸੂਚੀ ਵਿੱਚ ਉਹ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ ਟਨਲ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਜਾਂਦੀ ਹੈ।
ਪ੍ਰਬੰਧਿਤ ਕਨਫਿਗਰੇਸ਼ਨ ਉਹੀ ਚੋਣ ਹੋਰ ਕੁੰਜੀ ਨਾਵਾਂ ਹੇਠ ਦਿਖਾਉਂਦੇ ਹਨ, ਅਤੇ ਕੁਝ ਕੰਸੋਲ ਇਸਨੂੰ ਸੂਚੀ ਦੀ ਥਾਂ ਪ੍ਰਤੀ-ਐਪ VPN ਮੋਡ ਕਹਿੰਦੇ ਹਨ। ਵਿਵਹਾਰ ਫਿਰ ਵੀ ਉਹਨਾਂ ਦੋ ਕਾਲਾਂ ਤੱਕ ਆਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਲੇਬਲ ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਸੈਟਿੰਗ ਨੂੰ ਪੈਕੇਜ ਸੂਚੀ ਤੱਕ ਪਿੱਛੇ ਟ੍ਰੇਸ ਕਰੋ। ਜੇ ਲੇਬਲ ਅਤੇ ਸੂਚੀ ਨਾ ਮਿਲਣ, ਸੂਚੀ ਜਿੱਤਦੀ ਹੈ।
UID ਨਿਯਮ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋਏ ਟਨਲ ਟੇਬਲ ਤੱਕ ਜਾਓ
Android ਹਰ ਐਪ ਨੂੰ ਆਪਣੀ Linux ਉਪਭੋਗਤਾ ID ਦਿੰਦਾ ਹੈ, ਅਤੇ VPN ਸੇਵਾ UID ਰੇਂਜਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਨੀਤੀ ਨਿਯਮ ਸਥਾਪਿਤ ਕਰਦੀ ਹੈ। ਮੇਲ ਖਾਂਦਾ ਟ੍ਰੈਫਿਕ ਉਸ ਰੂਟਿੰਗ ਟੇਬਲ ਵਿੱਚ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ ਜਿਸਦਾ ਡਿਫਾਲਟ ਰੂਟ tun ਡਿਵਾਈਸ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਟੇਬਲ ਨੰਬਰ ਹਰ VPN ਇੰਸਟੈਂਸ ਲਈ ਅਲਾਟ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਦੁਬਾਰਾ ਜੁੜਨ ਜਾਂ ਦੂਜੀ VPN ਪ੍ਰੋਫਾਈਲ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ ਇਹ ਬਦਲਦਾ ਹੈ।
ਨਿਯਮਾਂ ਦੀ ਆਉਟਪੁੱਟ ਹੀ ਨਕਸ਼ਾ ਹੈ। ਹਰ ਲਾਈਨ ਇੱਕ ਖੋਜ ਟੇਬਲ ਦਾ ਨਾਮ ਲੈਂਦੀ ਹੈ, ਅਤੇ ਉਹ ਟੇਬਲ ਉਹ ਡਿਫਾਲਟ ਰੂਟ ਰੱਖਦੀ ਹੈ ਜੋ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਮੇਲ ਖਾਂਦੇ ਪੈਕੇਟ ਟਨਲ ਵਿੱਚ ਦਾਖਲ ਹੁੰਦੇ ਹਨ ਜਾਂ ਨਹੀਂ।
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
UID ਲੈਣ ਲਈ ਪਹਿਲਾਂ ਤੀਜਾ ਕਮਾਂਡ ਚਲਾਓ, ਫਿਰ ਉਹ ਨਿਯਮ ਲੱਭੋ ਜਿਸਦੀ ਰੇਂਜ ਵਿੱਚ ਇਹ ਆਉਂਦਾ ਹੈ। ਉਹ ਨਿਯਮ ਟੇਬਲ ਨੰਬਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ, ਅਤੇ ip route show table <n> ਉਸ ਨੰਬਰ ਨਾਲ ਦਿਖਦਾ ਹੈ ਕਿ tun ਡਿਵਾਈਸ ਰਾਹੀਂ ਡਿਫਾਲਟ ਰੂਟ ਹੈ ਜਾਂ ਨਹੀਂ। ਜੇ ਟੇਬਲ ਵਿੱਚ ਡਿਫਾਲਟ ਨਾ ਹੋਵੇ, ਐਪ ਚੁਣੀ ਗਈ ਹੈ ਪਰ ਰਾਹ ਨਹੀਂ, ਜੋ ਵੱਖਰੀ ਨਾਕਾਮੀ ਹੈ।
ਇਹਨਾਂ ਕਮਾਂਡਾਂ ਲਈ ਡੀਬੱਗ ਕਰਨ ਯੋਗ ਬਿਲਡ ਜਾਂ ਅਜਿਹਾ ਡਿਵਾਈਸ ਚਾਹੀਦਾ ਹੈ ਜਿੱਥੇ adb shell ਨੈਟਵਰਕ ਹਾਲਤ ਪੜ੍ਹ ਸਕੇ। ਉਤਪਾਦਨ ਹੈਂਡਸੈੱਟ ਤੇ ਪੈਕੇਜ ਮੈਨੇਜਰ ਅਜੇ ਵੀ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਪਰ ਰੂਟਿੰਗ ਜਾਂਚ ਮਨ੍ਹਾ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਜੋ ਕਰ ਸਕੋ ਦਰਜ ਕਰੋ ਅਤੇ ਬਾਕੀ ਨੂੰ ਅਣਪੁਸ਼ਟੀ ਮੰਨੋ।
ਰੂਟ ਐਪ ਨਹੀਂ, ਪ੍ਰੀਫਿਕਸ ਮੰਗਦਾ ਹੈ
Builder.addRoute ਟਨਲ ਲਈ ਮੰਜ਼ਿਲ ਪ੍ਰੀਫਿਕਸ ਮੰਗਦਾ ਹੈ। ਜੋ ਪ੍ਰੋਫਾਈਲ ਸਿਰਫ 10.0.0.0/8 ਜੋੜਦੀ ਹੈ ਉਹ ਉਹ ਪ੍ਰੀਫਿਕਸ ਟਨਲ ਰਾਹੀਂ ਭੇਜਦੀ ਹੈ ਅਤੇ ਬਾਕੀ ਹਰ ਮੰਜ਼ਿਲ ਭੌਤਿਕ ਪਾਥ ਤੇ ਛੱਡਦੀ ਹੈ। ਇਹ ਆਮ ਵੰਡਿਆ ਟਨਲਿੰਗ ਹੈ, ਅਤੇ ਨਿਯਮਾਂ ਨੇ ਕਿਹੜੀਆਂ ਐਪਾਂ ਚੁਣੀਆਂ ਇਸ ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰਦਾ।
ਸਰਵਰ ਵੱਲੋਂ ਭੇਜੀ ਕਨਫਿਗਰੇਸ਼ਨ ਉਹੀ ਮਾਡਲ ਦਰਸਾਉਂਦੀ ਹੈ। ਵੱਖਰੇ ਰੂਟ ਪੁਸ਼ ਪ੍ਰੀਫਿਕਸ ਜੋੜਦੇ ਹਨ, ਜਦਕਿ redirect-gateway ਹਦਾਇਤ ਡਿਫਾਲਟ ਰੂਟ ਬਦਲ ਦਿੰਦੀ ਹੈ ਅਤੇ ਟਨਲ ਜਿਹਨਾਂ ਐਪਾਂ ਨੂੰ ਢੱਕਦਾ ਹੈ ਉਹਨਾਂ ਲਈ ਸਭ ਕੁਝ ਫੜ ਲੈਂਦੀ ਹੈ। ਉਹ ਹਦਾਇਤ ਹਟਾਉਣ ਨਾਲ ਡਿਵਾਈਸ ਤੇ ਕੋਈ ਬਦਲਾਅ ਨਾ ਕਰਕੇ ਚੱਲਦਾ ਟਨਲ ਇੱਕ ਸਬਨੈੱਟ ਤੱਕ ਸੁੰਗੜ ਸਕਦਾ ਹੈ।
ਅਸਧਾਰਨ ਗੇਟਵੇ ਜਾਂ ਮੈਟ੍ਰਿਕ ਯੋਗਤਾ ਵਾਲਾ ਭੇਜਿਆ ਰੂਟ ਵੀ ਸਥਾਪਿਤ ਨਾ ਹੋ ਸਕਦਾ ਹੈ। ਸਾਧਾਰਨ ਪ੍ਰੀਫਿਕਸ ਰੂਪ ਪਸੰਦ ਕਰੋ ਅਤੇ ਫਾਰਵਰਡਿੰਗ ਤੇ NAT ਸਰਵਰ ਤੇ ਛੱਡੋ।
ਸੈਟਿੰਗ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਕਟੌਤੀ ਪੜ੍ਹੋ
ਟਨਲ ਢੱਕੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਅਤੇ ਮੰਗੀਆਂ ਮੰਜ਼ਿਲਾਂ ਦੀ ਕਟੌਤੀ ਚੁੱਕਦਾ ਹੈ। ਢੱਕੀ ਐਪ ਪ੍ਰਕਾਸ਼ਿਤ ਪ੍ਰੀਫਿਕਸ ਤੋਂ ਬਾਹਰ ਦਾ ਪਤਾ ਮੰਗੇ ਤਾਂ ਭੌਤਿਕ ਨੈਟਵਰਕ ਰਾਹੀਂ ਨਿਕਲਦੀ ਹੈ। ਪਾਬੰਦੀਸ਼ੁਦਾ ਪੈਕੇਜ ਉਹਨਾਂ ਪ੍ਰੀਫਿਕਸ ਦੇ ਅੰਦਰ ਦਾ ਪਤਾ ਮੰਗਣ ਤੇ ਵੀ ਬਾਹਰ ਰਹਿੰਦਾ ਹੈ। ਦੋਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨੁਕਸ ਨਹੀਂ; ਦੋਵੇਂ ਉਹੀ ਦੋ ਨੀਤੀਆਂ ਆਪਣਾ ਕੰਮ ਕਰ ਰਹੀਆਂ ਹਨ।
ਪ੍ਰਤੀ-ਐਪ VPN ਸੰਬੰਧਿਤ ਐਪ ਨੂੰ ਕਨੈਕਟੀਵਿਟੀ ਬਿਨਾਂ ਵੀ ਛੱਡ ਸਕਦਾ ਹੈ। ਜਦੋਂ on-demand ਬੰਦ ਹੋਵੇ ਅਤੇ ਟਨਲ ਥੱਲੇ ਹੋਵੇ, ਐਪ ਪ੍ਰਤੀ-ਐਪ VPN ਨਾਲ ਬੱਝੀ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਕੋਈ ਵਿਕਲਪੀ ਰਾਹ ਨਹੀਂ, ਜੋ ਨੀਤੀ ਦੀ ਹਾਲਤ ਨਹੀਂ ਸਗੋਂ ਟੁੱਟੀ ਐਪ ਵਰਗੀ ਦਿਸਦੀ ਹੈ। on-demand ਚਾਲੂ ਕਰਨਾ, ਜਾਂ ਪ੍ਰਬੰਧਨ ਰਾਹੀਂ ਸੰਬੰਧ ਹਟਾਉਣਾ, ਇਹ ਬਦਲਦਾ ਹੈ।
| Layer | What it selects | Where to look | Typical mismatch |
|---|---|---|---|
| Package list | Processes | Builder calls or managed configuration | App excluded but expected to be blocked |
| UID policy rule | Which table a UID uses | ip rule show | Tunnel icon on, app still on Wi-Fi |
| Routing table | Destinations for matched traffic | ip route show table <n> | Covered app reaches only one subnet |
| Server push | Prefixes offered to the client | Server route configuration | Tunnel shrinks after a server edit |
ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਧੁਰੇ ਦਾ ਨਿਦਾਨ ਕਰੋ। ਪਹਿਲਾਂ ਇਜਾਜ਼ਤ ਜਾਂ ਪਾਬੰਦੀ ਪੱਕੀ ਕਰੋ, ਦੂਜੇ ਸਥਾਪਿਤ UID ਨਿਯਮ ਅਤੇ ਟੇਬਲ ਪੜ੍ਹੋ, ਅਤੇ ਅੰਤ ਵਿੱਚ ਉਸੇ ਮੰਜ਼ਿਲ ਵਿਰੁੱਧ ਦੂਜੀ ਐਪ ਜਾਂਚੋ। ਦੂਜੀ ਐਪ ਇੱਕ ਹੀ ਬੇਨਤੀ ਵਿੱਚ ਪ੍ਰਕਿਰਿਆ ਚੋਣ ਨੂੰ ਮੰਜ਼ਿਲ ਚੋਣ ਤੋਂ ਵੱਖ ਕਰਦੀ ਹੈ।
ਨਤੀਜਾ ਐਪ, ਮੰਜ਼ਿਲ ਅਤੇ ਟੇਬਲ ਨੰਬਰ ਵਜੋਂ ਲਿਖੋ। ਅਗਲਾ ਬਦਲਾਅ ਇਹੀ ਤ੍ਰਿਕ ਬਚਾਉਣਾ ਚਾਹੀਦਾ ਹੈ।