승인된 Android 기기가 이미 adb를 통해 8080 포트에서 접근 가능한 HTTP 프록시를 실행 중이라면 노트북 포트를 그쪽으로 전달하십시오:

adb -s DEVICE_SERIAL forward tcp:6400 tcp:8080

기기의 실제 시리얼을 사용하고, 노트북 브라우저의 HTTP 프록시를 127.0.0.1:6400로 설정하십시오. 첫 번째 포트는 노트북 쪽 끝점이고, 두 번째는 휴대폰의 서비스입니다. adb는 TCP 경로를 제공하며 프록시 프로토콜을 제공하지 않습니다.

laptop browser
  -> laptop 127.0.0.1:6400
  -> adb USB forwarding
  -> phone TCP port 8080
  -> phone's outbound network

휴대폰 프록시는 브라우저 HTTPS용 CONNECT를 포함해 요청된 작업을 지원해야 합니다. USB 디버깅은 승인된 기기와 신뢰할 수 있는 컴퓨터에서만 사용하십시오. 이 경로는 통신사가 휴대폰으로의 요청되지 않은 인터넷 연결을 허용할 것을 요구하지 않습니다.

USB 도달 가능성과 별개로 이그레스를 확인하십시오. 프록시는 애플리케이션이 다른 네트워크를 바인딩하지 않는 한 휴대폰이 선택한 아웃바운드 네트워크를 사용합니다. 활성 Wi-Fi, VPN 또는 명시적 앱 라우팅은 이그레스를 모바일 데이터와 다르게 만들 수 있습니다.

휴대폰이 대신 SSH 서버를 실행한다면 해당 포트를 전달하고 노트북에서 SOCKS를 만드십시오:

adb -s DEVICE_SERIAL forward tcp:2222 tcp:2222
ssh -N -D 127.0.0.1:8899 -p 2222 [email protected]

여기서 브라우저는 127.0.0.1:8899에서 SOCKS를 사용하고, SSH는 휴대폰에서 목적지 연결을 엽니다. HTTP 프록시를 직접 전달하는 대안이며, 두 구성 모두 공용 리스너가 필요하지 않습니다.

작업을 마치면 해당 adb 항목을 제거하십시오. 예를 들어 adb -s DEVICE_SERIAL forward --remove tcp:6400입니다. 브라우저를 닫아도 포워딩 상태는 제거되지 않습니다.

관련 글