基于会话管理实现本地私网访问

更新时间:
复制 MD 格式

出于安全、稳定等因素考虑,服务的公网地址不便给用户访问,您可通过云助手的会话管理功能实现让用户本地主机通过私网访问云上ECS服务。本文介绍了使用会话管理功能实现本地私网访问的配置步骤。

前提条件

  • 发起访问的主机需要安装和配置ali-instance-cli工具,不同操作系统的安装方式不同。详细操作,请参见通过会话管理CLI(ali-instance-cli)连接实例。

  • 需要连接的目标实例中已安装云助手客户端,且Windows系统的客户端版本不低于2.1.3.256;Linux系统的客户端版本不低于2.2.3.256。安装云助手客户端的详细操作,请参见安装云助手Agent。

  • ISV私网网络和用户私网网络没有通过其他方式打通。

背景信息

使用会话管理功能连接实例,不需要公网IP,只需要指定目标实例ID和目标实例的端口号,即可通过会话管理客户端将本地端口转发到实例端口,兼顾安全性和便捷性。更多工作原理,请参见基于会话管理实现本地私网访问。

操作步骤

步骤一:创建支持私网访问的全托管服务

  1. 登录计算巢控制台。

  2. 在左侧导航栏中,选择我的服务,并在我的服务页面中选择我创建的服务,然后单击创建新服务。

  3. 在创建新服务界面,完成如下配置。

    1. 在选择创建服务的方式处,选择自定义创建服务。

    2. 在选择以下服务类型处,选择全托管服务,然后单击下一步:配置服务。

    3. 在配置服务页面,配置服务的相关信息。

      1. 在服务信息区域,上传服务图标,填写服务名称和服务简介。

      2. 在录入模板区域,完成服务相关配置。

      3. 在代运维设置区域,选中需要用户授权,且在下拉框中选择终端登录权限。

        说明

        若要使用会话管理功能,必须选择终端登录权限。

    4. 测试服务。

      服务保存后,您可以对服务进行自测试,也可以将服务进行预发布后,分享给指定的客户进行测试。更多信息,请参见测试服务。

    5. 发布服务。

      服务测试通过后,再提交审核,审核通过后即可发布上线。更多信息,请参见上线服务。

步骤二:创建支持私网访问的全托管服务实例并建立私网连接

  1. 通过获取到的服务部署链接进入服务实例部署界面。

  2. 根据界面显示,输入对应的服务实例配置参数。在服务实例部署界面,填写服务实例名称,选择地域(如华东1(杭州)),配置数据库配置参数,并在实例规格区域选择Ecs实例类型(如计算型 c6 系列,包含 ecs.c6.large、ecs.c6.xlarge、ecs.c6.2xlarge 等规格)。

  3. 单击下一步:确认订单,在信息确认页面核对服务实例配置信息和费用信息。

  4. 单击立即创建。

  5. 创建完成后,进入服务实例界面,查看服务部署进度。

  6. 服务部署成功后,需要确认被连接的目标ECS是否已安装云助手客户端。

  7. 单击服务实例ID,进入服务实例详情页面。

  8. 在本地私网访问信息区域,查看命令提示。

  9. 复制本地私网访问信息区域的命令,在需要发起访问的主机用阿里云CLI执行命令实现访问。

    以本地系统为Linux系统,ECS实例上正在运行的MySQL服务,服务的端口3306为例,运行命令将本地33306端口转发到实例的3306端口。

    1. 输入命令。

      ./ali-instance-cli portforward --mode AK -i ${instanceId} --access-key-id ${accessKeyId} --access-key-secret=${accessKeySecret}  --region cn-hangzhou -l ${localport} -r ${remoteport} -s ${serviceId}
      说明

      在安装ali-instance-cli工具时,若您已配置了Secret Access Key或AccessKey,则在输入访问命令时,无需输入--mode AK信息;若未配置Secret Access Key或AccessKey,则在输入访问命令时,需输入--mode AK信息。

      输出表示端口转发已建立。

      ~$ ./ali-instance-cli portforward -i "i-bpxxx" -l 33306 -r 3306
      Port forwarding for SessionId: s-xxx, local port 33306, remote port 3306
      Waiting for connections...
    2. 通过本地IP地址,访问服务实例上的MySQL服务。

      $ mysql -uroot -h127.0.0.1 -P33306 -pxxx
      Welcome to the MariaDB monitor.  Commands end with ; or \g.
      Your MySQL connection id is 2279
      Server version: 5.7.37 MySQL Community Server (GPL)
      Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      MySQL [(none)]>

      ali-instance-cli打印出日志显示接收到了客户端发起的本地连接。

      ./ali-instance-cli portforward -i "i-bpxxx" -l 33306 -r 3306
      Port forwarding for SessionId: s-xxx, local port 33306, remote port 3306
      Waiting for connections...
      new connection from tcp 127.0.0.1:50936