无法远程访问EC2实例:SSH及MySQL连接超时排查求助
可能的排查方向
- 检查NACL出站规则:网络ACL是双向规则,仅开放入站不够。需要确保出站规则允许TCP响应流量(通常是1024-65535的临时端口),或者直接添加一条允许所有出站流量的规则(序号要合理,避免被拒绝规则覆盖)。
- 实例本地防火墙拦截:
- Linux实例:执行
iptables -L或firewall-cmd --list-all查看本地防火墙规则,确认22(SSH)和3306(MySQL)端口未被拦截。如果有拦截,添加允许规则或临时关闭防火墙测试。 - Windows实例:检查Windows Defender防火墙的入站规则,确认已允许SSH(22)和MySQL(3306)的连接。
- Linux实例:执行
- 子网路由表配置:确认实例所在子网的路由表中存在指向互联网网关(IGW)的
0.0.0.0/0路由条目。如果没有这条路由,即使实例有公网IP,也无法与外部通信。 - MySQL绑定地址限制:MySQL默认可能仅绑定
127.0.0.1(仅本地访问),需要修改配置文件(如/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)中的bind-address为0.0.0.0或实例的私有IP,修改后重启MySQL服务。 - NACL规则顺序问题:网络ACL按规则序号从小到大匹配,即使第100条允许所有流量,如果存在序号更小的拒绝规则(比如拒绝22/3306端口),会优先触发拒绝。检查NACL中所有小于100的规则,确保没有拦截目标端口的条目。
- 公网IP有效性:确认公网IP是正确关联到实例的弹性公网IP(EIP),或者实例的临时公网IP未因重启变更。同时检查EC2实例是否处于运行中状态,且系统状态正常。
- 本地网络限制:尝试切换到其他网络(如手机热点)测试连接,排除本地网络防火墙、ISP拦截或代理服务器的影响。
内容的提问来源于stack exchange,提问作者Krishan Shamod
相关产品推荐
相关产品推荐

