更新时间:2024-07-25 GMT+08:00
分享

基本概念

本文介绍使用云手机服务器服务时需要了解的基本概念。

服务器

服务器是用来提供云手机的物理服务器。云手机服务器目前以服务器为单位购买,您只需要指定具体的服务器类型、实例规格、手机镜像、所需要的网络配置等,即可获得一台服务器,以及相应数量的云手机。

手机开数

手机开数是云手机的一种规格参数,指一台服务器可以虚拟出的云手机数量。例如:手机开数为60,表示购买一台服务器,实际可以得到60台云手机。

云手机镜像

云手机镜像指手机运行的操作系统,如Android。目前仅提供谷歌原生Android操作系统AOSP 7.1.1。后续可按照用户的需求提供华为EMUI系统的云手机,但是其他第三方厂家如小米ROM、苹果iOS等等出于商业授权、架构不一致缘由,我们不能提供。

SSH隧道

SSH隧道即SSH端口转发,在SSH客户端与SSH服务端之间建立一个隧道,将网络数据通过该隧道转发至指定端口,从而进行网络通信。SSH隧道自动提供了相应的加密及解密服务,保证了数据传输的安全性。

SSH隧道有三种端口转发模式:本地端口转发(Local Port Forwarding)、远程端口转发(Remote Port Forwarding)以及动态端口转发(Dynamic Port Forwarding)。对于本地/远程端口转发,两者的方向恰好相反。连接云手机时,使用的是本地端口转发,因此本文着重介绍本地端口转发的工作原理。

假设本地主机A1为SSH客户端,远端云主机B1为SSH服务端。从A1主机通过SSH登录B1主机,指定不同的端口转发选项(-L、-R和-D),即可在A1与B1之间建立SSH隧道,从而进行不同的端口转发。

  • 应用场景

    远端云主机B1上运行了一个服务,端口为2000,本地主机A1需要访问这个服务。假设云主机B1的IP为122.x.x.x,则该服务的访问地址为:http://122.x.x.x:2000

  • 为什么需要本地端口转发?

    一般来讲,云主机的防火墙默认只开启了22端口,如果需要访问2000端口,则需要修改防火墙。为了保证安全,防火墙需要配置允许访问的IP地址。但是,云主机的公网IP通常是网络提供商动态分配的,如果变更公网IP地址,防火墙配置就需要经常修改,造成不必要的麻烦。

  • 什么是本地端口转发?

    本地端口转发,是将发送到本地端口的请求,转发到目标端口,这样就可以通过访问本地端口,来访问目标端口的服务。使用-L选项,就可以指定需要转发的端口,语法如下:

    ssh -L 本地端口:目标地址:目标端口

    例如:

    ssh -L 3000:targethost:2000 root@122.x.x.x
    表示在本地主机A1登录远端云主机B1,通过本地端口转发,将发送到本地主机A1端口3000的请求,转发到远端云主机B1的2000端口。

    这样,在本地主机A1上可以通过访问http://122.x.x.x:2000来访问远端云主机B1上的服务。

  • 扩展应用

    以上语法中,目标地址也可以是其他主机的地址,以连接云手机场景为例,目标地址为云手机的私有IP地址,本地主机A1为本地设备,远端云主机B1为云手机服务器,那么建立SSH隧道的命令为:

    ssh -L 本地端口:云手机私有IP地址:目标端口 用户名@服务器的公网IP地址

    另外,建立隧道时常用的选项还有-N、-f等。

    • -N:表示建立SSH隧道以后不连接到SSH服务端,通常与“-f”选项连用。
    • -f:表示在后台运行SSH隧道,通常与“-N”选项连用。

ADB

Android Debug Bridge(简称ADB),是一个Android操作系统与桌面电脑间沟通的命令行工具,是安卓系统自带的独有应用。您可以通过ADB命令执行各种设备操作(例如安装和调试应用)。

了解更多ADB命令,请参考“常用ADB命令”,或者访问Android官网:https://developer.android.com/studio/command-line/adb

相关文档