使用 iptables 设置数据库代理

使用 iptables 设置数据库代理

有人能告诉我如何为以下情况设置 DB 代理吗?

让我们考虑一下,

  1. 同一网络中的三台机器 - 172.16.1.10、172.16.1.11 和 172.16.1.12
  2. 172.16.1.12 在 3306 端口上运行 mysql 实例
  3. 来自 172.16.1.10 机器的用户想要通过使用 172.16.1.11 机器和一个端口号(例如 9999)作为直通来连接到上述 mysql 实例。

    $> mysql -h 172.16.1.11 -P 9999 -u 用户1 -p pwd1'

为了实现这一点,需要创建哪些 iptables 规则?

谢谢

答案1

您可以在 172.17.1.11 上使用 NAT:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to 172.16.1.12:3306
iptables -A FORWARD -d 172.16.1.12 -p tcp --dport 3306 -j ACCEPT

相关内容