为什么不是我的Linux防火墙开放端口?

我一直在使用“Linux防火墙”iptables在专用的Linux服务器上打开一个简单的端口。

我已经使用Webmin和terminal在表中添加端口(3306),但它仍然不会让我远程连接。

我重新启动了多次iptables,它仍然无法正常工作。

这是iptables -L的输出

http://pastie.org/private/cqnsjusfgtehafg7g42vq

请帮忙。

我敢打赌,你的MySQL实例不是在公共IP上侦听,只能在本地主机或Unix套接字上侦听。 检查netstat -ltn的输出, netstat -ltn:3306结尾的本地地址; 如果没有,则在socket上监听,从my.cnf删除skip-networking并重新启动; 如果它说127.0.0.1:3306那么它正在本地主机上侦听,从my.cnf删除bind-address = 127.0.0.1并重新启动。

为了安全起见,最好通过SSH隧道来访问MySQL,因为MySQL不encryption任何东西,并且将MySQL实例打开到世界是一个可怕的想法。 这篇来自我的工作的知识库文章描述了这个过程: http : //www.anchor.com.au/hosting/support/MySQL/Connecting_to_mysql_remotely

(呵呵,另外,防火墙不会阻塞任何东西,因为所有的策略都设置为ACCEPT,这是一个没有目的的防火墙)。

Mysql连接问题?

我知道这听起来很奇怪,但我不得不问,是MySQL运行?

在你的my.cnf中,你可能会有线路跳过networking,阻止远程连接。

还要检查在rc.mysqld启动你的mysql的守护进程(位置可能不同,可能是/ etc / sysconfig / mysqld)没有–skip-networking

在你的mysql你可以检查一个:

mysql> SHOW VARIABLES LIKE'skip_networking';

对于iptables,我使用:

iptables -A INPUT -p tcp -s 0/0 – 端口1024:65535 -d [服务器IP] – 端口3306 -m状态 – 状态新build,build立-j接受

iptables -A OUTPUT -P tcp -s [Server_IP] –sport 3306 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT

你有selinux运行在强制模式? 尝试cat /selinux/enforce找出 – 我认为默认强制模式将阻止传入的连接。