如何允许端口3306在CentOS中的iptables

我无法远程连接端口3306.我的托pipe公司说,我必须允许连接端口3306使用iptables

什么命令在terminal上键入

Chain INPUT (policy DROP) target prot opt source destination ... ACCEPT tcp -- anywhere anywhere tcp dpt:mysql ACCEPT tcp -- anywhere anywhere tcp dpt:mysql ACCEPT tcp -- anywhere anywhere tcp dpt:mysql ACCEPT tcp -- eth2947.rt.adsl.internode.on.net anywhere state NEW tcp dpt:mysql ... 

尝试使用tcptraceroute hostname.fqdn 3306来查看连接是否在早期的某个地方被防火墙tcptraceroute hostname.fqdn 3306

最有可能的问题是,mysql的默认configuration是不侦听IP连接(旧的默认, skip-networking选项),或者只监听环回( bind-address选项)。 尝试评论这些,如果他们存在,然后重新启动MySQL。

那么,这很大程度上取决于你当前的iptables规则集的样子。 像这样的东西应该在你的/ etc / sysconfig / iptables文件中工作:

 -A INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 --dport 3306 -j ACCEPT 

…其中1.2.3.4是您要连接的IP地址。

如果它不起作用,发布/ etc / sysconfig / iptables的内容,我会修改我的答案。

另一个选项是通过SSH隧道连接到你的MySQL服务器。 做到这一点,连接到你的服务器,像这样的东西:

 $ ssh user@host -L3306:localhost:3306 

然后把你的本地mysql客户端指向localhost:3306,它将通过隧道传送到服务器。 请记住,您还需要在mysql中授予相应用户/主机组合的访问权限。

我应该补充说,把你的mysql端口暴露给互联网通常不是一个好主意,除非你绝对需要。 SSH隧道选项是远程连接的好方法。