【问题标题】:MySQL on two ports using IPTables - self-accessMySQL 在两个端口上使用 IPTables - 自我访问
【发布时间】:2026-01-08 14:00:01
【问题描述】:

我正在尝试通过 2 个端口使 MySQL 可用:3306 和 3339 我在 iptables 中添加了规则:

iptables -t nat -A PREROUTING -i bond0 -p tcp --dport 3339 -j REDIRECT --to-port 3306

一切都非常适合远程连接。 但如果我尝试在本地连接它,我会收到错误消息:

mysql -u username -ppassword --port=3339 -h Host.Name
ERROR 2003 (HY000): Can't connect to MySQL server on 'Host.Name' (111)

任何想法如何编辑 iptables 以通过 3339 端口获得本地访问权限?

【问题讨论】:

  • 您不能只使用 3306 进行本地连接吗?无论如何,我都不明白您通过将 2 个外部端口指向同一个 mysql 实例来实现的目标
  • 不幸的是,我需要在两个不同的端口上使用相同的 MySQL。这是 NAT 后面的钨复制方案。

标签: mysql linux firewall iptables ports


【解决方案1】:

由于环回接口不使用 PREROUTING,我们必须再添加一条规则:

iptables -t nat -I OUTPUT -p tcp -o lo --dport 3339 -j REDIRECT --to-ports 3306

【讨论】: