若云数据库 Tair(兼容 Redis)实例不便于开启公网连接地址,但您需要从本地客户端访问Tair实例时,您可以在云服务器ECS上配置端口映射或者端口转发实现。
其中,本地客户端通过公网访问ECS,ECS通过专有网络与Tair实例进行数据交互。
由于公网易受到外部攻击,网络性能、稳定性均较差,不建议在生产环境中使用。
本文档包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
前提条件
ECS Windows篇
可以在ECS Windows云服务器中通过netsh进行端口映射。
由于PortProxy是由微软官方提供且未开源,您在配置和使用过程中如遇疑问,请参考PortProxy文档,或向微软官方进行咨询确认。您也可以考虑其他方案,例如通过PortMap进行代理映射配置。
登录ECS Windows服务器,在cmd执行以下命令。
netsh interface portproxy add v4tov4 listenaddress=<$ECS的私网连接地址> listenport=6379 connectaddress=<$Tair的专有网络连接地址> connectport=6379
示例:
netsh interface portproxy add v4tov4 listenaddress=172.*.*.1 listenport=6379 connectaddress=r-bp1zy*******f16pos.redis.rds.aliyuncs.com connectport=6379
。执行
netsh interface portproxy show all
命令,查看当前服务器存在的映射。系统显示类似如下。
C:\Users\Administrator>netsh interface portproxy show all 侦听 ipv4: 连接到 ipv4: 地址 端口 地址 端口 --------------- ---------- --------------- ---------- 172.*.*.1 6379 r-bp1zy*******f16pos.redis.rds.aliyuncs.com 6379
在本地客户端进行验证测试。
在本地通过redis-cli连接ECS公网地址。
假设ECS 公网IP是10.10.10.10,即
redis-cli -h 10.10.10.10 -p 6379
。连接成功后,输入Tair的账号密码。
格式为
auth Tair账号密码
,例如:auth Passw***
。进行数据写入及查询验证。
完成相关操作后,如需删除公网转发映射,可在cmd中执行如下命令。
netsh interface portproxy delete v4tov4 listenaddress=<ECS服务器的私网IP地址> listenport=6379
。
ECS Linux篇
可以在ECS Linux服务器中安装Rinetd进行端口转发。
因Rinetd为开源软件,如在使用过程中存在疑问,您可以参见Rinetd文档或与Rinetd官方进行联系确认。
登录云服务器ECS Linux服务器,依次执行如下命令,安装Rinetd。
wget https://github.com/samhocevar/rinetd/releases/download/v0.70/rinetd-0.70.tar.gz&&tar -xvf rinetd-0.70.tar.gz&&cd rinetd-0.70 sed -i 's/65536/65535/g' rinetd.c mkdir /usr/man ./configure make&&make install
说明若无法通过命令行中的地址下载Rinetd安装包,您也可以自行搜索安装包进行下载使用。
打开配置文件rinetd.conf。
vim /etc/rinetd.conf
在配置文件中输入如下内容。
0.0.0.0 6379 <$Tair的专有网络连接地址> 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
命令确认服务是否正常运行。
在本地客户端进行验证测试。
在本地通过redis-cli连接ECS公网地址。
假设ECS 公网IP是10.10.10.10,即
redis-cli -h 10.10.10.10 -p 6379
。连接成功后,输入Tair的账号密码。
格式为
auth Tair账号密码
,例如:auth Passw***
。进行数据写入及查询验证。
完成相关操作后,如需停止公网端口转发,可执行
pkill rinetd
命令结束进程。