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

本文涉及的产品
云服务器 ECS,u1 2核4GB 3个月
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: https://help.aliyun.com/document_detail/43850.html 前提条件如果您需要从本地 PC 端访问 Redis 实例进行数据操作,可以通过在 ECS 上配置端口映射或者端口转发实现。

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

 

前提条件

如果您需要从本地 PC 端访问 Redis 实例进行数据操作,可以通过在 ECS 上配置端口映射或者端口转发实现。但必须符合以下前提条件:

  • 若 Redis 实例属于专有网络(VPC),ECS 必须与 Redis 实例属于同一个 VPC。

  • 若 Redis 实例属于经典网络,ECS 必须与 Redis 实例属于同一节点(地域)。

  • 若 Redis 实例开启了 IP 白名单,必须将 ECS 的内网地址加入白名单列表内。

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

    其中:

    • netsh interface portproxy delete v4tov4 listenaddress=ECS公网服务器的公网IP地址 listenport=6379 可以删除不需要的映射。

    • netsh interface portproxy show all 可以查看当前服务器中存在的映射。

  2. 设置完成后在本地进行验证测试。

    本地验证

    1. 在本地通过 redis-cli 连接 ECS Windows 服务器。假设 ECS Windows 服务器的 IP 是 1.1.1.1,即 telnet 1.1.1.1 6379

    2. 连接上 ECS windows 服务器后,输入连接 Redis 的密码:auth Redis的连接密码

    3. 进行数据写入及查询验证。

通过上述步骤即可实现:您本地 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 -i 's/65536/65535/g' rinetd.c (修改端口范围)
    3. mkdir /usr/man&&make&&make install

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

  2. 打开配置文件 rinetd.conf。

    1. vi /etc/rinetd.conf
  3. 在配置文件中输入如下内容:

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

    说明:您可以使用 cat /etc/rinetd.conf命令来检验配置文件是否修改正确。

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

    1. rinetd

    注意

    • 您可以通过 echo rinetd >>/etc/rc.local 将 rinetd 设置为自启动。

    • 若遇到绑定报错,可以执行 pkill rinetd 结束进程,再执行 rinetd启动进程 rinetd。

    • rinetd 正常启动后, 执行netstat -anp | grep 6379 确认服务是否正常运行。

    netstat 验证

  5. 在本地进行验证测试。

    1. 您可以在本地通过 redis-cli 连接 ECS Linux 服务器后进行登录验证,比如安装了 rinetd 的服务器的 IP 是 1.1.1.1,即redis-cli -h 1.1.1.1 -a Redis的实例ID:Redis密码。或者通过 telent 连接 ECS Linux 服务器后进行操作验证。假设 ECS Linux 服务器的 IP 是 1.1.1.1,即telnet 1.1.1.1 6379

    2. 连接上 ECS Linux 服务器后,输入连接 Redis 的密码:auth Redis的连接密码

    3. 进行数据写入及查询验证。

      本地验证

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

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

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2天前
|
NoSQL 算法 Java
诡异!Redis Proxy RT上升后连接倾斜
本文细致地描述了关于Redis Proxy RT上升后连接倾斜问题的排查过程和根本原因,最后给出了优化方案。
|
2天前
|
NoSQL Ubuntu 安全
RedisDesktopManager连接Ubuntu的Redis失败解决办法
通过仔细检查您的系统配置与网络设置,您通常可以解决RDM连接到Ubuntu服务器上的Redis实例的问题。始终牢记在公开或者不信任的网络上,以安全为先,避免泄露敏感信息。
8 2
|
15天前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
15天前
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
4天前
|
NoSQL Cloud Native Redis
|
15天前
|
NoSQL JavaScript Redis
若依后端部署---若依部署,Redis在D盘的project的应用工具当中,在连接过程中,先用Xshell连接若依,RDM在应用工具里,同时host的主机也要写好
若依后端部署---若依部署,Redis在D盘的project的应用工具当中,在连接过程中,先用Xshell连接若依,RDM在应用工具里,同时host的主机也要写好
|
15天前
|
NoSQL Java 关系型数据库
软件开发常用之若依修改之添加数据库,添加redis,利用RDM连接宝塔
软件开发常用之若依修改之添加数据库,添加redis,利用RDM连接宝塔
|
15天前
|
Java Redis 数据安全/隐私保护
Redis14----Redis的java客户端-jedis的连接池,jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,最好用jedis连接池代替jedis,配置端口,密码
Redis14----Redis的java客户端-jedis的连接池,jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,最好用jedis连接池代替jedis,配置端口,密码
|
15天前
|
Java Redis 数据安全/隐私保护
Redis13的Java客户端-Jedis快速入门,建立连接的写法,ip地址,设置密码密码,选择库的写法
Redis13的Java客户端-Jedis快速入门,建立连接的写法,ip地址,设置密码密码,选择库的写法
|
18天前
|
NoSQL Redis 数据库
Redis的GUI工具——Another-Redis-Desktop-Manager连接远程数据库Redis
Redis的GUI工具——Another-Redis-Desktop-Manager连接远程数据库Redis
17 0