无法通过EC2公网IP访问Tomcat 10实例的问题排查求助
排查EC2上Tomcat 10公网无法访问的问题
根据你提供的信息,以下是几个关键排查方向:
1. 安全组是否开放了8080端口
你提到入站规则允许HTTP(80)和HTTPS(443),但Tomcat默认监听的是8080端口。从netstat输出能看到tcp6 0 0 :::8080 :::* LISTEN,说明服务在8080端口运行。必须在安全组的入站规则中添加允许0.0.0.0/0和::/0访问8080端口的规则,否则公网请求会被安全组拦截。
2. 访问时是否指定了8080端口
通过公网DNS访问Tomcat时,必须明确加上端口号:http://你的EC2公网DNS:8080。如果只输入公网DNS,浏览器默认会访问80端口,而你的Tomcat没在80端口监听,自然无法访问。
3. 实例内部防火墙是否拦截了8080
检查EC2实例的本地防火墙(比如iptables或firewalld)是否阻挡了8080端口的入站流量:
- 对于
iptables,执行iptables -L -n查看规则,确保有允许8080端口的条目; - 对于
firewalld,执行firewall-cmd --list-all,确认public区域包含8080/tcp的允许规则。
如果有拦截,添加对应规则后重启防火墙服务。
4. 确认Tomcat配置是否生效
虽然你的server.xml中Connector配置了address="0.0.0.0",但需要确认Tomcat在修改配置后已经重启,确保新配置生效。可以执行systemctl restart tomcat(如果用系统服务管理)或手动停止再启动Tomcat进程。
5. 检查EC2实例的网络ACL
如果你的VPC配置了网络ACL,需要确保网络ACL的入站规则允许8080端口的流量,同时出站规则允许响应流量返回。网络ACL是无状态的,所以入站和出站都要配置对应的允许规则。
内容的提问来源于stack exchange,提问作者Nanor
相关产品推荐
相关产品推荐

