,---,服务器端口被占用了怎么办?手把手教你查看端口占用情况,遇到“端口已被占用”的提示,导致服务无法启动或网络连接异常,确实令人头疼,别担心,本文将手把手教你如何快速排查并解决这个问题,你需要确定是哪个端口被占用了,我们将介绍两种常用且有效的方法来查看端口占用情况:1. 使用netstat命令: 这是最常用的方法之一,在 Windows 命令提示符或 PowerShell 中运行netstat -aon,在 Linux/Mac 终端中运行netstat -tulnp,这些命令会列出所有活动的网络连接和监听端口,并显示对应的进程 ID (PID),通过分析输出,你可以找到占用特定端口的进程。2. 使用lsof命令 (主要适用于 Linux/Mac): 在终端输入lsof -i :端口号(将“端口号”替换为你怀疑被占用的端口),可以直接查看是否有进程打开了该端口,或者,使用lsof -i列出所有打开的网络文件(即连接),然后根据 IP:端口信息反查 PID,再用ps命令查看 PID 对应的进程名称。一旦找到占用端口的进程,你可以选择关闭该进程(需谨慎操作,确认无误)、修改你的服务配置使用其他端口,或者结束该进程来释放端口,掌握这些基本命令,你就能轻松应对端口冲突问题,保障服务器或应用程序的正常运行。
什么是端口?为什么需要查看端口占用?
在服务器中,端口就像是一个个“门”,数据通过这些“门”进出,每个端口对应一个特定的服务或应用程序,HTTP服务通常使用80端口,HTTPS使用443端口,SSH登录使用22端口,等等。
为什么需要查看端口占用?

- 避免服务冲突:如果你在启动一个服务时,发现端口已经被占用,说明有其他程序在使用这个端口,这时候你需要找到占用者并处理。
- 安全排查:陌生的端口被占用可能意味着存在恶意程序或攻击行为。
- 资源优化:了解哪些端口被占用,可以帮助你合理分配资源,避免不必要的占用。
查看端口占用的方法
我们分操作系统来讲解如何查看端口占用情况,无论你是Windows、Linux还是macOS用户,下面的方法都能帮到你。
✅ Windows系统
使用 netstat 命令
netstat 是Windows自带的网络统计工具,可以查看当前系统的网络连接和端口占用情况。
步骤:
-
打开命令提示符(按
Win + R,输入cmd,回车)。 -
输入以下命令:
netstat -ano-a:显示所有连接和监听端口。-n:以数字形式显示地址和端口号。-o:显示占用端口的进程ID(PID)。
-
查看输出结果,找到你关心的端口,记录下PID。
-
打开任务管理器(
Ctrl + Shift + Esc),切换到“详细信息”选项卡,找到对应PID的进程,即可知道是哪个程序占用了端口。
示例输出:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:8080 *:* LISTENING 1234
UDP 0.0.0.0:1900 *:* *
使用资源监视器
Windows自带的资源监视器也能查看端口占用情况。
步骤:
- 按
Win + R,输入resmon,回车。 - 切换到“网络”选项卡。
- 在“监听端口”部分,你可以看到所有正在监听的端口以及对应的程序。
✅ Linux系统
Linux系统有更多强大的命令行工具来查看端口占用情况。
使用 netstat
与Windows类似,Linux也可以使用 netstat 命令。
步骤:
-
打开终端。
-
输入以下命令:
sudo netstat -tuln-t:显示TCP端口。-u:显示UDP端口。-l:显示监听端口。-n:以数字形式显示地址。
-
查看输出,找到你关心的端口。
使用 lsof 命令
lsof(List Open Files)是一个强大的工具,可以查看哪些进程打开了哪些文件、网络连接等。

步骤:
-
输入以下命令:
sudo lsof -i :端口号查看8080端口的占用情况:
sudo lsof -i :8080 -
输出会显示占用该端口的进程信息,包括进程ID(PID)和程序名。
使用 ss 命令
ss 是 netstat 的替代工具,功能更强大,性能更好。
步骤:
-
输入以下命令:
sudo ss -tuln -
查看输出,类似于
netstat,但更简洁。
使用 nmap 工具
nmap 是一个网络扫描工具,可以用来查看本机或远程服务器的端口占用情况。
步骤:
-
安装
nmap(如果未安装):sudo apt install nmap # Ubuntu/Debian sudo yum install nmap # CentOS -
查看本机端口:
sudo nmap --servicenames TCP 本机IP
✅ macOS系统
macOS基于Unix系统,所以很多Linux命令在macOS上同样适用。
使用 netstat
与Linux类似,macOS也可以使用 netstat。
步骤:
- 打开终端。
- 输入:
netstat -anv | grep “端口号”
使用 lsof
同样可以使用 lsof 命令:
sudo lsof -i :端口号
常见问题解答
Q1:如何杀死占用端口的进程?

如果你发现某个端口被不需要的程序占用,可以使用以下命令终止该进程:
-
Linux/macOS:
sudo kill -9 PID -
Windows: 在任务管理器中找到对应进程,右键选择“结束任务”。
Q2:如何永久释放端口?
要永久释放端口,你需要修改占用该端口的程序的配置文件,将其绑定到其他端口,修改Tomcat的端口配置。
Q3:端口被占用了,但我不知道是哪个程序怎么办?
可以使用 lsof 或 netstat 命令查看占用端口的进程,然后通过进程ID(PID)在任务管理器或系统中查找对应程序。
📌 案例分析:Web服务器端口被占用了怎么办?
场景:你正在启动一个Tomcat服务器,但发现8080端口已经被占用,Tomcat无法启动。
排查步骤:
-
使用
netstat或lsof查看哪个进程占用了8080端口。sudo lsof -i :8080 -
发现是另一个Java程序占用了8080端口。
-
结束该进程:
sudo kill -9 PID -
重新启动Tomcat,端口释放成功。
查看服务器端口占用是服务器管理和故障排查中的基本操作,无论你使用Windows、Linux还是macOS,都可以通过 netstat、lsof、ss 等工具快速查看端口占用情况,掌握这些技能,不仅能帮助你解决服务启动问题,还能提高你的服务器运维能力。
如果你还有其他关于端口占用的问题,欢迎在评论区留言,我会一一解答!😊
相关的知识点:

