Android ਜਾਂ iOS 'ਤੇ ਐਪ ਸੰਭਾਲੀ VPN ਪ੍ਰੋਫਾਈਲ ਕਿਉਂ ਚਾਲੂ ਨਹੀਂ ਕਰ ਸਕਦੀ
ਆਪਣੀ ਖੁਦ ਦੀ ਟਨਲ ਬਣਾਉਣਾ ਅਤੇ ਸੰਭਾਲੀ ਪ੍ਰੋਫਾਈਲ ਚਾਲੂ ਕਰਨਾ ਦੋ ਵੱਖਰੇ ਕੰਮ ਹਨ। Android, iOS ਅਤੇ ਡੈਸਕਟਾਪ ਐਪ ਨੂੰ ਅਸਲ ਵਿੱਚ ਕੀ ਮਨਜ਼ੂਰੀ ਦਿੰਦੇ ਹਨ, ਤੁਲਨਾ ਕਰੋ।
ਦੋ ਬਿਲਕੁਲ ਵੱਖਰੇ ਕੰਮ ਪ੍ਰੋਗਰਾਮੈਟਿਕ VPN ਦੇ ਨਾਮ ਹੇਠ ਆਉਂਦੇ ਹਨ, ਅਤੇ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਦੋਵੇਂ ਮੋਬਾਈਲ ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਆਮ ਐਪ ਲਈ ਉਪਲਬਧ ਹੈ। ਪਹਿਲਾ ਹੈ ਉਹ ਪ੍ਰੋਫਾਈਲ ਚਾਲੂ ਕਰਨਾ ਜੋ ਵਰਤੋਂਕਾਰ ਪਹਿਲਾਂ ਹੀ ਸੰਭਾਲ ਚੁੱਕਾ ਹੈ; ਦੂਜਾ ਹੈ ਆਪਣੀ ਹੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਅੰਦਰ ਟਨਲ ਬਣਾਉਣਾ। Android ਦੂਜਾ VpnService ਰਾਹੀਂ ਦਿੰਦਾ ਹੈ ਅਤੇ iOS ਦੂਜਾ Network Extension ਅਧਿਕਾਰ ਰਾਹੀਂ ਦਿੰਦਾ ਹੈ, ਜਦਕਿ ਪਹਿਲਾ ਸਿਸਟਮ, ਡਿਵਾਈਸ ਦੇ ਮਾਲਕ ਜਾਂ MDM ਸਰਵਰ ਕੋਲ ਰਹਿੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਅਸਲ ਵਿੱਚ ਕਿਹੜਾ ਚਾਹੀਦਾ ਹੈ, ਇਹ ਪਤਾ ਕਰਨਾ ਆਮ ਤੌਰ 'ਤੇ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਛੋਟਾ ਕਰ ਦਿੰਦਾ ਹੈ।
ਇੱਕੋ ਨਾਮ ਵਾਲੇ ਦੋ ਕੰਮ
ਸੰਭਾਲੀ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਦਾ ਮਤਲਬ ਹੈ ਮੌਜੂਦਾ ਟਨਲ ਨੂੰ ਉੱਪਰ ਆਉਣ ਲਈ ਕਹਿਣਾ: ਇੱਕ ਹੋਸਟ, ਇੱਕ ਪ੍ਰਮਾਣ-ਪੱਤਰ, ਇੱਕ ਪ੍ਰੋਟੋਕੋਲ, ਸਭ ਕੁਝ ਪਹਿਲਾਂ ਹੀ ਅਜਿਹੀ ਥਾਂ ਕੌਂਫਿਗਰ ਹੈ ਜੋ ਵਰਤੋਂਕਾਰ ਦੇਖ ਸਕਦਾ ਹੈ। ਟਨਲ ਬਣਾਉਣ ਦਾ ਮਤਲਬ ਹੈ ਤੁਹਾਡਾ ਕੋਡ ਇੰਟਰਫੇਸ, ਪੈਕਟ ਲੂਪ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਦਾ ਮਾਲਕ ਹੈ। ਉਤਪਾਦ ਬੈਕਲਾਗ ਵਿੱਚ ਉਹ ਸਮਾਨ ਦਿਸਦੇ ਹਨ ਅਤੇ ਲਗਭਗ ਕੋਈ ਕਾਰਜਨਵਿਆਉਣ ਸਾਂਝਾ ਨਹੀਂ ਕਰਦੇ।
ਕੋਈ ਵੀ ਮੋਬਾਈਲ ਪਲੇਟਫਾਰਮ ਪਹਿਲੇ ਨੂੰ SDK ਐਪ ਸਾਹਮਣੇ ਨਹੀਂ ਖੋਲ੍ਹਦਾ। ਵਰਤੋਂਕਾਰ ਦੇ ਕੁਝ ਨਾ ਕਰਨ 'ਤੇ ਵੀ ਦਿਸਣ ਵਾਲਾ ਕਨੈਕਸ਼ਨ ਮਾਲਵੇਅਰ ਤੋਂ ਵੱਖ ਨਹੀਂ ਪਛਾਣਿਆ ਜਾ ਸਕਦਾ, ਇਸ ਲਈ ਦੋਵੇਂ ਸਿਸਟਮ ਟ੍ਰੈਫਿਕ ਢੋਣ ਵਾਲੀ ਹਰ ਐਪ ਅੱਗੇ ਸਹਿਮਤੀ ਦਾ ਦਰਵਾਜ਼ਾ ਰੱਖਦੇ ਹਨ।
Android: ਸਹਿਮਤੀ ਦਾ ਦਰਵਾਜ਼ਾ, ਅਤੇ ਕੋਈ ਪ੍ਰੋਫਾਈਲ API ਨਹੀਂ
VpnService Android 4.0 ਤੋਂ ਹੈ ਅਤੇ ਐਪ ਨੂੰ tun ਇੰਟਰਫੇਸ ਬਣਾਉਣ ਦਿੰਦਾ ਹੈ, ਫਿਰ ਪੈਕਟ ਪੜ੍ਹਦਾ ਅਤੇ ਲਿਖਦਾ ਹੈ। ਸੇਵਾ ਨੂੰ BIND_VPN_SERVICE ਨਾਲ ਘੋਸ਼ਿਤ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ, ਅਤੇ VpnService.prepare() ਵਰਤੋਂਕਾਰ ਤੋਂ ਇਜਾਜ਼ਤ ਮੰਗਣ ਵਾਲਾ ਸਿਸਟਮ ਸੰਵਾਦ ਬਣਾਉਂਦਾ ਹੈ। ਪਲੇਟਫਾਰਮ ਦਾ ਨਮੂਨਾ ToyVpn ਇੱਛਤ ਰੂਪ ਦਾ ਸਭ ਤੋਂ ਸਪਸ਼ਟ ਬਿਆਨ ਹੈ: ਤੁਹਾਡਾ ਕੋਡ ਇੰਟਰਫੇਸ ਅਤੇ ਉਸ ਵਿੱਚੋਂ ਵਹਿਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਦਾ ਮਾਲਕ ਹੈ।
ਜੋ ਇਹ ਨਹੀਂ ਕਰਦਾ ਉਹ ਹੈ ਸਿਸਟਮ ਦੀ VPN ਸੈਟਿੰਗਾਂ ਸਕ੍ਰੀਨ 'ਤੇ ਐਂਟਰੀ ਜੋੜਨਾ। ਇਸ ਲਈ ਕੋਈ ਜਨਤਕ API ਨਹੀਂ ਹੈ, ਅਤੇ ਸੈਟਿੰਗਾਂ ਐਪ ਆਪਣੀਆਂ ਪ੍ਰੋਫਾਈਲਾਂ ਅਜਿਹੇ ਸਟੋਰ ਵਿੱਚ ਰੱਖਦੀ ਹੈ ਜਿੱਥੇ ਆਮ ਐਪ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦੀ। ਆਮ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਲੁਕੀਆਂ ਕਲਾਸਾਂ ਨੂੰ ਕਾਲਾਂ ਅਜਿਹੀਆਂ ਪ੍ਰੋਫਾਈਲਾਂ ਬਣਾਉਂਦੀਆਂ ਹਨ ਜੋ ਸਿਸਟਮ ਕਦੇ ਸੂਚੀਬੱਧ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਇੱਕ ਬਿਲਡ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਦਿਸਣ ਵਾਲਾ ਕੋਡ ਅਗਲੇ ਵਿੱਚ ਚੁੱਪਚਾਪ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ।
ਪ੍ਰਬੰਧਿਤ ਰਾਹ ਵੱਖਰਾ ਹੈ। ਡਿਵਾਈਸ ਮਾਲਕ ਜਾਂ ਪ੍ਰੋਫਾਈਲ ਮਾਲਕ ਡਿਵਾਈਸ ਨੀਤੀ API ਰਾਹੀਂ ਹਮੇਸ਼ਾ ਚਾਲੂ VPN ਪੈਕੇਜ ਨਿਯੁਕਤ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਟੂਲ ਅਜਿਹੀ ਪ੍ਰੋਫਾਈਲ ਭੇਜ ਸਕਦਾ ਹੈ ਜਿਸ ਨੂੰ ਵਰਤੋਂਕਾਰ ਬਾਅਦ ਵਿੱਚ ਮਨਜ਼ੂਰ ਕਰਦਾ ਹੈ। ਇਹ ਡਿਵਾਈਸ-ਪ੍ਰਬੰਧਨ ਅਧਿਕਾਰ ਹੈ, ਇੰਸਟਾਲ ਵੇਲੇ ਐਪ ਦੀ ਮੰਗੀ ਇਜਾਜ਼ਤ ਨਹੀਂ। ਜੇ ਤੁਹਾਡਾ ਗਾਹਕ ਸੰਸਥਾ ਹੈ, ਤਾਂ ਇਹੀ ਉਹ ਰਾਹ ਹੈ ਜਿਸ ਦੀ ਯੋਜਨਾ ਬਣਾਉਣੀ ਹੈ; ਜੇ ਗਾਹਕ ਸਟੋਰ ਤੋਂ ਇੰਸਟਾਲ ਕਰਨ ਵਾਲਾ ਵਿਅਕਤੀ ਹੈ, ਤਾਂ ਇਹ ਬਿਲਕੁਲ ਉਪਲਬਧ ਨਹੀਂ।
iOS: ਅਧਿਕਾਰ ਹੀ ਸੀਮਾ ਹੈ
iOS ਉਹੀ ਕੰਮ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਵੰਡਦਾ ਹੈ। VPN ਕਲਾਇੰਟ Network Extension ਢਾਂਚੇ ਅਧੀਨ ਪੈਕਟ ਟਨਲ ਪ੍ਰਦਾਤਾ ਜਾਂ ਐਪ ਪ੍ਰੌਕਸੀ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਅਤੇ ਸੰਬੰਧਿਤ ਅਧਿਕਾਰ ਡਿਵੈਲਪਰ ਖਾਤੇ ਨੂੰ ਦੇਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਸਰਲ ਮਾਮਲੇ ਲਈ NEVPNManager ਰਾਹੀਂ ਨਿੱਜੀ VPN ਸੰਰਚਨਾ ਹੈ, ਅਤੇ ਇਹ ਅਜੇ ਵੀ ਉਸੇ ਇਜਾਜ਼ਤ ਮਾਡਲ ਅੰਦਰ ਚੱਲਦੀ ਹੈ। Apple ਪੂਰੀ ਸਤ੍ਹਾ Network Extension ਸੰਦਰਭ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ ਕਰਦਾ ਹੈ, ਜੋ ਕੰਮ ਦਾ ਘੇਰਾ ਤੈਅ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੜ੍ਹਨ ਯੋਗ ਹੈ।
VPN ਸੈਟਿੰਗਾਂ ਸਕ੍ਰੀਨ ਖੋਲ੍ਹਣ, ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਸੰਭਾਲੀਆਂ ਸੰਰਚਨਾਵਾਂ ਪੜ੍ਹਨ ਜਾਂ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਕੋਈ ਸਮਰਥਿਤ ਤਰੀਕਾ ਨਹੀਂ ਹੈ। ਕਲਾਇੰਟ ਜੋ ਕਰ ਸਕਦਾ ਹੈ ਉਹ ਹੈ ਇੰਸਟਾਲ ਲਈ ਸੰਰਚਨਾ ਪ੍ਰੋਫਾਈਲ ਭੇਜਣਾ, ਅਤੇ ਫਿਰ ਬਣੀ ਟਨਲ ਨੂੰ ਆਮ ਨੈੱਟਵਰਕਿੰਗ ਕਾਲਾਂ ਰਾਹੀਂ ਵਰਤਣਾ। ਪ੍ਰਤੀ-ਐਪ ਟਨਲਿੰਗ MDM ਸਰਵਰ ਮੰਗ-ਅਧਾਰਿਤ ਨਿਯਮ ਰਾਹੀਂ ਸੌਂਪਦਾ ਹੈ, ਰਨਟਾਈਮ 'ਤੇ ਐਪ ਇਸ ਨੂੰ ਨਹੀਂ ਚੁਣਦੀ।
ਵੱਡੇ ਵਿਕਰੇਤਾ ਦਾ VPN ਕਲਾਇੰਟ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਨਹੀਂ ਕਿ ਤੁਹਾਡਾ ਖਾਤਾ ਉਹੀ ਭੇਜ ਸਕਦਾ ਹੈ। ਉਹ ਅਧਿਕਾਰ ਪ੍ਰਤੀ ਡਿਵੈਲਪਰ ਖਾਤਾ ਮੰਗੇ ਅਤੇ ਸਮੀਖਿਆ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ ਸਮਾਂ-ਸਾਰਣੀ ਦਾ ਜੋਖਮ Apple 'ਤੇ ਹੈ, ਤੁਹਾਡੀ ਸਪ੍ਰਿੰਟ ਯੋਜਨਾ 'ਤੇ ਨਹੀਂ।
ਡੈਸਕਟਾਪ ਹੋਰ ਦੂਰ ਪਹੁੰਚਦਾ ਹੈ, ਪਰ ਮਾਲਕੀ ਬਦਲਦੀ ਨਹੀਂ
Windows ਮਨਜ਼ੂਰੀ ਦੇਣ ਵਾਲਾ ਮਾਮਲਾ ਹੈ। Add-VpnConnection ਉੱਨਤ PowerShell ਸੈਸ਼ਨ ਤੋਂ ਫ਼ੋਨਬੁੱਕ ਐਂਟਰੀ ਬਣਾਉਂਦਾ ਹੈ, ਅਤੇ rasdial ਸਕ੍ਰਿਪਟ ਤੋਂ ਇਸ ਨੂੰ ਜੋੜਦਾ ਜਾਂ ਤੋੜਦਾ ਹੈ। ਐਪ ਵਿਕਰੇਤਾ ਦੇ ਕਲਾਇੰਟ ਨੂੰ ਉਸ ਦੀ ਦਸਤਾਵੇਜ਼ੀ ਕਮਾਂਡ ਲਾਈਨ ਰਾਹੀਂ ਵੀ ਚਲਾ ਸਕਦੀ ਹੈ। ਪ੍ਰੋਫਾਈਲ ਬਣਾਉਣਾ ਅਜੇ ਵੀ ਪ੍ਰਬੰਧਕੀ ਕਾਰਵਾਈ ਹੈ, ਕਿਉਂਕਿ ਐਂਟਰੀ ਪੂਰੀ ਮਸ਼ੀਨ ਦੇ ਸਟੋਰ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ।
macOS ਹੋਰ ਸੰਦਾਂ ਨਾਲ ਉਸੇ ਤਰ੍ਹਾਂ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ। scutil --nc start ਅਤੇ stop ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਸੇਵਾਵਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਜਦਕਿ ਇੱਕ ਬਣਾਉਣਾ ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸਨ ਦਾ ਕੰਮ ਹੈ। ਲੈਪਟਾਪ 'ਤੇ ਪ੍ਰਕਿਰਿਆ ਦੀ ਮਾਲਕੀ ਤੁਹਾਨੂੰ ਸੰਰਚਨਾ ਦਾ ਮਾਲਕ ਨਹੀਂ ਬਣਾਉਂਦੀ।
ਇਸ ਦੀ ਬਜਾਏ ਕੀ ਬਣਾਉਣਾ ਹੈ
ਜੇ ਅਸਲ ਲੋੜ ਇਹ ਹੈ ਕਿ ਤੁਹਾਡੀ ਐਪ ਅੰਦਰੂਨੀ API ਤੱਕ ਪਹੁੰਚੇ, ਤਾਂ ਵਰਤੋਂਕਾਰ ਦੀ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਹੀ ਟਨਲ ਕਾਫ਼ੀ ਹੈ। ਆਮ HTTPS ਬੇਨਤੀਆਂ ਭੇਜੋ, ਰਾਹ ਸਿਸਟਮ ਨੂੰ ਚੁਣਨ ਦਿਓ, ਅਤੇ ਟਨਲ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਬੰਦ ਕਰੋ। ਜੇ ਲੋੜ ਇਹ ਹੈ ਕਿ ਸਿਰਫ਼ ਤੁਹਾਡੀ ਐਪ ਦਾ ਟ੍ਰੈਫਿਕ ਟਨਲ ਵਰਤੇ, ਤਾਂ ਪ੍ਰਬੰਧਨ ਚੈਨਲ ਰਾਹੀਂ ਪ੍ਰਤੀ-ਐਪ VPN ਮੰਗੋ, ਜਾਂ ਐਪ ਦੇ ਅੰਦਰ ਉਸ ਸੇਵਾ ਦੇ ਸਾਮ੍ਹਣੇ TLS ਖ਼ਤਮ ਕਰੋ ਜੋ ਇਸ ਤੋਂ ਬਿਨਾਂ ਪਹੁੰਚਯੋਗ ਹੈ।
ਲੁਕੀਆਂ API ਲੈਣ ਯੋਗ ਛੋਟਾ ਰਾਹ ਨਹੀਂ ਹਨ। ਉਹ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਬਦਲਦੀਆਂ ਹਨ, ਐਪ ਸਮੀਖਿਆ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਉਹ ਜੋ ਨੁਕਸ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ ਉਹ ਕੋਡ ਦਾ ਵਿਰਸਾ ਲੈਣ ਵਾਲੇ ਨੂੰ ਆਮ ਨੈੱਟਵਰਕ ਨੁਕਸ ਲੱਗਦੇ ਹਨ। ਤੁਲਨਾ Android ਬਨਾਮ iOS ਨਹੀਂ ਹੈ; ਇਹ ਟਨਲ ਦੀ ਮਾਲਕੀ ਬਨਾਮ ਪਲੇਟਫਾਰਮ ਨੂੰ ਟ੍ਰੈਫਿਕ ਰੂਟ ਕਰਨ ਲਈ ਕਹਿਣਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਪਹਿਲਾ ਹੀ ਤੁਹਾਨੂੰ ਬਣਾਉਣਾ ਹੈ।