前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何通过公网代理连接MySQL

如何通过公网代理连接MySQL

原创
作者头像
研究僧
修改2020-06-07 22:40:49
5.4K0
修改2020-06-07 22:40:49
举报

本节主要介绍通过云主机自带的iptables(防火墙)功能来做代理服务的转发,因为MySQL的用户比较多可以看到很多网友对这里也有一些需求所以这里以它为例,但通过本方式除MySQL外还可以实现很多服务(Redis\MongoDB\SQLServer)内外网的互通。 以MySQL为例本机介绍三个话题:

  • 什么情况下使用公网代理连接
  • 公网代理配置注意事项
  • 如何配置公网代理


什么情况下使用公网代理连接

腾讯云的MySQL自带公网功能,在MySQL的实例基本信息中如以下截图,可以开启公网功能。官方建议这种情况只适用于临时测试和导入导出数据等场景下使用,切记不要用于生产环境使用。

MySQL开启公网
MySQL开启公网

在腾讯云的海外IDC部分机房比较小,没有足够的资源搭建代理转发是不提供外放访问方式的,这种情况在很多小IDC都会出现。所以如果用户强烈希望通过公网来方位自己的MySQL实例,这时通常官方会推荐您搭建公网代理的方式,就是在当地购买一台云主机,这云主机可以与MySQL实例进行内网通信,并通过云主机的公网IP进行端口映射转发到内网的MySQL实例。

公网代理配置注意事项

以下为用户访问流程,用户在配置好云主机(cvm)转发功能后,就可以从公网直接访问内网的云MySQL。因为是公网访问所以这里一定注意安全。

  • 首先,安全组只开放固定IP来源转发到内网的MySQL端口上
  • 其次,在iptables规则时需要应用最简原则,即转发特定IP、特定端口、特定协议到指定的IP上
  • 最后,测试完切记清理iptables转发规则或关闭安全组

用户转发数据流程
用户转发数据流程

如何配置公网代理

这里使用了云主机的iptables命令的来实现nat转发功能。iptables功能非常强大,netfilter的开源项目其地址见(http://www.netfilter.org/projects/iptables/index.html)以下为iptables的数据访问流程图。

具体转发规则如下。(术语snat源地址转换,dnat目的地址转换)

代码语言:javascript
复制
# 临时打开nat转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward  
# 172.16.16.18 为主机公网对应的内网IP, 172.16.32.10 为内网MySQL的IP
iptables -t nat -A PREROUTING -d 172.16.16.18 -p tcp --dport 7788 -j DNAT --to-destination 172.16.32.10:3306
# 反过来写
iptables -t nat -A POSTROUTING -d 172.16.32.10 -p tcp --dport 3306 -j SNAT --to-source 172.16.16.18

注意,这里在通过其他IP访问代理服务器的MySQL时,输入的是7788映射端口,而非MySQL3306端口

# MASQUERADE,如果不想写snat这么长的规则,可以直接输入以下规则。

代码语言:javascript
复制
iptables -t nat -A POSTROUTING -j MASQUERADE

参考资料

http://www.zsythink.net/archives/1199

https://wangchujiang.com/linux-command/c/iptables.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么情况下使用公网代理连接
  • 公网代理配置注意事项
  • 如何配置公网代理
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档