Android VPN ਸਰਵਰ: root ਫ਼ੋਨ ਨੂੰ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਬਣਾਉਂਦਾ
ਫ਼ੋਨ VPN ਕਲਾਇੰਟਾਂ ਦੀ ਸੇਵਾ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਤਿੰਨ ਵੱਖਰੀਆਂ ਸਮੱਸਿਆਵਾਂ ਤੈਅ ਕਰਦੀਆਂ ਹਨ: ਆਉਣ ਵਾਲਾ ਰਾਹ, ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਮਾਡਲ ਅਤੇ ਫਾਰਵਰਡਿੰਗ। root ਸਿਰਫ਼ ਵਿਚਕਾਰਲੇ ਨੂੰ ਛੂੰਹਦਾ ਹੈ।
root ਬਦਲਦਾ ਹੈ ਕਿ ਕਿਸੇ ਪ੍ਰੋਸੈਸ ਨੂੰ ਕਿਹੜੀਆਂ ਨੈੱਟਵਰਕ ਕਾਰਵਾਈਆਂ ਅਜ਼ਮਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਹੈ। ਇਹ ਫ਼ੋਨ ਨੂੰ ਜਨਤਕ ਤੌਰ 'ਤੇ ਪਹੁੰਚਯੋਗ ਪਤਾ ਨਹੀਂ ਦਿੰਦਾ, ਆਪਰੇਟਰ ਕੋਲ ਆਉਣ ਵਾਲੀ ਮੈਪਿੰਗ ਰਾਖਵੀਂ ਨਹੀਂ ਕਰਦਾ, ਅਤੇ ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਡੈਮਨ ਨੂੰ ਜ਼ਿੰਦਾ ਨਹੀਂ ਰੱਖਦਾ। ਜੇ ਤੁਸੀਂ ਫੈਸਲਾ ਕਰ ਰਹੇ ਹੋ ਕਿ Android ਫ਼ੋਨ VPN ਸਰਵਰ ਵਜੋਂ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਤਾਂ ਤਿੰਨ ਸਵਾਲ ਵੱਖ ਕਰੋ: ਕੀ ਲੋੜੀਂਦਾ ਕਲਾਇੰਟ ਲਿਸਨਰ ਤੱਕ ਪਹੁੰਚ ਹੀ ਸਕਦਾ ਹੈ, ਸਰਵਰ ਲਾਗੂਕਰਨ ਨੂੰ ਕਿਹੜਾ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਮਾਡਲ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਟਨਲ ਉੱਠਣ ਤੋਂ ਬਾਅਦ ਕੀ ਫਾਰਵਰਡ ਕਰਨਾ ਹੈ।
ਕੌਣ ਅਤੇ ਕਿੱਥੋਂ ਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚੇ
ਉਸੇ ਮਨਜ਼ੂਰ LAN ਵਿੱਚ ਬੈਠਾ ਕਲਾਇੰਟ ਅਤੇ ਮੋਬਾਈਲ ਡੇਟਾ ਵਾਲਾ ਕਲਾਇੰਟ ਦੋ ਵੱਖਰੇ ਨੈੱਟਵਰਕ ਪਰਖ ਰਹੇ ਹਨ। ਪਹਿਲਾਂ ਲੋੜੀਂਦਾ ਤੈਅ ਕਰੋ, ਕਿਉਂਕਿ ਜਵਾਬ ਇੱਕ-ਦੂਜੇ 'ਤੇ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦੇ। Wi-Fi 'ਤੇ ਬਿਨਾਂ ਮੰਗੇ ਆਉਣ ਵਾਲੇ ਟ੍ਰੈਫ਼ਿਕ ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਉੱਪਰਲੇ ਰਾਊਟਰ 'ਤੇ ਮੈਪਿੰਗ ਅਤੇ ਉਸ ਤੋਂ ਅੱਗੇ ਵਰਤੋਂਯੋਗ ਜਨਤਕ ਰਾਹ ਚਾਹੀਦਾ ਹੈ। ਸੈਲੂਲਰ 'ਤੇ ਆਪਰੇਟਰ-ਪੱਧਰੀ NAT ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਆਉਣ ਵਾਲਾ IPv4 ਅਕਸਰ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦਾ, ਫ਼ੋਨ ਜੋ ਵੀ ਮਨਜ਼ੂਰੀ ਦੇਵੇ।
ਉਹੀ ਆਖ਼ਰੀ ਨੁਕਤਾ ਅਜਿਹਾ ਹੈ ਜਿਸ ਨੂੰ root ਛੂਹ ਨਹੀਂ ਸਕਦਾ। ਫ਼ੋਨ ਦਾ ਸਥਾਨਕ ਫਾਇਰਵਾਲ ਅਤੇ ਆਪਰੇਟਰ ਦਾ NAT ਵੱਖਰੇ ਸਿਸਟਮ ਹਨ, ਅਤੇ ਪਹਿਲੇ ਨੂੰ ਬਦਲਣ ਦਾ ਦੂਜੇ 'ਤੇ ਕੋਈ ਅਸਰ ਨਹੀਂ ਹੁੰਦਾ। ਨਿੱਜੀ ਇੰਟਰਫ਼ੇਸ ਪਤਾ, ਮੋਬਾਈਲ-ਡੇਟਾ ਆਈਕਨ ਜਾਂ ਸੁਣਦਾ ਸਾਕਟ ਪਹੁੰਚਯੋਗਤਾ ਦਾ ਸਬੂਤ ਨਹੀਂ ਹਨ। ਜੇ ਆਪਰੇਟਰ ਦਾ ਰਾਹ ਦੁਨੀਆ ਭਰ ਵਿੱਚ ਰਾਊਟ ਹੋਣਯੋਗ IPv6 ਦਿੰਦਾ ਹੈ, ਤਾਂ ਵੀ ਉਸ ਲਈ ਜਾਣ-ਬੁੱਝ ਕੇ ਲਿਸਨਰ ਅਤੇ ਫਾਇਰਵਾਲ ਨੀਤੀ ਚਾਹੀਦੀ ਹੈ; ਪਤਾ ਹੋਣਾ ਕਨੈਕਸ਼ਨ ਸਵੀਕਾਰ ਕਰਨਾ ਨਹੀਂ ਹੈ।
| Client path | What actually decides reachability |
|---|---|
| Same LAN | The phone's listener and its local firewall |
| Wi-Fi, from the internet | A mapping on the upstream router plus a usable public path beyond it |
| Cellular IPv4 | The carrier's NAT, which the handset does not control |
| Cellular IPv6 | Address, listener and firewall policy together |
ਸੇਵਾ ਦੇਣਾ ਅਤੇ ਫਾਰਵਰਡ ਕਰਨਾ ਦੋ ਵੱਖਰੀਆਂ ਸਫਲਤਾਵਾਂ ਹਨ
ਪੂਰਾ ਹੋਇਆ VPN ਹੈਂਡਸ਼ੇਕ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਟਨਲ ਮੌਜੂਦ ਹੈ। ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਕਲਾਇੰਟ ਫ਼ੋਨ ਪਿੱਛੇ ਵਾਲੇ LAN ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ, ਜਾਂ ਫ਼ੋਨ ਇੰਟਰਨੈੱਟ ਨਿਕਾਸ ਵਜੋਂ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਵੱਖਰੇ ਸੰਰਚਨਾ ਹਨ ਜੋ ਅੰਦਰੂਨੀ ਪਤਾ ਯੋਜਨਾ, ਰਾਹਾਂ, ਵਾਪਸੀ ਵਿਵਹਾਰ ਅਤੇ ਤੁਹਾਡੇ ਅਸਲੀ ਲੋੜੀਂਦੇ ਕੰਮ ਲਈ ਤੰਗ ਫਾਰਵਰਡਿੰਗ ਨੀਤੀ 'ਤੇ ਉੱਸਰਦੇ ਹਨ।
ਫੇਲ੍ਹ ਦਾ ਢੰਗ ਅੰਦਾਜ਼ੇਯੋਗ ਹੈ: ਹੈਂਡਸ਼ੇਕ ਸਫਲ ਹੁੰਦਾ ਹੈ, ਕਲਾਇੰਟ ਜੁੜਿਆ ਦਿਖਦਾ ਹੈ, ਅਤੇ ਕੁਝ ਵੀ ਲੋਡ ਨਹੀਂ ਹੁੰਦਾ। ਕਲਾਇੰਟ ਡੀਬੱਗ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਦੋ ਭੂਮਿਕਾਵਾਂ ਵਿੱਚੋਂ ਕਿਹੜੀ ਬਣਾ ਰਹੇ ਹੋ। ਫ਼ੋਨ ਦੇ ਨੈੱਟਵਰਕ 'ਤੇ ਕਿਸੇ ਡਿਵਾਈਸ ਤੱਕ ਦੂਰੋਂ ਪਹੁੰਚ ਅਤੇ ਪੂਰੇ-ਟਨਲ ਵਾਲਾ ਇੰਟਰਨੈੱਟ ਨਿਕਾਸ ਵੱਖਰੇ ਫਾਰਵਰਡਿੰਗ ਨਿਯਮ ਮੰਗਦੇ ਹਨ, ਅਤੇ ਇੱਕ ਚਾਹੁੰਦਿਆਂ ਦੋਵੇਂ ਦੇਣਾ ਤੁਹਾਡੀ ਮੰਗੀ ਕਾਬਲੀਅਤ ਜੋੜੇ ਬਿਨਾਂ ਖ਼ਤਰਾ ਵਧਾਉਂਦਾ ਹੈ।
ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਮਾਡਲ ਇੱਕ ਚੋਣ ਹੈ, root ਜਾਂ ਕੁਝ ਨਹੀਂ ਐਸਾ ਨਹੀਂ
kernel TUN ਡਿਵਾਈਸ ਵਰਤਣ ਵਾਲਾ ਰਵਾਇਤੀ OpenVPN ਡੈਮਨ ਸੰਬੰਧਿਤ ਸਮਰੱਥਾਵਾਂ, ਡਿਵਾਈਸ ਨੋਡ ਤੱਕ ਪਹੁੰਚ ਅਤੇ Android ਦੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਦਾ ਸਹਿਯੋਗ ਮੰਗਦਾ ਹੈ। root SELinux ਤੋਂ ਵਿਆਪਕ ਛੋਟ ਨਹੀਂ ਹੈ; ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਵਾਲਾ ਪ੍ਰੋਸੈਸ ਵੀ ਪਲੇਟਫ਼ਾਰਮ ਨੀਤੀ ਨਾਲ ਸੀਮਿਤ ਰਹਿੰਦਾ ਹੈ। ਇਸੇ ਲਈ Linux ਸਰਵਰ 'ਤੇ ਸੁਚਾਰੂ ਚੱਲਣ ਵਾਲੀ ਬਾਇਨਰੀ ਫ਼ੋਨ 'ਤੇ ਇਜਾਜ਼ਤਾਂ ਬਾਰੇ ਸਪੱਸ਼ਟ ਗਲਤੀ ਤੋਂ ਬਿਨਾਂ ਫੇਲ੍ਹ ਹੋ ਸਕਦੀ ਹੈ।
ਯੂਜ਼ਰਸਪੇਸ ਗੇਟਵੇ ਲਾਗੂਕਰਨ ਦਾ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਮਾਡਲ ਬਿਲਕੁਲ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਆਮ ਦਾਅਵਾ ਕਿ Android 'ਤੇ ਹਰ VPN ਸਰਵਰ ਨੂੰ root ਚਾਹੀਦਾ ਹੈ, ਬਹੁਤ ਵਿਆਪਕ ਹੈ। root ਤੁਹਾਨੂੰ ਹੋਰ ਕਾਰਵਾਈਆਂ ਅਜ਼ਮਾਉਣ ਦੀ ਕਾਬਲੀਅਤ ਦਿੰਦਾ ਹੈ, ਇਹ ਗਾਰੰਟੀ ਨਹੀਂ ਕਿ ਉਨ੍ਹਾਂ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲੇਗੀ ਜਾਂ ਨਤੀਜਾ ਪਹੁੰਚਯੋਗ ਹੋਵੇਗਾ।
Android ਦੀ ਆਪਣੀ VPN-ਸੇਵਾ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਫਿਰ ਇੱਕ ਹੋਰ ਵੱਖਰਾ ਤੰਤਰ ਹੈ। ਇਹ ਐਪ ਨੂੰ ਨਿਰਧਾਰਤ ਜੀਵਨ-ਚੱਕਰ ਵਾਲਾ ਪ੍ਰਬੰਧਿਤ ਕਲਾਇੰਟ ਇੰਟਰਫ਼ੇਸ ਦਿੰਦੀ ਹੈ; ਇਹ ਆਮ ਸਰਵਰ ਇੰਸਟਾਲਰ ਨਹੀਂ ਹੈ, ਅਤੇ ਟਰਮੀਨਲ ਤੋਂ ਡੈਮਨ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਇਸ ਨੂੰ ਲਗਾਤਾਰ ਪ੍ਰਬੰਧਨ, ਪ੍ਰਤੀ-ਐਪ ਨੀਤੀ ਜਾਂ ਆਪਣਾ ਰਿਕਵਰੀ ਰਾਹ ਨਹੀਂ ਮਿਲਦਾ।
ਜੇ ਤੁਹਾਨੂੰ ਨਿਕਾਸ ਬਿੰਦੂ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਆਰਕੀਟੈਕਚਰ ਬਦਲੋ
ਜਦੋਂ ਟੀਚਾ ਮੌਜੂਦਾ OpenVPN ਪ੍ਰੋਫ਼ਾਈਲ ਨਾਲ ਅਨੁਕੂਲਤਾ ਨਹੀਂ, ਸਿਰਫ਼ ਫ਼ੋਨ ਰਾਹੀਂ ਦੂਰੋਂ ਇੰਟਰਨੈੱਟ ਨਿਕਾਸ ਹੈ, ਤਾਂ ਓਵਰਲੇ ਨੈੱਟਵਰਕ ਦਾ ਸਮਰਥਿਤ ਨਿਕਾਸ ਨੋਡ ਵਧੇਰੇ ਢੁਕਵਾਂ ਡਿਜ਼ਾਈਨ ਹੈ। Tailscale ਆਪਣੇ ਰਜਿਸਟ੍ਰੇਸ਼ਨ, ਅਧਿਕਾਰ ਅਤੇ ਕਲਾਇੰਟ-ਚੋਣ ਕਦਮਾਂ ਨਾਲ Android ਨਿਕਾਸ-ਨੋਡ ਭੂਮਿਕਾ ਦਾ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਕਰਦਾ ਹੈ।
ਇਹ ਅਦਲਾ-ਬਦਲੀ ਅਸਲੀ ਹੈ ਅਤੇ ਸਪੱਸ਼ਟ ਕਹਿਣ ਯੋਗ ਹੈ: ਤੁਸੀਂ ਵੱਖਰਾ ਪ੍ਰੋਟੋਕੋਲ, ਵੱਖਰਾ ਭਰੋਸਾ ਮਾਡਲ ਅਤੇ ਉਸ ਖਾਤੇ ਤੇ ਸਮਨਵੈ ਸੇਵਾ 'ਤੇ ਨਿਰਭਰਤਾ ਸਵੀਕਾਰ ਕਰਦੇ ਹੋ। ਇਹ ਬਦਲੇ ਬਿਨਾਂ OpenVPN ਕਲਾਇੰਟ ਨੂੰ ਓਵਰਲੇ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕਰਦੀ, ਅਤੇ ਜਨਤਕ ਪਤੇ 'ਤੇ OpenVPN ਲਿਸਨਰ ਨਹੀਂ ਦਿੰਦੀ।
ਤੈਨਾਤੀ ਨੂੰ ਹਾਲੇ ਹੋਰ ਕੀ ਚਾਹੀਦਾ ਹੈ
ਤੁਸੀਂ ਕੋਈ ਵੀ ਰਾਹ ਚੁਣੋ, ਕਾਰਜਸ਼ੀਲ ਬੁਨਿਆਦਾਂ ਇਹ ਤੈਅ ਕਰਦੀਆਂ ਹਨ ਕਿ ਇਹ ਇੱਕ ਹਫ਼ਤਾ ਟਿਕੇਗਾ ਜਾਂ ਨਹੀਂ। ਸਰਵਰ ਦੇ ਪ੍ਰਮਾਣ ਪੱਤਰ ਨਿੱਜੀ ਰੱਖੋ, ਵੱਖਰੀਆਂ ਕਲਾਇੰਟ ਪਛਾਣਾਂ ਜਾਰੀ ਕਰੋ, ਅਤੇ ਲੋੜ ਪੈਣ ਤੋਂ ਪਹਿਲਾਂ ਰੱਦ ਕਰਨ ਦੀ ਯੋਜਨਾ ਬਣਾਓ। ਅੱਪਡੇਟ ਕਿਵੇਂ ਆਉਂਦੇ ਹਨ, ਪਿਛੋਕੜ ਵਿੱਚ ਸੇਵਾ ਨੂੰ ਕੀ ਚੱਲਦਾ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਰੀਬੂਟ ਜਾਂ ਨੈੱਟਵਰਕ ਬਦਲਾਅ ਤੋਂ ਬਾਅਦ ਇਹ ਕਿਵੇਂ ਸੁਧਰਦੀ ਹੈ, ਇਹ ਤੈਅ ਕਰੋ।
ਸੁਵਿਧਾਜਨਕ ਦਿਖਣ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟ ਤੋਂ ਬਚੋ: ਪੁਰਾਣੀ ਸਥਿਰ ਬਾਇਨਰੀ, ਹਾਰਡਕੋਡ ਕੀਤੇ ਇੰਟਰਫ਼ੇਸ ਨਾਮ, ਅਤੇ ਮੌਜੂਦਾ ਫਾਇਰਵਾਲ ਨੀਤੀ ਮਿਟਾਉਣ ਵਾਲੀ ਸਟਾਰਟਅੱਪ ਸਕ੍ਰਿਪਟ। ਫਿਰ ਨਤੀਜਾ ਸਿਰਫ਼ ਇੱਕ ਠੋਸ ਪਰਖ 'ਤੇ ਹੀ ਮਨਜ਼ੂਰ ਕਰੋ: ਅਧਿਕਾਰਤ ਦੂਰੋਂ ਕਲਾਇੰਟ ਲੋੜੀਂਦੇ ਸਰੋਤ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ, ਵਰਜਿਤ ਮੰਜ਼ਿਲਾਂ ਉਪਲਬਧ ਨਹੀਂ ਰਹਿੰਦੀਆਂ, ਅਤੇ ਸਮਰਥਿਤ ਜੀਵਨ-ਚੱਕਰ ਘਟਨਾ ਤੋਂ ਬਾਅਦ ਡਿਵਾਈਸ ਆਪਣੇ ਆਪ ਵਾਪਸ ਆ ਜਾਂਦਾ ਹੈ। root ਪਹੁੰਚ ਉਸ ਨਤੀਜੇ ਦਾ ਇੱਕ ਸੰਭਾਵਿਤ ਹਿੱਸਾ ਹੈ, ਅਤੇ ਘੱਟ ਹੀ ਨਿਰਣਾਇਕ।