華為云計算 云知識 ADB方式公網(wǎng)鏈接云手機
ADB方式公網(wǎng)鏈接云手機

通過公網(wǎng)連接云手機時, 彈性公網(wǎng)IP 綁定在云手機服務器上,因此需要先建立SSH隧道,即ADB方式(公網(wǎng))包括兩個步驟:建立SSH隧道;通過ADB連接云手機。

用于連接云手機的設備可以為本地設備,也可以是云上的機器,推薦您使用本地設備。本地設備的操作系統(tǒng)不限,Windows、Linux、Android OS或Mac OS均可,本節(jié)操作以Windows系統(tǒng)為例。

準備工作

建立SSH隧道前,確保用來連接云手機的本地設備已安裝SSH服務(請參見如何確認本地設備已安裝SSH服務?)。您還需要登錄云手機管理控制臺,完成如下準備工作:

1、獲取云手機所在區(qū)域的項目ID。方法如下:

在右上角用戶名的下拉列表中,選擇“我的憑證”。

選擇“我的憑證”

在“API憑證 > 項目列表”中,獲取待連接的云手機所在區(qū)域的“項目ID”。

以“華東-上海一”為例:

在“API憑證 > 項目列表”中,獲取待連接的云手機所在區(qū)域的“項目ID”。

說明: 

若項目ID位數(shù)多于32位,則取前32位作為建立SSH隧道的用戶名。

2、選擇一個本地設備中任意未被占用的端口,用來和云手機建立連接。

您可以執(zhí)行netstat -an命令,查看端口占用情況:

如下圖,6667端口已被其他程序占用,而1234端口空閑。

執(zhí)行netstat -an命令,查看端口占用情況:

3、獲取云手機監(jiān)聽地址,即云手機的內(nèi)網(wǎng)IP與端口。方法如下:

如果在購買云手機服務器時,在高級配置中自定義了應用端口,這里會顯示這些端口信息。SSH隧道鑒權方式與使用默認的ADB端口一樣,只需要將云手機監(jiān)聽地址替換為對應端口的云手機監(jiān)聽地址即可。

若創(chuàng)建自定義應用端口時勾選了“公網(wǎng)訪問”,則此處會顯示對應端口的公網(wǎng)訪問地址,用戶可以通過公網(wǎng)+此端口的方式直接訪問云手機,但要注意安全風險。

在云手機控制臺,選擇左側(cè)導航欄的“云手機管理”,單擊待連接云手機的名稱,進入云手機詳情頁面。

在“應用端口”區(qū)域獲取ADB應用對應的云手機監(jiān)聽地址。

說明: 

4、獲取云手機服務器的 公網(wǎng)IP 地址。方法如下:

在云手機控制臺,選擇左側(cè)導航欄的“云手機服務器管理”,單擊下拉圖標,展開云手機服務器詳情,獲取“IP”參數(shù)的取值。

獲取“IP”參數(shù)的取值

說明: 

如果有多臺云手機服務器,請根據(jù)云手機名稱來判斷云手機所屬服務器是哪一臺。例如,云手機名稱為cph-test-1-00001,那么對應的云手機服務器名稱為cph-test-1。

5、獲取云手機服務器的密鑰對對應的私鑰文件在本地的保存路徑,即購買云手機實例步驟7中創(chuàng)建密鑰對時保存在本地的私鑰文件路徑,例如:C:/Users/Administrator/Downloads/KeyPair-a49c.pem。路徑不區(qū)分大小寫,推薦您使用全英文路徑。

說明: 

如果云手機服務器的密鑰對對應的私鑰文件丟失,請參考私鑰文件丟失,怎么辦?

步驟1:建立SSH隧道

1、在本地設備打開命令提示符窗口,以Windows 10操作系統(tǒng)為例,方法如下:

同時按下“Win + R”,在打開的“運行”對話框中輸入cmd,按“Enter”。

2、執(zhí)行以下命令,建立SSH隧道。

