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就能省一些成本 - .-

你可能感兴趣的:(IPtables转发MySQL)