云数据库 Redis 版公网连接的前提-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

云数据库 Redis 版公网连接的前提

2017-10-30 10:45:24 3327 1

前提条件
  
如果您需要从本地 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 执行以下命令: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

  • 可以查看当前服务器中存在的映射。

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

  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。 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 安装包下载地址不确保下载可用性,您可以自行搜索安装包进行下载使用。

打开配置文件 rinetd.conf。 vi /etc/rinetd.conf

在配置文件中输入如下内容: 0.0.0.0 6379 Redis 的链接地址 6379
logfile /var/log/rinetd.log


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

执行如下命令启动 rinetd。 rinetd

注意

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

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

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


在本地进行验证测试。

  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 官方进行联系确认。



取消 提交回答
全部回答(1)
相关问答

1

回答

redis 连接问题

2019-04-09 11:57:10 2093浏览量 回答数 1

1

回答

redis连接问题

2018-08-17 10:52:47 873浏览量 回答数 1

0

回答

seata版本1.5.1数据源支持redis集群吗?

2022-07-11 17:17:57 337浏览量 回答数 0

0

回答

Redis集群演化的心路历程——从2.x到3.0时代

2018-07-16 21:45:03 805浏览量 回答数 0

0

回答

Codis 集群演化与 Redis 异步迁移

2018-07-16 22:10:39 1780浏览量 回答数 0

6

回答

在一台redis服务器上测试集群,出现“can't connect to node 172.16.252.212:7001”的错误。

2018-03-25 16:04:25 8956浏览量 回答数 6

1

回答

请问redis集群中用什么中间件?例如mysql有mysql-proxy,redis呢?

2016-03-09 09:25:59 2641浏览量 回答数 1

3

回答

利用sentinel和cluster创建Redis集群的区别

2016-03-09 10:37:08 5237浏览量 回答数 3

1

回答

redis cluster配置集群与使用Jedis的ShardedJedis做Redis集群的区别

2016-02-05 11:28:46 14883浏览量 回答数 1

1

回答

向redis集群里读写数据报错

2016-02-05 11:47:56 2348浏览量 回答数 1
+关注
云栖大讲堂
擅长前端领域,欢迎各位热爱前端的朋友加入我们( 钉钉群号:23351485)关注【前端那些事儿】云栖号,更多好文持续更新中!
文章
问答
问答排行榜
最热
最新
相关电子书
更多
阿里云Redis——读写分离
立即下载
阿里云Redis企业版Tair持久存储系列技术解读
立即下载
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载