ssh -L 本地空閑端口:云手機監(jiān)聽地址 SSH隧道用戶名@公網(wǎng)IP地址 -i 私鑰文件路徑 -Nf

各參數(shù)說明及獲取方式如下所述:

假設本地空閑端口為1234,云手機監(jiān)聽地址為10.237.0.61:5555,SSH隧道用戶名為05e1aexxx,公網(wǎng)IP地址為xxx.xxx.xxx.xxx,私鑰文件路徑為C:/Users/Administrator/Downloads/KeyPair-a49c.pem,命令如下:

ssh -L 1234:10.237.0.54:5555 05e1aexxx@xxx.xxx.xxx.xxx -i C:/Users/Administrator/Downloads/KeyPair-a49c.pem -Nf

該命令表示從本地PC建立一個到云手機的SSH隧道,使用本地端口轉(zhuǎn)發(fā)模式,監(jiān)聽本地PC的1234端口;訪問本地PC的1234端口時,通信數(shù)據(jù)將會被轉(zhuǎn)發(fā)到云手機的5555端口。

執(zhí)行命令后,SSH程序會在后臺執(zhí)行隧道的轉(zhuǎn)發(fā),執(zhí)行后無報錯即為SSH隧道建立成功。

說明: 

建立SSH隧道的 故障排查 ,請參考如下鏈接:

    通過公網(wǎng)訪問云手機時,建立SSH隧道失敗了,如何解決?

    建立SSH隧道時報錯“too open”?

    建立SSH隧道時報錯“Permission denied”?

    建立SSH隧道時報錯“no match mac found”?

    本地空閑端口:用戶自由選擇的本地設備中任意未被占用的端口,通過該端口映射云手機應用端口。獲取方式見2。

    云手機監(jiān)聽地址:云手機的內(nèi)網(wǎng)IP與端口。獲取方式見3。

    SSH隧道用戶名:云手機所在區(qū)域的項目ID。獲取方式見1。

    公網(wǎng)IP地址:云手機服務器的公網(wǎng)IP。獲取方式見4。

    私鑰文件路徑:云手機服務器的密鑰對對應的私鑰文件在本地的保存路徑。獲取方式見5。

    步驟2:通過ADB連接云手機

    1、下載ADB工具。

    訪問https://developer.android.com/studio/releases/platform-tools,在頁面右上角切換語言為“English”,選擇“Download SDK Platform-Tools for Windows”。

    選擇“Download SDK Platform-Tools for Windows

    在彈出的對話框中勾選“I have read and agree with the above terms and conditions”,并單擊“DOWNLOAD ANDROID SDK PLATFORM-TOOLS FOR WINDOWS”進行下載。

    2、下載后得到“platform-tools_r29.0.5-windows.zip”文件,解壓該zip文件至您選定的目錄,例如“C:\Users\Administrator\Downloads”。

    說明: 

    “platform-tools_r29.0.5-windows.zip”文件中的版本號“29.0.5”僅為示例,請以實際下載的版本為準。

    3、打開命令提示符窗口,進入“C:\Users\Administrator\Downloads\platform-tools”目錄。

    cd C:\Users\Administrator\Downloads\platform-tools

    打開命令提示符窗口,進入“C:\Users\Administrator\Downloads\platform-tools”目錄

    4、執(zhí)行如下ADB命令,創(chuàng)建與云手機的ADB連接。

    adb connect 127.0.0.1:本地空閑端口

    5、檢測當前端口是否已連接,可輸入adb devices命令檢查。

    6、執(zhí)行相關ADB命令,開始操作云手機,如adb shell命令。

    7、安裝手機APK程序至云手機。

    云手機沒有自帶瀏覽器或相關應用市場,如果您想要在云手機內(nèi)安裝APP,可以自行找一個APP的apk包使用ADB命令傳遞至云手機上去安裝。命令為:

    adb -s 127.0.0.1:本地空閑端口 install 需要安裝的APK所在路徑