解决阿里云、华为云等云数据库 Redis 版无法外网访问的问题(云主机搭桥—亲测有效)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wd2014610/article/details/85725269

在阿里云、华为云上,购买了一个云数据库Redis,但是我通过本地的客户端或者程序,没法通过公网访问,不造为啥会有这样约定俗成的。华为云更是有意思,你如果想要开启公网访问,你需要额外购买弹性公网IP。

一、云数据库Redis版问题

比如说我在华为云买了一个云数据库Redis。
你如果要开启公网访问,你就得买他的弹性公网IP。

在这里插入图片描述

但是他这个弹性公网IP卖的啊,比我的云数据库Redis和云主机还贵。

在这里插入图片描述

那么怎么解决这个问题了。
我们可以通过云主机搭桥的方式。
首先你需要在对应的云服务商拥有一台云主机机。
比如说,我的云数据库是华为云的,我在华为云也有一台云主机,只要云主机和云数据库是在同一个用户下的。(如果他们在同一个区域也是可以的)。

二、搭桥解决这个外网访问的问题

  1. 首先登陆我的云主机

在这里插入图片描述

  1. 需要执行下面这条语句,安装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
  1. 编辑配置文件 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

编辑如图

在这里插入图片描述

  1. 启动它

在这里插入图片描述

运行方式:

  • 直接执行rinetd
  • 通过 echo rinetd >>/etc/rc.localrinetd 设置为自启动。
  • 若遇到绑定报错,可以执行 pkill rinetd 结束进程,再执行 rinetd启动进程 rinetd
  1. 看看是否启动成功了netstat -anp | grep 6379

在这里插入图片描述

  1. 现在那就可以访问了。

你需要配置一下云主机的安全组。

在这里插入图片描述

你可能还需要关闭或者设置一下云主机防火墙释放对应端口。
关闭防火墙。

ufw disable

执行结果

root@xqq:~# ufw disable
Firewall stopped and disabled on system startup
  1. 好了。现在你就可以访问了。
    访问地址是你的云主机的,端口是6379。访问地址是你的云主机的,端口是6379。

好啦。快去尝试一下吧。

猜你喜欢

转载自blog.csdn.net/wd2014610/article/details/85725269