引言
数据库作为现代信息系统不可或缺的一部分,无论是Web应用、移动应用还是桌面应用,都需要通过数据库来存储和管理数据。为应用程序提供了数据访问接口和数据处理能力;企业及个人在进行应用系统开发的时候,一般在公司内网或家里部署数据库,一般通过内部网络跟本地开发的应用系统进行数据管理测试,由于数据库的连接仅限于内部网络,当用户离开内网的范围时,如何为用户提供简便、安全的数据库连接?
ZeroNews零讯的内网穿透很好的帮我解决了这个问题,无需公网IP,操作简单,简单几行命令即可完成内网穿透部署,在windows / linux 系统都能运行,我还能自定义域名,让我无论在家还是公司,都能通过域名快速连接公司或家里的Mysql、redis数据库,并且能随用随拆,需要的就去添加,不需要的时候就删除,安全可靠。
现将我的数据库内网穿透的完整方法分享给大家,希望对大家开发的过程中有所帮助 !
内网穿透步骤
公司内网Mysql 数据库 穿透访问
1. 以容器部署为例,在Centos服务器上部署 Mysql 数据库
先创建 mysql 的数据目录,我创建在 /opt/docker/mysql/data
mkdir -p /opt/docker/mysql/data
启动 mysql 容器,挂载创建好的数据目录,通过环境变量设置 mysql 密码,我用的mysql 镜像是 mysql:8.0
docker run -d -p 3306:3306 --privileged=true --restart always --name mysql \
-v /opt/docker/mysql/data :/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Aa123456789 mysql:8.0
2. Mysql 运行成功后,同样在Centos服务器上运行 ZeroNews
先 SSH 到centos服务器,一行命令下载运行 ZeroNews 内网穿透客户端
curl -SLk https://download.zeronews.cc/linux/zeronews-install.sh | sh -s install
然后登录 ZeroNews 平台为centos客户端添加Token
在centos服务器的命令行界面,输入命令绑定Token 后,设置连接的网络区域,并启动
绑定 token
zeronews set-token kyG5lpxxxxxxxjxxvpbTJw
设置连接的网络区域
zeronews set-area 440
启动 zeronews 客户端
systemctl restart zeronews
ZeroNews 客户端启动后,在平台上可以看到centos设备已上线
3. 为 mysql 添加 ZeroNews 域名及公网端口
我为 Mysql 添加公网域名 arpmysql.south.takin.cc, 并分配mysql 的TCP公网端口号 10168
4. 最后添加 mysql 映射,实现mysql公网连接
先添加一个mysql 应用
然后再 mysql 应用下,用添加的好域名创建mysql访问映射
- 映射协议: 选择TCP协议
- 访问域名:选择前面添加好的域名地址 arpmysql.south.takin.cc:10168
- 带宽:因为我的数据量不大,所以 1M 就满足我的需求
- 内网IP:因为是本机部署,保持 127.0.0.1 不变
- 内网端口: 输入mysql 的内网访问端口 3306,如有修改访问端口,输入修改后的端口号
添加完成后,在应用界面能查看 mysql映射的访问地址,然后通过该访问地址连接 mysql 数据库
5. 在家连接公司 mysql 数据库
我用 SQLyog 工具连接数据库, 数据库地址输入 arpmysql.south.takin.cc 域名地址, 端口输入 10168 公网端口,就能连接公司内部的Mysql 数据库了
家里的 Redis 数据库穿透访问
1. 对于家里的 Redis 数据库,同样按上的步骤在家里的电脑上运行 ZeroNews 客户端
2. 为 redis 添加 ZeroNews 域名及公网端口
如为 Mysql 添加公网域名 arpredis.south.takin.cc, 并分配公网访问端口号 10169
3. 再为 redis 应用及映射
添加 redis 的映射
- 映射协议: 选择TCP协议
- 访问域名:选择前面添加好的域名地址 arpredis.south.takin.cc:10169
- 带宽: 1M 就能满足我的需求
- 内网IP:因为是本机部署,保持 127.0.0.1 不变
- 内网端口: 输入redis 的内网访问端口 6379,如有修改访问端口,输入修改后的端口号
redis映射添加完成后,在应用界面能查看 redis映射的访问地址,然后通过该访问地址连接 redis 数据库
结束
其它数据库也可以参考上面步骤,进行穿透访问。
小伙伴们,有什么问题都可以评论区留言, 看见都会回复的
如果你觉得本篇文章对你有所帮助,把"文章有帮助的"打在评论区
多多支持,谢谢。