IPtables转发MySQL

前言

一般情况下,DB当然是放在内网,不允许公网访问的。但是,我们还有特殊情况,需要外网可以访问内网的数据库,这时候,我们可以用代理,用HA代理发现会报错[reading initial communication packet],然后想了一下,想到用IPtables来做代理。

正文

其实很简单,只需要一个DNAT和SNAT。

MYSQLIP='192.168.1.1'
HAIP='172.19.244.5'
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination $MYSQLIP
iptables -t nat -A POSTROUTING -p tcp --dst $MYSQLIP --dport 3306 -j SNAT --to-source $HAIP

修改完成后可以用iptables-save保存IPtables规则到文件中,这种方法也适用于其他服务提供给外网访问。

总结

IPtables的SNAT和DNAT对于代理,是相当好用的,特别是现在大部分服务器都安放在内网的“云”,少买一个IP就能省一些成本 - .-

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容