ADB方式(公网)
通过公网连接云手机实例时,弹性公网IP绑定在服务器上,因此需要先建立SSH隧道,即ADB方式(公网)包括两个步骤:建立SSH隧道;通过ADB连接云手机。关于SSH隧道和ADB的介绍请参见“基本概念”。
用于连接云手机的设备可以为本地设备,也可以是云上的机器,推荐您使用本地设备。本地设备的操作系统不限,Windows、Linux、Android OS或macOS均可,本节操作以Windows系统为例。
前提条件
- 云手机实例状态必须为“运行中”。
- 若要通过IPv6地址连接双栈云手机,需保证您的弹性云服务器等发起访问的环境支持IPv6(使用系统定义网络的云手机服务器不支持IPv6)。
准备工作
建立SSH隧道前,确保用来连接云手机的本地设备已安装SSH服务(请参见如何确认本地设备已安装SSH服务?)。您还需要登录云手机管理控制台,完成如下准备工作:
- 获取云手机所在区域的项目ID。
- 选择一个本地设备中任意未被占用的端口,用来和云手机建立连接。
如下图,6667端口已被其他程序占用(显示LISTENING),而1234端口空闲。
- 获取云手机监听地址,即云手机的内网IP与端口。方法如下:
- 在云手机控制台,选择左侧导航栏的“实例管理”,单击待连接云手机实例的名称,进入详情页面。
- 在“应用端口”区域获取ADB应用对应的实例监听地址。
- 如果在购买服务器时,在高级配置中自定义了应用端口,这里会显示这些端口信息。SSH隧道鉴权方式与使用默认的ADB端口一样,只需要将云手机监听地址替换为对应端口的云手机监听地址即可。
- 若自定义应用端口时勾选了“公网访问”,则此处会显示对应端口的公网访问地址,用户可以通过公网+此端口的方式直接访问云手机,但要注意安全风险。
- 若您购买云手机服务器时选择开启ipv6,实例监听地址会有两行数据,第二行为实例监听的ipv6地址,若您想通过ipv6连接云手机请使用该地址。
- 在云手机控制台,选择左侧导航栏的“实例管理”,单击待连接云手机实例的名称,进入详情页面。
- 获取服务器的公网IP地址。方法如下:
在云手机控制台,选择左侧导航栏的“服务器管理”,在服务器所在行,获取“IP”参数的取值。
- 如果有多台服务器,请根据云手机名称来判断云手机所属服务器是哪一台。例如,云手机名称为cph-test-1-00001,那么对应的服务器名称为cph-test-1。
- 若您购买云手机服务器时选择开启ipv6,可以使用ipv6建立隧道连接云手机,服务器的公网ipv6地址请点开服务器详情查看,或者在上一步“应用端口”区域,“服务器监听地址”列查看。
- 获取服务器的密钥对所对应的私钥文件在本地的保存路径,即购买云手机服务器步骤6中创建密钥对时保存在本地的私钥文件路径,例如:C:\Users\Administrator\Downloads\KeyPair-a49c.pem。
路径不区分大小写,推荐您使用全英文路径。
如果服务器的密钥对所对应的私钥文件丢失,请参考私钥文件丢失,怎么办?。
步骤1:建立SSH隧道
- 在本地设备打开命令提示符窗口,以Windows 10操作系统为例,方法如下:
- 执行以下命令,建立SSH隧道。
ssh -L 本地空闲端口:云手机监听地址 SSH隧道用户名@公网IP地址 -i 私钥文件路径 -o ServerAliveInterval=30 -Nf
各参数说明及获取方式如下所述:
- 本地空闲端口:用户自由选择的本地设备中任意未被占用的端口,通过该端口映射云手机应用端口。获取方式见2。
- 云手机监听地址:云手机的内网IP与端口。获取方式见3。
- SSH隧道用户名:云手机所在区域的项目ID。获取方式见1。
- 公网IP地址:服务器的公网IP。获取方式见4。
- 私钥文件路径:服务器的密钥对所对应的私钥文件在本地的保存路径。获取方式见5。
假设本地空闲端口为1234,云手机监听地址为10.237.0.61:5555,SSH隧道用户名为05e1aexxx,公网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 -o ServerAliveInterval=30 -Nf
该命令表示从本地PC建立一个到云手机的SSH隧道,使用本地端口转发模式,监听本地PC的1234端口;访问本地PC的1234端口时,通信数据将会被转发到云手机的5555端口。
执行命令后,SSH程序会在后台执行隧道的转发,执行后无报错或者报“Authorized users only. All activities may be monitored and reported.”即为SSH隧道建立成功。
若您购买云手机服务器时选择开启ipv6,可以使用ipv6建立隧道连接云手机。命令结构和ipv4一致,例如:
ssh -L 1234:[fd00::aed:96]:5555 05e1aexxx@ xxx:xxx:xxx:xxx -i C:\Users\Administrator\Downloads\KeyPair-a49c.pem -o ServerAliveInterval=30 -Nf
建立SSH隧道的故障排查,请参考如下链接:
步骤2:通过ADB连接云手机
- 下载ADB工具。
访问https://developer.android.com/studio/releases/platform-tools,在页面右上角切换语言为“English”,选择“Download SDK Platform-Tools for Windows”。
在弹出的对话框中勾选“I have read and agree with the above terms and conditions”,并单击“DOWNLOAD ANDROID SDK PLATFORM-TOOLS FOR WINDOWS”进行下载。
如果您无法访问上述网站,也可以单击如下链接下载:
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
- 下载后得到“platform-tools_r29.0.5-windows.zip”文件,解压该zip文件至您选定的目录,例如“C:\Users\Administrator\Downloads”。
“platform-tools_r29.0.5-windows.zip”文件中的版本号“29.0.5”仅为示例,请以实际下载的版本为准。
- 打开命令提示符窗口,进入“C:\Users\Administrator\Downloads\platform-tools”目录。
在步骤1:建立SSH隧道中,如果执行建立SSH隧道的命令后提示“Authorized users only. All activities may be monitored and reported.”,请保持该窗口不关闭,并重新打开一个命令提示符窗口进行本步骤操作。
cd C:\Users\Administrator\Downloads\platform-tools
- 执行如下ADB命令,创建与云手机的ADB连接。
其中,本地空闲端口为2中所使用的空闲端口。
示例:adb connect 127.0.0.1:1234
- 检测当前端口是否已连接,可输入adb devices命令检查。
ADB连接的故障排查,请参考如下链接: