Linux服务器Tomcat端口查看是日常运维的基础操作,常用方法有两种:一是通过命令工具快速查看,如使用netstat -tuln | grep 8080或ss -tuln | grep 8080(8080为Tomcat默认端口),可实时显示端口监听状态及进程ID;二是定位配置文件,编辑$CATALINA_HOME/conf/server.xml,在`标签中查看或修改port`属性值,若需修改端口,确保新端口未被占用,修改后重启Tomcat服务即可生效,掌握这些方法能快速排查端口冲突及服务异常问题。
在Linux服务器运维中,Tomcat作为常用的Java Web应用服务器,其端口的正确配置与查看是排查服务异常、配置防火墙、确保应用正常访问的关键步骤,本文将详细介绍5种常用的Tomcat端口查看方法,涵盖配置文件检查、命令行工具及日志分析,帮助不同场景下的需求快速定位端口信息。
为什么需要查看Tomcat端口?
Tomcat默认使用3个核心端口:
- 8080:HTTP服务端口(浏览器访问Tomcat管理页面的默认端口);
- 8009:AJP端口(用于与Apache等Web服务器集成);
- 8443:HTTPS服务端口(加密访问端口)。
当出现“无法访问Tomcat页面”“端口冲突”“防火墙拦截”等问题时,首先需要确认这些端口是否正确配置、是否被占用、是否已开放访问权限。

方法1:查看Tomcat配置文件(server.xml)
server.xml是Tomcat的核心配置文件,所有端口的配置均在此文件中定义,这是最直接、最准确的端口查看方式。
操作步骤:
-
定位server.xml文件
Tomcat安装路径通常为/usr/local/tomcat(或自定义路径,可通过ps -ef | grep tomcat查看进程路径确认),配置文件位于/usr/local/tomcat/conf/server.xml。 -
编辑并查看端口配置
使用vi/nano或cat命令打开文件:vi /usr/local/tomcat/conf/server.xml
查找
<Connector>标签,其中的port属性即为当前配置的端口:<!-- HTTP端口,默认8080 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- AJP端口,默认8009(用于Nginx/Apache反向代理) --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- HTTPS端口,默认8443(需配置SSL证书) --> <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf/keystore.jks" keystorePass="changeit" clientAuth="false" sslProtocol="TLS" />
注意:若
port属性被注释(<!-- -->)或修改(如改为8081),则以实际配置为准。
方法2:使用netstat命令查看端口占用
netstat是Linux系统自带的传统网络工具,可查看端口监听状态、进程占用情况,适合快速排查端口是否被Tomcat进程监听。
操作步骤:
-
安装netstat(若未安装)
# CentOS/RHEL系统 yum install net-tools -y # Ubuntu/Debian系统 apt install net-tools -y
-
查看Tomcat相关端口
# 查看所有监听端口,过滤包含"java"的进程(Tomcat为Java进程) netstat -antl | grep java
输出示例:
tcp6 0 0 :::8080 :::* LISTEN 1234/java tcp6 0 0 :::8009 :::* LISTEN 1234/java tcp6 0 0 :::8443 :::* LISTEN 1234/java
关键信息:
8080、8009、8443为Tomcat监听的端口;LISTEN表示端口处于监听状态(等待连接);1234/java为端口号对应的进程ID(PID)和进程名(Tomcat为Java进程)。
若需查看特定端口(如8080),可直接用:
netstat -antl | grep 8080
方法3:使用ss命令查看端口(推荐)
ss是netstat的替代工具(CentOS 7+/Ubuntu 18.04+默认已安装),查询速度更快、信息更全,推荐优先使用。
操作步骤:
# 查看所有TCP/UDP监听端口,过滤"java"进程 ss -antl | grep java
输出结果与netstat一致,但ss会显示更多连接状态信息(如ESTABLISHED、TIME_WAIT等)。
若需查看PID和进程名(需root权限):
ss -antlp | grep java
输出示例:
tcp6 0 0 :::8080 :::* LISTEN 1234/java (java)
-p参数可显示进程PID和名称,便于确认是否为Tomcat进程。
方法4:查看Tomcat启动日志(catalina.out)
Tomcat启动时,会在日志中打印端口号信息,适合无法直接访问配置文件或需要确认启动端口的情况。
操作步骤:
-
定位日志文件
日志路径:/usr/local/tomcat/logs/catalina.out(若Tomcat通过service或systemd启动,日志可能在/var/log/tomcat/目录下)。 -
过滤端口信息
grep "Starting ProtocolHandler" /usr/local/tomcat/logs/catalina.out
输出示例:
[org.apache.catalina.startup.Catalina] - Starting ProtocolHandler ["http-nio-8080"] [org.apache.catalina.startup.Catalina] - Starting ProtocolHandler ["ajp-nio-8009"] [org.apache.catalina.startup.Catalina] - Starting ProtocolHandler ["https-nio-8443"]
日志中的
http-nio-8080、ajp-nio-8009等明确标识了启动的端口及协议(NIO/BIO/APR)。
方法5:使用lsof命令查看端口占用进程
lsof(list open files)可查看进程打开的文件、端口等资源,适合确认端口是否被Tomcat进程占用。
操作步骤:
-
安装lsof(若未安装)
# CentOS/RHEL系统 yum install lsof -y # Ubuntu/Debian系统 apt install lsof -y
-
查看特定端口占用情况
# 查看8080端口被哪个进程占用 lsof -i :8080
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 1234 tomcat 26u IPv6 12345 0t0 TCP *:http-alt (LISTEN)
关键信息:
COMMAND:进程名(java,即Tomcat);PID:进程ID;NAME:端口名称(http-alt为8080的别名)。
若需查看所有Tomcat占用的端口,可用:
lsof -i | grep java
综合排查建议
若Tomcat端口无法访问,可按以下步骤排查:
- 确认Tomcat进程是否运行:
ps -ef | grep tomcat(需过滤掉grep自身进程); - 检查端口是否被占用:用
ss -antl | grep 8080确认端口是否处于LISTEN状态; - 检查防火墙规则:
firewall-cmd --list-ports(CentOS)或ufw status(Ubuntu),确保目标端口已开放; - 检查端口冲突:若端口被其他进程占用,可通过
kill -9 PID终止进程,或修改Tomcat配置文件中的端口。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 查看server.xml | 最准确,可直接修改配置 | 需定位文件,需重启生效 | 需要修改端口时 |
| netstat命令 | 传统工具,通用性强 | 查询速度较慢,信息较少 | 快速查看端口监听状态 |
| ss命令(推荐) | 速度快,信息全,支持现代内核 | 部分旧系统未安装 | 日常运维快速排查 |
| 查看catalina.out | 可确认启动端口,无需额外工具 | 需日志完整,仅限启动后查看 | 确认Tomcat实际启动端口 |
| lsof命令 | 精准定位端口占用进程 | 需安装工具,需root权限 | 确认端口是否被Tomcat占用 |
通过以上方法,可全面掌握Linux服务器Tomcat端口的查看与排查,确保服务稳定运行。


