USB ਰਾਹੀਂ Android ਲਈ ਉਲਟਾ ਟੈਥਰਿੰਗ: ਹੁਕਮ, ਜਾਂਚ ਅਤੇ ਵਾਪਸੀ
ਉਲਟਾ ਟੈਥਰਿੰਗ ਫ਼ੋਨ ਦੀ ਟ੍ਰੈਫ਼ਿਕ ਹੋਸਟ ਉੱਤੇ ਰਿਲੇ ਰਾਹੀਂ ਭੇਜਦੀ ਹੈ। ਫ਼ੋਨ ਤੋਂ ਹੋਸਟ ਤੱਕ ਰਾਹ ਬਣਾਓ, ਹੋਸਟ VPN ਨੂੰ ਲੂਪ ਵਿੱਚ ਰੱਖੋ ਅਤੇ ਹਰ ਛਾਲ ਜਾਂਚੋ।
ਉਲਟਾ ਟੈਥਰਿੰਗ ਫ਼ੋਨ ਦੀ ਟ੍ਰੈਫ਼ਿਕ ਕੰਪਿਊਟਰ ਉੱਤੇ ਲੈ ਜਾਂਦੀ ਹੈ ਅਤੇ ਉਸ ਕੰਪਿਊਟਰ ਦੇ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਬਾਹਰ ਭੇਜਦੀ ਹੈ। ਸਿਰਫ਼ USB ਕੇਬਲ ਇਹ ਨਹੀਂ ਕਰਦਾ: ਫ਼ੋਨ ਨੂੰ ਅਜਿਹੀ ਕੈਪਚਰ ਸੇਵਾ ਚਾਹੀਦੀ ਹੈ ਜੋ ਉਸ ਦੀ ਰਾਊਟਿੰਗ ਸੰਭਾਲੇ, ਅਤੇ ਕੰਪਿਊਟਰ ਨੂੰ ਅਜਿਹਾ ਰਿਲੇ ਚਾਹੀਦਾ ਹੈ ਜੋ ਉਹ ਪੈਕਟ ਅੱਗੇ ਲੈ ਜਾਵੇ। ਰਾਹ ਵਿੱਚ ਚਾਰ ਛਾਲਾਂ ਹਨ: ਐਪਲੀਕੇਸ਼ਨ, ਫ਼ੋਨ ਉੱਤੇ ਕੈਪਚਰ, USB ਰਿਲੇ ਅਤੇ ਹੋਸਟ ਦਾ ਬਾਹਰ ਨਿਕਲਣਾ, ਅਤੇ ਹਰ ਇੱਕ ਦਾ ਮਾਲਕ ਵੱਖਰਾ ਹੈ। ਇਹ ਕਿਤਾਬਚਾ ਉਹ ਰਾਹ ਬਣਾਉਂਦਾ ਹੈ, ਹੋਸਟ VPN ਨੂੰ ਉਸ ਦੀ ਸਹੀ ਥਾਂ ਰੱਖਦਾ ਹੈ ਅਤੇ ਨਤੀਜੇ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹਰ ਛਾਲ ਜਾਂਚਦਾ ਹੈ।
ਕੁਝ ਵੀ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਛਾਲਾਂ ਦਾ ਨਕਸ਼ਾ ਬਣਾਓ
ਹਰ ਛਾਲ ਆਪਣੀ ਨੀਤੀ ਲਾਗੂ ਕਰਦੀ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਸਿਰੇ ਉੱਤੇ ਕੰਮ ਕਰਨ ਵਾਲਾ ਨਤੀਜਾ ਦੂਜੇ ਸਿਰੇ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ। ਐਪਲੀਕੇਸ਼ਨ ਮੰਜ਼ਿਲ ਅਤੇ ਰਿਜ਼ਾਲਵਰ ਚੁਣਦਾ ਹੈ, ਕੈਪਚਰ ਸੇਵਾ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜੀ ਟ੍ਰੈਫ਼ਿਕ ਰਿਲੇ ਵਿੱਚ ਵੜੇਗੀ, ਰਿਲੇ ਉਸ ਨੂੰ ਹੋਸਟ ਸਾਕਟਾਂ ਵਿੱਚ ਭੇਜਦਾ ਹੈ, ਅਤੇ ਹੋਸਟ ਦੀ ਰਾਊਟਿੰਗ ਤੇ VPN ਉਹ ਪਤਾ ਤੈਅ ਕਰਦੇ ਹਨ ਜੋ ਮੰਜ਼ਿਲ ਅੰਤ ਵਿੱਚ ਵੇਖਦੀ ਹੈ।
| Hop | Owner | What it decides |
|---|---|---|
| Application request | The app | Destination, resolver, address family |
| Capture service | Phone VpnService app | Which traffic enters the relay at all |
| ADB relay | Host process | Forwarding phone flows to host sockets |
| Host egress | Host routing and VPN | Exit address and host policy |
ਇੱਕ ਸਮੇਂ ਫ਼ੋਨ ਦੀ ਕੈਪਚਰ ਭੂਮਿਕਾ ਸਿਰਫ਼ ਇੱਕ VPN ਸੇਵਾ ਕਲਾਇੰਟ ਹੀ ਰੱਖ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਦੂਜੀ ਆਮ VPN ਐਪ ਰਿਲੇ ਉੱਤੇ ਪਰਤ ਨਹੀਂ ਚੜ੍ਹਾਉਂਦੀ। ਜੇ VPN ਕੰਪਿਊਟਰ ਉੱਤੇ ਹੈ, ਤਾਂ ਕੈਪਚਰ ਸੇਵਾ ਉਸ ਕੰਪਿਊਟਰ ਵੱਲ ਪਹੁੰਚ ਦੀ ਕੜੀ ਹੈ, ਇਹ ਸਬੂਤ ਨਹੀਂ ਕਿ ਦੂਰ ਦੀ ਸੁਰੰਗ ਨਤੀਜੇ ਦੀ ਪਹਿਲਾਂ ਹੀ ਰੱਖਿਆ ਕਰਦੀ ਹੈ।
ਫ਼ੋਨ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਰਿਲੇ ਤਿਆਰ ਕਰੋ
Gnirehtet ਇਸ ਢਾਂਚੇ ਦੀ ਦਸਤਾਵੇਜ਼ੀ ਉਦਾਹਰਨ ਹੈ: ਫ਼ੋਨ ਉੱਤੇ root ਤੋਂ ਬਿਨਾਂ VPN ਸੇਵਾ ਕਲਾਇੰਟ ਅਤੇ ਹੋਸਟ ਉੱਤੇ ADB ਰਾਹੀਂ ਢੋਇਆ ਗਿਆ ਰਿਲੇ, ਜੋ IPv4 ਉੱਤੇ TCP ਅਤੇ UDP ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਇਸ ਦਾ ਭੰਡਾਰ ਇਹ ਵੀ ਕਹਿੰਦਾ ਹੈ ਕਿ ਪ੍ਰੋਜੈਕਟ ਹੁਣ ਸਰਗਰਮੀ ਨਾਲ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾਂਦਾ, ਇਸ ਲਈ ਇਸ ਨੂੰ ਸੰਦਰਭ ਡਿਜ਼ਾਈਨ ਅਤੇ ਪ੍ਰਯੋਗਸ਼ਾਲਾ ਲਈ ਕੰਮ ਕਰਨ ਵਾਲਾ ਸਾਧਨ ਮੰਨੋ, ਪ੍ਰਬੰਧਿਤ ਫਲੀਟ ਉੱਤੇ ਮਿਆਰ ਬਣਾਉਣ ਯੋਗ ਸਮਰਥਿਤ ਉਤਪਾਦ ਨਹੀਂ।
adb devices
adb shell getprop ro.build.version.release
gnirehtet run
ਪਹਿਲਾਂ adb devices ਚਲਾਓ। ਜਿਸ ਫ਼ੋਨ ਨੇ ਹੋਸਟ ਦੀ ਡੀਬੱਗਿੰਗ ਕੁੰਜੀ ਨਹੀਂ ਮੰਨੀ, ਉਹ ਗੈਰ-ਅਧਿਕਾਰਤ ਵਜੋਂ ਦਰਜ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਜਦੋਂ ਤੱਕ ਡਿਵਾਈਸ ਉੱਤੇ ਬੇਨਤੀ ਨਹੀਂ ਮੰਨੀ ਜਾਂਦੀ, ਰਿਲੇ ਜੁੜੇਗਾ ਨਹੀਂ। gnirehtet run ਕਲਾਇੰਟ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ, ਰਿਲੇ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਅਤੇ ਕੈਪਚਰ ਸਰਗਰਮ ਕਰਦਾ ਹੈ; ਜਿਸ ਸੰਸਕਰਣ ਵਿੱਚ ਕਦਮ ਵੱਖਰੇ ਹਨ, ਉੱਥੇ ਇਸ ਦੀ ਥਾਂ ਦਸਤਾਵੇਜ਼ੀ install, relay ਅਤੇ start ਉਪ-ਹੁਕਮ ਵਰਤੋ।
ADB ਪਹੁੰਚ ਡਿਵਾਈਸ ਕੰਟਰੋਲ ਦਾ ਸੰਬੰਧ ਹੈ, ਨੈੱਟਵਰਕ ਸੈਟਿੰਗ ਨਹੀਂ। ਸਿਰਫ਼ ਉਸ ਕੰਪਿਊਟਰ ਨੂੰ ਅਧਿਕਾਰ ਦਿਓ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਕੰਟਰੋਲ ਕਰਦੇ ਹੋ, ਅਤੇ ਕੰਮ ਮੁੱਕਣ ਉੱਤੇ ਉਹ ਅਧਿਕਾਰ ਵਾਪਸ ਲੈਣ ਦੀ ਯੋਜਨਾ ਬਣਾਓ।
ਹੋਸਟ VPN ਨੂੰ ਫਿਰ ਰਾਹ ਵਿੱਚ ਲਿਆਓ
ਰਿਲੇ ਹੋਸਟ ਉੱਤੇ ਆਮ ਪ੍ਰਕਿਰਿਆ ਹੈ, ਇਸ ਲਈ ਇਸ ਦੇ ਅੱਗੇ ਦੇ ਕਨੈਕਸ਼ਨ ਹੋਸਟ ਦੀ ਰਾਊਟਿੰਗ ਸਾਰਣੀ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। ਪੂਰਨ-ਸੁਰੰਗ ਪ੍ਰੋਫ਼ਾਈਲ ਉਹਨਾਂ ਨੂੰ ਢੋਂਦਾ ਹੈ; ਵੰਡੀ ਸੁਰੰਗ ਸ਼ਾਇਦ ਨਹੀਂ। ਜੇ ਹੋਸਟ VPN ਪ੍ਰਤੀ-ਐਪ ਕੰਟਰੋਲ ਵਰਤਦਾ ਹੈ, ਤਾਂ ਰਿਲੇ ਬਾਈਨਰੀ ਨੂੰ ਮਨਜ਼ੂਰ ਸਮੂਹ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ, ਨਹੀਂ ਤਾਂ ਬ੍ਰਾਊਜ਼ਰ ਸੁਰੱਖਿਅਤ ਦਿਸਦੇ ਹੋਏ ਵੀ ਰਿਲੇ ਭੌਤਿਕ ਇੰਟਰਫ਼ੇਸ ਹੀ ਵਰਤਦਾ ਰਹੇਗਾ।
ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay
ਹੋਸਟ VPN ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਪਹਿਲੇ ਦੋ ਹੁਕਮ ਚਲਾਓ। ਜੇ ਪਤਾ ਨਹੀਂ ਬਦਲਦਾ, ਤਾਂ ਰਿਲੇ ਸੁਰੰਗ ਉੱਤੇ ਨਹੀਂ ਹੈ, ਕਲਾਇੰਟ ਵਿੰਡੋ ਕੁਝ ਵੀ ਕਹੇ। ਸਿਰਫ਼-ਨਿੱਜੀ ਸੁਰੰਗ ਜਨਤਕ ਮੰਜ਼ਿਲਾਂ ਨੂੰ ਹੋਸਟ ਦੇ ਆਮ ਬਾਹਰ ਨਿਕਲਣ ਉੱਤੇ ਵੀ ਛੱਡਦੀ ਹੈ, ਜੋ ਲੀਕ ਵਰਗਾ ਲੱਗਦਾ ਹੈ ਪਰ ਉਹੀ ਨੀਤੀ ਹੈ ਜੋ ਤੁਸੀਂ ਤੈਅ ਕੀਤੀ।
ਰਿਲੇ ਰਾਹੀਂ ਜਾਣ ਵਾਲੀ ਟ੍ਰੈਫ਼ਿਕ ਲਈ DNS ਹੋਸਟ ਉੱਤੇ ਹੱਲ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਕਿਹੜਾ ਸਰਵਰ ਨਾਮ ਵੇਖਦਾ ਹੈ ਇਹ ਹੋਸਟ ਦਾ ਰਿਜ਼ਾਲਵਰ ਤੈਅ ਕਰਦਾ ਹੈ। ਫ਼ੋਨ ਉੱਤੇ ਨਿੱਜੀ DNS ਸੈਟਿੰਗ ਰਿਲੇ ਪਾਰ ਨਹੀਂ ਕਰਦੀ, ਅਤੇ ਫ਼ੋਨ ਵਾਲੇ ਪਾਸੇ ਦੀ ਰਿਜ਼ਾਲਵਰ ਜਾਂਚ ਹੋਸਟ ਦੀਆਂ ਖੋਜਾਂ ਦਾ ਵਰਣਨ ਨਹੀਂ ਕਰੇਗੀ।
ਹਰ ਛਾਲ ਨੂੰ ਵੱਖਰੇ ਤੌਰ ਉੱਤੇ ਜਾਂਚੋ
ਇਸ ਕ੍ਰਮ ਵਿੱਚ ਤਿੰਨ ਜਾਂਚਾਂ: ਫ਼ੋਨ ਰਿਲੇ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ, ਰਿਲੇ ਹੋਸਟ ਦੀ ਨੀਤੀ ਹੇਠ ਮੰਜ਼ਿਲ ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ, ਅਤੇ ਐਪ ਮੰਜ਼ਿਲ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਹੱਲ ਕਰਕੇ ਵਰਤਦੀ ਹੈ। ਪੰਨੇ ਦੁਬਾਰਾ ਲੋਡ ਕਰਕੇ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਥਾਂ ਪਹਿਲੀ ਅਸਫਲਤਾ ਉੱਤੇ ਰੁਕੋ।
adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V
ਕਨੈਕਟੀਵਿਟੀ ਡੰਪ ਵਿੱਚ VPN ਨੈੱਟਵਰਕ ਐਂਟਰੀ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਕੈਪਚਰ ਸੇਵਾ ਸਰਗਰਮ ਹੈ; ਰਿਲੇ ਦਾ ਆਪਣਾ ਲਾਗ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਪ੍ਰਵਾਹ ਆ ਰਹੇ ਹਨ ਜਾਂ ਨਹੀਂ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਵਿੱਚ ਗੈਰਹਾਜ਼ਰੀ ਸਮੱਸਿਆ ਨੂੰ ਸਾਫ਼ ਵੰਡਦੀ ਹੈ: ਕੈਪਚਰ ਨਹੀਂ ਤਾਂ ਫ਼ੋਨ ਵਾਲਾ ਪਾਸਾ, ਪ੍ਰਵਾਹ ਨਹੀਂ ਤਾਂ ਹੋਸਟ ਵਾਲਾ ਪਾਸਾ।
ਹੋਸਟ ਉੱਤੇ ਕੰਮ ਕਰਨ ਵਾਲਾ ਬ੍ਰਾਊਜ਼ਰ ਹੋਸਟ ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਰਾਹ ਸਾਬਤ ਕਰਦਾ ਹੈ, ਰਿਲੇ ਪ੍ਰਕਿਰਿਆ ਦਾ ਨਹੀਂ। ਦੋਵੇਂ ਜੋ ਪਤੇ ਦਿੰਦੇ ਹਨ ਉਹਨਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ, ਅਤੇ ਨਿੱਜੀ ਸਰੋਤ ਦੇ ਨਾਲ-ਨਾਲ ਜਨਤਕ ਪੰਨਾ ਵੀ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਸਿਰਫ਼-ਨਿੱਜੀ ਸੁਰੰਗ ਇੱਕ ਨੂੰ ਰਾਊਟ ਕਰ ਸਕਦੀ ਹੈ ਦੂਜੇ ਨੂੰ ਨਹੀਂ।
ਖੋਲ੍ਹੋ ਅਤੇ ਅਸਫਲਤਾ ਦਾ ਵਿਵਹਾਰ ਚੁਣੋ
ਵਾਪਸੀ ਕਿਤਾਬਚੇ ਦਾ ਹਿੱਸਾ ਹੈ। ਰਿਲੇ ਰੋਕ ਕੇ ਹਟਾਓ, ਕੈਪਚਰ ਕਲਾਇੰਟ ਅਣ-ਸਥਾਪਿਤ ਕਰੋ, ਅਤੇ ਕੰਮ ਮੁੱਕਣ ਉੱਤੇ ਫ਼ੋਨ ਦੇ ਡਿਵੈਲਪਰ ਵਿਕਲਪਾਂ ਤੋਂ ਹੋਸਟ ਦਾ ਡੀਬੱਗਿੰਗ ਅਧਿਕਾਰ ਵਾਪਸ ਲਓ।
gnirehtet stop
gnirehtet uninstall
adb kill-server
ਤੈਅ ਕਰੋ ਕਿ ਰਿਲੇ ਦੇ ਗਾਇਬ ਹੋਣ ਉੱਤੇ ਫ਼ੋਨ ਨੂੰ ਕੀ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਸਪਸ਼ਟ ਚੋਣ ਤੋਂ ਬਿਨਾਂ ਇਹ ਮੋਬਾਈਲ ਡੇਟਾ ਉੱਤੇ ਪਰਤ ਸਕਦਾ ਹੈ ਅਤੇ ਉਹ ਟ੍ਰੈਫ਼ਿਕ ਲੀਕ ਕਰ ਸਕਦਾ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਰਾਊਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਸੀ, ਇਸ ਲਈ ਕਨੈਕਸ਼ਨ ਰੋਕਣ ਦਾ ਵਿਵਹਾਰ ਜਾਂ VPN ਨੀਤੀ ਜਾਣ-ਬੁੱਝ ਕੇ ਸੈੱਟ ਕਰੋ ਅਤੇ ਇਸ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਖੋਲ੍ਹਣ ਦੀ ਜਾਂਚ ਕਰੋ।
ਜਿਸ ਹੋਸਟ ਨੂੰ ਅਧਿਕਾਰ ਦਿੱਤਾ ਗਿਆ, ਰਿਲੇ ਸੰਸਕਰਣ, ਹੋਸਟ ਸੁਰੰਗ ਨੀਤੀ ਅਤੇ ਖੋਲ੍ਹਣ ਦੇ ਕਦਮ ਲਿਖੋ। ਉਹੀ ਰਿਕਾਰਡ ਅਗਲੀ ਉਲਟੀ-ਟੈਥਰਿੰਗ ਸੈਟਿੰਗ ਨੂੰ ਮੁੜ ਖੋਜਣ ਵਾਲੀ ਦੂਜੀ ਦੁਪਹਿਰ ਦੀ ਥਾਂ ਦੁਹਰਾਉਣਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।