远程访问 mysql 服务的最佳实践?

2020-11-08 10:47:14 +08:00
 acshiryu

因为业务需要,公司有一台云主机使用 laravel,需要访问到远程的数据库。

数据库有多个,分布在不同的地方,有些区域的云数据库不支持使用外网直接访问,所以中间需要有个代理,目前查阅资料发现两个比较可行的方案。

  1. 使用 nginx 转发 TCP 流量,部署比较简单,nginx 配置好白名单 ip,直接就能远程访问
  2. 使用 ssh 隧道,需要远程主机上部署公钥,业务主机能够 ssh 访问,安全性高,但隧道常驻比较麻烦,连接被断开了不能做到自动重启

我个人倾向于使用方案 1,但不知道安全性经不经受的住考验,不知道 V 友怎么看这两种方案孰优孰劣。

4085 次点击
所在节点    MySQL
14 条回复
cxh116
2020-11-08 11:57:43 +08:00
直接用 ZeroTier 组 vpn 访问。
des
2020-11-08 12:12:00 +08:00
vpn 组网访问?
luguiyao
2020-11-08 12:28:01 +08:00
不考虑延时问题吗
AkideLiu
2020-11-08 15:59:14 +08:00
选 2 吧,写个脚本监测 ssh 隧道
saytesnake
2020-11-08 17:25:32 +08:00
Nginx 的 Stream 模块很迷,仅仅是数据库 GUI 工具管理远程连还行,如果是跑业务方面(仅测试环境)的用 HAProxy 比较稳定,Nginx 估计没怎么考虑纯 TCP/UDP 代理。

搞不懂什么原因,实践出来的。

如果是生产的话还是别了,不说什么代理,外网直连难以想象。
xiaoz
2020-11-08 17:27:14 +08:00
@saytesnake #5,老哥可以分享下 Nginx 的 Stream 具体有哪些坑吗?
saytesnake
2020-11-08 17:37:52 +08:00
@xiaoz 配置很简单,但无论怎么调 ka 超时,请求超时等等,应用端跑个东西读写一多就频频断连,而 HA 则一切正常。

之前也有同事配置自建邮箱( iRedmail )的收发端口转发,一开始用的也是 Nginx,经常断连,中途还换过纯 iptables/firewalld,比 Nginx 好一点,但还是有断连的情况,换 HA 就稳定了。
lithiumii
2020-11-08 17:55:11 +08:00
ssh 可以弄个 auto ssh 自动重连(必须是用公钥),也有 docker 版,还有 python 实现的版本,甚至能密码重连
xiaoz
2020-11-08 18:09:49 +08:00
@saytesnake #7,好的,感谢分享,我之前配置过 stream 用来加速 SSH,也遇到经常断掉的情况,我试试 HA
whitehack
2020-11-08 18:23:25 +08:00
密码够复杂就直接在跳板机上用 tcp 代理一下. 不用的时候关掉就好了

这有个简单的 ,也可以用 docker 启动

https://github.com/whtiehack/socket-proxy
ciqulover
2020-11-08 22:35:32 +08:00
对于 tcp 流量转发,在不复杂的场景下个人经验最稳健的方案:
1. ipatbles 端口转发,需要内核开启 forward,优点是一般服务器不需要额外安装别的软件,非常稳定,就是 iptables 配置麻烦些。
2. haproxy,稳定灵活从不出错
sujin190
2020-11-09 00:32:28 +08:00
部署服务的话,最好还是用 vpn 组网,安全也靠谱
ackoly
2020-11-14 01:17:37 +08:00
有过这样的需求,我是通过代理服务器直接做转发,测试是通过你。
后来运维通过阿里云的另外一个功能,可以更方便实现需求,但我不清楚。
ackoly
2020-11-14 01:20:21 +08:00
有过同样的需求,我是通过代理服务器做防火墙转发实现的,测试通过。
后来运维通过阿里云的另外一个功能,可以更方便实现需求,但我不清楚

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX