V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
acshiryu
V2EX  ›  MySQL

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

  •  
  •   acshiryu · 2020-11-08 10:47:14 +08:00 · 4330 次点击
    这是一个创建于 1481 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    https://github.com/whtiehack/socket-proxy
    ciqulover
        11
    ciqulover  
       2020-11-08 22:35:32 +08:00 via iPhone
    对于 tcp 流量转发,在不复杂的场景下个人经验最稳健的方案:
    1. ipatbles 端口转发,需要内核开启 forward,优点是一般服务器不需要额外安装别的软件,非常稳定,就是 iptables 配置麻烦些。
    2. haproxy,稳定灵活从不出错
    sujin190
        12
    sujin190  
       2020-11-09 00:32:28 +08:00 via Android
    部署服务的话,最好还是用 vpn 组网,安全也靠谱
    ackoly
        13
    ackoly  
       2020-11-14 01:17:37 +08:00 via iPhone
    有过这样的需求,我是通过代理服务器直接做转发,测试是通过你。
    后来运维通过阿里云的另外一个功能,可以更方便实现需求,但我不清楚。
    ackoly
        14
    ackoly  
       2020-11-14 01:20:21 +08:00
    有过同样的需求,我是通过代理服务器做防火墙转发实现的,测试通过。
    后来运维通过阿里云的另外一个功能,可以更方便实现需求,但我不清楚
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:40 · PVG 21:40 · LAX 05:40 · JFK 08:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.