直接查看Tomcat配置文件(推荐)
Tomcat的端口配置保存在server.xml
文件中,这是最权威的方式。
步骤:
- 打开Tomcat安装目录下的配置文件:
cd /path/to/tomcat/conf # 进入Tomcat配置目录 vi server.xml # 使用vi编辑器打开文件(也可用nano或cat)
- 搜索
<Connector
标签:
在文件中查找类似以下内容:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
port
的值(如8080
)即HTTP访问端口。redirectPort
(如8443
)是HTTPS重定向端口(若配置了SSL)。
优势:
- 直接获取Tomcat的设计端口,无需服务运行。
- 可同时查看AJP端口(搜索
AJP/1.3
的<Connector>
标签)。
使用netstat
命令(需Tomcat运行)
通过系统网络工具检测实际占用端口:
netstat -tuln | grep java # 或 grep 'LISTEN'
输出示例:
tcp6 0 0 :::8080 :::* LISTEN 1234/java
tcp6 0 0 :::8009 :::* LISTEN 1234/java
8080
为HTTP端口,8009
为AJP端口(若启用)。1234/java
表示Tomcat进程的PID和名称。
进阶命令:
netstat -tulnp | grep $(pgrep -f tomcat) # 精准匹配Tomcat进程
使用lsof
命令(需root权限)
列出Tomcat进程打开的所有端口:
sudo lsof -i -P -n | grep java # 需管理员权限
输出示例:
java 1234 root 128u IPv6 0xabcd 0t0 TCP *:8080 (LISTEN)
java 1234 root 130u IPv6 0xabce 0t0 TCP *:8009 (LISTEN)
8080
、8009
即监听端口。-P -n
禁用端口别名,直接显示数字端口。
查看Tomcat启动日志
从日志中抓取初始化信息:
cd /path/to/tomcat/logs cat catalina.out | grep "Protocol Handler"
输出示例:
INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
- 日志明确标注了
http-nio-8080
和ajp-nio-8009
端口。
注意事项
- 权限问题:
netstat
/lsof
可能需要sudo
权限。- 确保用户对Tomcat目录(如
logs/
、conf/
)有读取权限。
- 环境差异:
- Tomcat路径可能不同(常见于
/usr/local/tomcat
或/opt/tomcat
)。 - 若使用Docker容器,需进入容器执行命令:
docker exec -it <container_id> /bin/bash
- Tomcat路径可能不同(常见于
- 端口冲突:
- 若端口被占用,Tomcat启动时会报错
Address already in use
。
- 若端口被占用,Tomcat启动时会报错
总结建议
- 首选方法一(查看
server.xml
):配置即真相,无需服务运行。 - 运行时诊断:用
netstat
或lsof
验证实际监听端口。 - 日志辅助:当端口被动态修改时,日志提供启动证据。
引用说明:本文方法基于Linux系统工具(net-tools, lsof)和Apache Tomcat官方文档的配置规范,已在CentOS/Ubuntu等主流发行版中验证,操作前请确保您有合法权限访问服务器及Tomcat目录。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8450.html