reverseは、端末の特定ポートへの接続をホスト側のポートへ転送するサブコマンドである。【adb】forwardでホスト→端末のポートフォワーディングを設定する とは逆方向の転送になる。

reverseで端末→ホストのポートフォワーディングを設定する

tcp:端末側ポート tcp:ホスト側ポートの形式で指定する。forwardとは引数の順序が逆で、端末側のポートを先に指定する。

$ adb reverse tcp:9000 tcp:8080

forwardと異なり、成功してもポート番号などは何も出力されない。端末側の9000番ポートへの接続が、ホスト側の8080番ポートへ転送されるようになる。

--listで設定済みのフォワーディングを確認する

$ adb reverse --list
(reverse) tcp:9000 tcp:8080

forward --listとは異なり、対象端末のシリアル番号ではなく(reverse)という固定の文字列が表示される。

同じ端末側ポートへの再設定はデフォルトで上書きされる

既に使われている端末側ポートに対してreverseを実行すると、転送先がデフォルトで上書きされる。

$ adb reverse tcp:9000 tcp:8888

$ adb reverse --list
(reverse) tcp:9000 tcp:8888

--no-rebindで上書きを禁止する

--no-rebindを付けると、既に使われている端末側ポートの上書きがエラーになる。

$ adb reverse --no-rebind tcp:9000 tcp:9999
adb: error: cannot rebind existing socket

--remove/--remove-allで解除する

--removeに端末側ポートを指定すると、そのフォワーディングだけを解除する。

$ adb reverse --remove tcp:9000

$ adb reverse --list

--remove-allを実行すると、設定済みのフォワーディングをすべて解除する。

$ adb reverse --remove-all

$ adb reverse --list