使用SSH隧道代理实现公网访问DCS
方案概述
当前,华为云DCS的Redis 4.0及以上版本不支持绑定弹性IP,无法直接通过公网访问。
本章节主要介绍通过SSH工具的隧道代理机制,通过一台既能连接DCS缓存实例,又能被本地电脑访问的中转服务器,实现“代理转发”,从而访问VPC内Redis 4.0/5.0/6.0单机、主备、读写分离、Proxy集群实例。Cluster集群实例暂不支持使用该方案进行公网访问。
不建议在生产环境中使用公网访问的方式,对于因公网网络性能造成的客户端访问异常不计入SLA。
前提条件
- 已创建DCS缓存实例,且状态为“运行中”。
- 申请一台弹性云服务器(ECS),满足以下要求,这样保证ECS与DCS缓存实例网络互通,同时可以从本地电脑远程SSH连接ECS。
- 绑定弹性IP,公网可以访问ECS.
- ECS的虚拟私有云以及子网配置成与DCS缓存实例相同。
- ECS配置正确的安全组访问规则。
- 为了方便,ECS使用Linux操作系统。
- 本地电脑可以连接互联网,且安装有MobaXterm、Redis客户端等工具。
实施步骤
- 在本地电脑中打开MobaXterm工具。
- 新建一个到ECS的SSH连接,使用22号端口。
图1 连接ECS
- SSH连接配置好后,输入登录用户和密码,连接上ECS。登录后输入TMOUT=0,避免连接超时自动关闭。
图2 输入TMOUT=0
- 在MobaXterm工具中找到MobaSSHtunnal,建立隧道。
图3 创建隧道
- 配置本地IP为127.0.0.1后,启动隧道。
图4 启动隧道
- 本地电脑打开Redis客户端,以Redis命令行界面为例。连接DCS缓存实例,命令如下:
Redis-cli -h 127.0.0.1 -p 3306 -a {password}
参数说明:
- -h 主机名:localhost或者127.0.0.1,和隧道建立时配置的本地IP相同。
- -p 端口号:3306,和隧道建立时配置的本地侦听端口相同。
- -a 密码:DCS缓存实例连接密码。
- 连接成功,显示如下。
图5 连接实例