Ubuntu Tomcat连接问题排查与修复
一、快速定位流程
ps -ef | grep tomcat、sudo ss -tulpen | grep 8080 或 sudo lsof -i :8080。若端口未监听,多半是未启动或启动失败。curl -I http://localhost:8080,能返回 HTTP/1.1 200 说明 Tomcat 与应用基本可用。ping <服务器IP> 与 nc -vz <服务器IP> 8080 或 curl -I http://<服务器IP>:8080,判断网络与端口可达性。sudo ufw status,必要时放行端口(如 sudo ufw allow 8080/tcp);云服务器还需在控制台安全组放行对应端口。tail -f $CATALINA_HOME/logs/catalina.out、tail -f $CATALINA_HOME/logs/localhost*.log,关注启动报错、部署失败、连接池耗尽等关键字。二、常见错误与对应修复
server.xml 的 Connector 端口;放行防火墙端口;核对 server.xml 中端口配置。ss -tulpen | grep 8080 或 lsof -i :8080 找到 PID,评估后 kill <PID>;或调整 server.xml 的 <Connector port="8080"> 为未占用端口并重启。sudo ufw allow 8080/tcp;云主机在控制台安全组放行 8080/TCP;检查虚拟机网络(桥接/NAT)与端口转发规则是否正确。connectionTimeout="20000"、maxThreads="200"、acceptCount="100";必要时调整 JVM:-Xms512m -Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+UseG1GC;检查数据库/外部依赖连接池与超时配置。三、配置与网络关键点
conf/server.xml 的 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />,确保端口未被占用且重启后生效。sudo ufw allow 8080/tcp;如使用云服务器,同步在云平台安全组放行对应端口。server.xml 的 Connector 添加 address="127.0.0.1";如需所有地址访问,确保未绑定到 127.0.0.1。upstream tomcat {
server 127.0.0.1:8080;
}
server {
listen 80;
location / {
proxy_pass http://tomcat;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
四、apt 安装与手动安装的要点
sudo systemctl status|start|restart tomcat9;配置在 /etc/tomcat9/(如 server.xml、tomcat-users.xml、/etc/default/tomcat9);日志在 /var/log/tomcat9/;默认端口 8080。bin/startup.sh,停止用 bin/shutdown.sh;同样通过 server.xml 调整端口与连接器参数。五、一键排查清单
| 检查项 | 命令或位置 | 期望结果 | 异常处理 |
|---|---|---|---|
| 服务是否运行 | `ps -ef | grep tomcat或systemctl status tomcat9` |
能看到 Tomcat 进程/服务 active |
| 端口是否监听 | `ss -tulpen | grep 8080或lsof -i :8080` |
显示 0.0.0.0:8080 或 :::8080 监听 |
| 本机访问 | curl -I http://localhost:8080 |
返回 200/302 | 检查应用部署与日志 |
| 外部访问 | nc -vz <IP> 8080 或客户端浏览器访问 |
端口可达并返回页面 | 放行防火墙/安全组、检查网络 |
| 防火墙状态 | sudo ufw status |
8080/tcp 允许 | sudo ufw allow 8080/tcp |
| 关键日志 | tail -f $CATALINA_HOME/logs/catalina.out |
无启动/连接异常 | 按日志报错逐项修复 |
以上步骤覆盖了 服务状态、端口监听、连通性、防火墙/安全组、配置与日志 五大维度,可系统化解决绝大多数 Ubuntu 上的 Tomcat 连接问题。