Dùng proxy của điện thoại Android qua USB với adb forwarding
Hiểu kết nối adb-forward từ laptop đến proxy HTTP chạy trên điện thoại, bao gồm địa chỉ loopback, lối ra mạng di động và biến thể SSH SOCKS riêng.
Nếu một thiết bị Android được cấp quyền đã chạy proxy HTTP có thể truy cập qua adb trên cổng 8080, hãy chuyển tiếp một cổng của laptop tới đó:
adb -s DEVICE_SERIAL forward tcp:6400 tcp:8080
Dùng số sê-ri thực của thiết bị, sau đó đặt proxy HTTP của trình duyệt laptop thành 127.0.0.1:6400. Cổng đầu tiên là điểm cuối của laptop; cổng thứ hai là dịch vụ của điện thoại. adb cung cấp đường TCP, không phải giao thức proxy.
laptop browser
-> laptop 127.0.0.1:6400
-> adb USB forwarding
-> phone TCP port 8080
-> phone's outbound network
Proxy của điện thoại phải hỗ trợ các thao tác được yêu cầu, gồm CONNECT cho HTTPS của trình duyệt. Chỉ dùng gỡ lỗi USB với thiết bị được cấp quyền và máy tính tin cậy. Đường này không đòi hỏi nhà mạng chấp nhận các kết nối Internet không được yêu cầu tới điện thoại.
Xác minh lối ra tách biệt khỏi khả năng truy cập qua USB. Proxy dùng mạng ra đã chọn của điện thoại trừ khi ứng dụng của nó ràng buộc mạng khác. Wi-Fi đang hoạt động, VPN hoặc định tuyến ứng dụng rõ ràng có thể làm lối ra khác với dữ liệu di động.
Nếu điện thoại chạy máy chủ SSH thay vào đó, hãy chuyển tiếp cổng đó và tạo SOCKS trên laptop:
adb -s DEVICE_SERIAL forward tcp:2222 tcp:2222
ssh -N -D 127.0.0.1:8899 -p 2222 [email protected]
Ở đây trình duyệt dùng SOCKS tại 127.0.0.1:8899, và SSH mở các kết nối đích trên điện thoại. Đây là phương án thay thế cho việc chuyển tiếp proxy HTTP trực tiếp; cả hai cách đều không cần trình lắng nghe công khai.
Khi xong, hãy xóa mục adb cụ thể, ví dụ adb -s DEVICE_SERIAL forward --remove tcp:6400. Đóng trình duyệt không xóa trạng thái chuyển tiếp.