你是否曾夢想過這樣的工作流:在咖啡館里,你只帶著一臺輕薄的 Surface Pro,而代碼的編譯、運行和調試,全部交由家里那臺性能強勁的 Ubuntu 臺式機來完成?更酷的是,你甚至想將手機直接插在 Surface 上,讓遠端的 Ubuntu 無縫識別并進行開發。
今天,我們就將這個夢想變為現實。本文將一步步指導你,如何結合 USBIP 和 FRP 這兩大神器,構建一個穩定、高效的遠程 Android 開發環境。
最終目標
- 物理連接: 安卓手機 <—USB—> Windows 11 (Surface)
- 開發環境: Android Studio 運行在遠程的 Ubuntu 22.04 臺式機上
- 連接方式: Ubuntu 通過 FRP 建立的公網隧道,訪問并控制 Windows 上的手機
技術基石
- USBIP (USB over IP): 一個能將本地 USB 設備通過網絡共享給遠程計算機的工具。我們將使用 Windows 端的
usbipd-win
作為服務端,Linux 端的usbip
作為客戶端。 - FRP (Fast Reverse Proxy): 一款高性能的反向代理工具,能輕松地將內網服務穿透到公網。我們將用它來為 USBIP 的連接搭建一條穩定的“跨海大橋”。
- Socat (Socket CAT): 一個多功能的網絡工具,我們用它在 Ubuntu 端做端口中繼,完美解決
usbip
命令無法指定端口的問題。