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 ನೀತಿಯನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಅದನ್ನು ಅವಲಂಬಿಸುವ ಮೊದಲು ಕಿತ್ತುಹಾಕುವಿಕೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ.
ಅಧಿಕಾರ ನೀಡಿದ ಹೋಸ್ಟ್, ರಿಲೇ ಆವೃತ್ತಿ, ಹೋಸ್ಟ್ ಸುರಂಗ ನೀತಿ ಮತ್ತು ಕಿತ್ತುಹಾಕುವ ಹಂತಗಳನ್ನು ದಾಖಲಿಸಿ. ಆ ದಾಖಲೆಯೇ ಮುಂದಿನ ಹಿಮ್ಮುಖ-ಟೆಥರಿಂಗ್ ಸಿದ್ಧತೆಯನ್ನು ಮತ್ತೊಂದು ಮರುಶೋಧನೆಯ ಮಧ್ಯಾಹ್ನದ ಬದಲು ಪುನರಾವರ್ತನೀಯವಾಗಿಸುತ್ತದೆ.