51
阿里云Redis公网连接的解决办法

https://help.aliyun.com/document_detail/43850.html

 

ECS Windows 篇

目前云数据库 Redis 需要通过 ECS 的内网进行连接访问,如果您本地需要通过公网访问云数据库 Redis,可以在 ECS Windows 云服务器中通过 netsh 进行端口映射实现。

  1. 登录 ECS Windows 服务器,在 CMD 执行:

    1. netsh interface portproxy add v4tov4 listenaddress=ECS服务器的公网IP地址listenport=6379 connectaddress=云数据库Redis的连接地址 connectport=6379

    其中:

    • netsh interface portproxy delete v4tov4 listenaddress=ECS公网服务器的公网IP地址 listenport=6379 可以删除不需要的映射。
    • netsh interface portproxy show all 可以查看当前服务器中存在的映射。
  2. 设置完成后进行验证测试。

    在本地 redis-cli 连接 ECS Windows 服务器后进行数据写入和查询验证,ECS Windows 服务器的 IP 是 1.1.1.1,即 telnet 1.1.1.1 6379。 

通过上述步骤即可实现:您本地 PC 或服务器通过公网连接 ECS Windows 6379端口,对云数据库 Redis 进行访问。

注意:因 portproxy 由微软官方提供,未开源使用,您如果配置使用过程中遇到疑问,可参看 netsh 的 portproxy 使用说明或向微软官方咨询确认。或者您也可以考虑通过其他的方案实现,比如通过 portmap 配置代理映射。

ECS Linux 篇

目前云数据库 Redis 需要通过 ECS 的内网进行连接访问。如果您本地需要通过公网访问云数据库 Redis,可以在 ECS Linux 云服务器中安装 rinetd 进行转发实现。

  1. 在云服务器 ECS Linux 中安装 rinetd。

    1. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd
    2. sed -'s/65536/65535/g' rinetd.(修改端口范围)
    3. mkdir /usr/man&&make&&make install

    注意:rinetd 安装包下载地址不确保下载可用性,您可以自行搜索安装包进行下载使用。

  2. 创建配置文件。

    1. vi /etc/rinetd.conf
  3. 输入如下内容:

    1. 0.0.0.0 6379 Redis 的链接地址 6379
    2. logfile /var/log/rinetd.log

  4. 执行如下命令启动rinetd。

    1. rinetd

    注意

    • 通过 echo rinetd >>/etc/rc.local 可以设置为自启动。
    • 可以使用 pkill rinetd 结束该进程。
  5. 验证测试。

    在本地通过 redis-cli 连接 ECS Linux 服务器后进行登录验证,比如安装了 rinetd 的服务器的 IP 是 1.1.1.1:

    1. redis-cli -1.1.1.1 -Redis 的实例ID:Redis密码

通过上述步骤即可实现:您本地的 PC 或服务器通过公网连接 ECS Linux 6379 端口,对云数据库 Redis 进行访问。

注意:您可以通过该方案进行测试使用,因 rinetd 为开源软件,如在使用过程中存在疑问,您可以参看其官方文档或与 rinetd 官方进行联系确认。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!