版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wd2014610/article/details/85725269
在阿里云、华为云上,购买了一个云数据库Redis,但是我通过本地的客户端或者程序,没法通过公网访问,不造为啥会有这样约定俗成的。华为云更是有意思,你如果想要开启公网访问,你需要额外购买弹性公网IP。
一、云数据库Redis版问题
比如说我在华为云买了一个云数据库Redis。
你如果要开启公网访问,你就得买他的弹性公网IP。
但是他这个弹性公网IP卖的啊,比我的云数据库Redis和云主机还贵。
那么怎么解决这个问题了。
我们可以通过云主机搭桥的方式。
首先你需要在对应的云服务商拥有一台云主机机。
比如说,我的云数据库是华为云的,我在华为云也有一台云主机,只要云主机和云数据库是在同一个用户下的。(如果他们在同一个区域也是可以的)。
二、搭桥解决这个外网访问的问题
- 首先登陆我的云主机
- 需要执行下面这条语句,安装
rinetd
(想深入了解请搜索)
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd
sed -i 's/65536/65535/g' rinetd.c (修改端口范围)
mkdir /usr/man&&make&&make install
- 编辑配置文件
rinetd.conf
你需要在这个/etc
目录下,才能找到这个配置文件
编辑它vi rinetd.conf
把下面这条配置放入其中172.31.79.87
换成你自己的云Redis内网地址。
0.0.0.0 6379 172.31.79.87 6379
logfile /var/log/rinetd.log
编辑如图
- 启动它
运行方式:
- 直接执行
rinetd
- 通过
echo rinetd >>/etc/rc.local
将rinetd
设置为自启动。 - 若遇到绑定报错,可以执行
pkill rinetd
结束进程,再执行rinetd
启动进程rinetd
。
- 看看是否启动成功了
netstat -anp | grep 6379
- 现在那就可以访问了。
你需要配置一下云主机的安全组。
你可能还需要关闭或者设置一下云主机防火墙释放对应端口。
关闭防火墙。
ufw disable
执行结果
root@xqq:~# ufw disable
Firewall stopped and disabled on system startup
- 好了。现在你就可以访问了。
访问地址是你的云主机的,端口是6379。访问地址是你的云主机的,端口是6379。
好啦。快去尝试一下吧。