Telnet 3306 无法连接到 Amazon EC2

Telnet 3306 无法连接到 Amazon EC2

好的,我知道这个问题已经被问了很多次了,但是我已经尝试了能找到的所有建议,但仍然无法通过端口 3306 远程登录到我的 Amazon 服务器。

  1. 添加 iptables 条目以接受端口 3306 上的连接:

    iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

  2. 这并没有解决问题,所以我关闭了防火墙ufw disable

  3. 在 Amazon AWS 上为我的特定服务器的安全组部分中的任何位置添加 3306。(相关行:MYSQL TCP 3306 0.0.0.0/0)
  4. 将 bind-address 更改为0.0.0.0inmy.cnf并确保端口为 3306

还是没运气。还有其他原因导致端口 3306 被阻止吗?为什么我无法使用 telnet 连接?(当然我的目的是远程连接 mysql)以下是netstat -lnptu

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      16883/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      932/sshd
tcp6       0      0 :::80                   :::*                    LISTEN      14030/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      932/sshd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           512/dhclient
udp        0      0 0.0.0.0:29313           0.0.0.0:*                           512/dhclient
udp6       0      0 :::28486                :::*                                512/dhclient

答案1

事实证明,ufw disable 并没有真正关闭 iptables 规则。我的 iptables 中有以下行:

REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

这使得附加的 ACCEPT 行不会被忽略。我iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT使用 -I 而不是 -A 添加该行,这样就成功了。

最后的iptables -L 效果是:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

相关内容