我从 mysql 网站获取了以下 2 个命令。我尝试将默认 mysql 端口从 3306 更改为 4040 并改回。但它没有按预期工作。
重定向到代理:
iptables -t nat -I PREROUTING -s ! 127.0.0.1 -p tcp --dport 3306 -j REDIRECT --to-ports 4040
恢复默认:
iptables -t nat -D PREROUTING -s ! 127.0.0.1 -p tcp --dport 3306 -j REDIRECT --to-ports 4040
我在这里遗漏了什么?
更新:
状态变化显示如下:
# /etc/init.d/iptables status
Table: nat
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- !127.0.0.1 0.0.0.0/0 tcp dpt:3306 redir ports 4040
2 REDIRECT tcp -- !127.0.0.1 0.0.0.0/0 tcp dpt:3306 redir ports 4040
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
答案1
对于您想要实现的目标,您使用错误的端口。您想从 4040 重定向到 3306。因此请尝试:
iptables -t nat -I PREROUTING -s ! 127.0.0.1 -p tcp --dport 4040 -j REDIRECT --to-ports 3306
您还需要确保删除其他不正确的规则。
PS 如果这是一个生产系统,甚至不能承受停机时间来更改侦听器端口,那么您不应该尝试iptables
来自互联网的规则!请先在测试机上进行测试。