
本文汇总 windows 系统下查看端口的实用命令,重点讲解netstat -ano查看所有端口占用、筛选特定端口(如 8080/3306)的方法,教你通过 PID 快速定位占用端口的进程。针对 “端口被占用”“服务启动失败” 等常见问题,提供taskkill强制终止进程的操作步骤,同时对比命令提示符与 powerShell 的端口查询差异。附带详细参数说明和实战案例,帮助你轻松排查网络故障、管理服务端口,新手也能快速上手。
-
参数说明:
-a:显示所有连接和监听端口
-n:以数字形式显示 IP 地址和端口号
-o:显示每个连接的进程 ID(PID)
-
输出示例:
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 127.0.0.1:5357 0.0.0.0:0 LISTENING 1008
netstat -an | findstr "TCP" # 仅显示TCP连接
netstat -an | findstr "UDP" # 仅显示UDP连接
netstat -ano | findstr :8080 # 查找占用8080端口的进程
tasklist | findstr "1234" # 替换1234为实际PID
for /f "tokens=5" %a in ('netstat -ano ^| findstr :8080') do tasklist | findstr %a
- 说明:此命令会先查找占用 8080 端口的 PID,再通过 PID 查找对应的进程名称。
Get-NetTCPConnection | Where-Object LocalPort -eq 8080
Get-NetTCPConnection | Where-Object LocalPort -eq 8080 | ForEach-Object {
$process = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[PSCustomObject]@{
LocalAddress = $_.LocalAddress
LocalPort = $_.LocalPort
State = $_.State
ProcessName = if ($process) { $process.Name } else { "Unknown" }
}
}
netstat -ano | findstr LISTENING
netsh interface ipv4 show excludedportrange protocol=tcp
- 输出示例:
协议 tcp 端口排除范围
开始端口 结束端口
---------- --------
1025 1124
5000 5050 # 系统保留端口
taskkill /F /IM process_name.exe # 替换process_name为实际进程名
netstat -s # 显示按协议统计的网络连接
Get-NetTCPConnection | Select-Object LocalAddress, LocalPort, RemoteAddress, State, @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} | Format-Table -AutoSize
netsh advfirewall firewall show rule dir=in name=all | findstr "TCP" | findstr "已启用"
- 管理员权限:部分命令(如终止进程)需要以管理员身份运行 PowerShell 或命令提示符。
- 端口占用排查顺序:
- 先使用
netstat -ano | findstr :端口号 确定 PID
- 再用
tasklist | findstr PID 查找进程名称
- 最后决定是否终止进程
- 系统保留端口:Windows 会保留一些端口供系统服务使用(如 5000-5050),如需使用需修改系统配置。
通过以上命令,你可以全面掌握 Windows 系统中端口的使用情况,高效排查
网络问题和管理服务。