許可されたAndroid端末がすでに、adb経由でポート8080に到達できるHTTPプロキシを実行している場合は、ノートPCのポートをそこへ転送します:

adb -s DEVICE_SERIAL forward tcp:6400 tcp:8080

端末の実際のシリアル番号を使い、ノートPCのブラウザのHTTPプロキシを127.0.0.1:6400に設定します。1つ目のポートがノートPC側の端点、2つ目がスマートフォン側のサービスです。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サーバーを実行している場合は、そのポートを転送し、ノートPCで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です。ブラウザを閉じても転送状態は削除されません。

関連記事