云手机服务器 CPH-基本概念:SSH隧道

时间:2024-07-25 16:52:47

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”选项连用。
support.huaweicloud.com/productdesc-cph/cph_qs_0004.html