文章目录
- 1. Linux(centos8)安装redis数据库
- 2. 配置redis数据库
- 3. 内网穿透
- 3.1 安装cpolar内网穿透
- 3.2 创建隧道映射本地端口
- 4. 配置固定TCP端口地址
- 4.1 保留一个固定tcp地址
- 4.2 配置固定TCP地址
- 4.3 使用固定的tcp地址连接
转载自cpolar极点云文章:公网远程连接Redis数据库「内网穿透」
Redis作为一款高速缓存的key value键值对的数据库,在许许多多的场景中广泛使用,由于是把数据存储在内存中,所以读写效率极高。
下面介绍如何在内网虚拟机的linux中搭建redis并通过cpolar内网穿透实现公网访问
1. Linux(centos8)安装redis数据库
- 进入user下面的local目录,通常外部软件安装在此目录
cd /usr/local
- 下载redis
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
- 下载好后,解压redis
tar xzf redis-6.2.6.tar.gz
- 解压好后,进入redis目录进行编译
cd redis-6.2.6/
- 进入后输入
make
,输入后等待编译完成
编译好后,输入以下命令安装redis
make install PREFIX=/usr/local/redis-6.2.6
安装好后进入redis目录执行以下命令启动redis,默认端口是6379
./bin/redis-server redis.conf
然后Ctrl+C
退出
2. 配置redis数据库
配置redis后台运行,编辑配置文件redis.conf
vim /usr/local/redis-6.2.6/redis.conf
将daemonize no
改成daemonize yes
还有将以下两个参数分别修改,开启远程访问
修改完成后保存退出配置文件,重启redis然后接着再次执行如下启动命令,发现redis图形不见了,即为后台启动
./bin/redis-server redis.conf
3. 内网穿透
cpolar是一款内网穿透软件,使用简单,安全可靠。我们可以通过cpolar把本地6379端口暴露到公共网络,然后可以使用工具进行远程访问。
cpolar官网:https://www.cpolar.com/
3.1 安装cpolar内网穿透
- Linux支持使用一键脚本命令安装
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- token认证
登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后执行如下命令,xxxx是token码
cpolar authtoken xxxxxxx(您的token)
- 向系统添加服务(以方便开机自启)
sudo systemctl enable cpolar
- 启动cpolar服务
sudo systemctl start cpolar
3.2 创建隧道映射本地端口
cpolar安装成功后,在命令行输入以下命令将本地6369端口下的redis暴露到公网
cpolar tcp 6379
出现如下界面表示成功,然后复制公网地址
使用redis图形化界面远程连接redis,输入复制的tcp地址,点击测试连接
出现successful表示成功
注意:如果想要让隧道长期可访问,可以将其保存到配置文件中去,实现后台服务。请参考cpolar官网——文档——命令行创建隧道——将隧道配置为后台服务。
4. 配置固定TCP端口地址
以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。而我们可以为其配置一个固定的公网地址,方便后续长期远程。
4.1 保留一个固定tcp地址
登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为远程Redis数据库保留一个固定tcp地址:
- 地区:选择China vip
- 描述:即备注,可自定义
点击保留
地址保留成功后,系统会生成相应的固定公网地址,将其复制下来
4.2 配置固定TCP地址
编辑cpolar配置文件
vim /usr/local/etc/cpolar/cpolar.yml
复制添加如下信息,remote_addr参数为上面复制的保留的tcp地址
redis:
addr: 6379
proto: tcp
remote_addr: 3.tcp.vip.cpolar.cn:11506
修改完然后保存退出,接着重启cpolar服务
sudo systemctl start cpolar
4.3 使用固定的tcp地址连接
出现successful表示成功