Windows用netstat -ano | findstr LISTENING查监听端口及PID,再用tasklist查进程名;Mac用lsof -P -n -i :端口号精准定位;Linux推荐sudo ss -tulnp高效扫描;图形化方式可通过资源监视器或活动监视器直接查看。

排查服务启动失败、远程连接不通或安全审计时,必须确认本机哪些端口正在监听、是否被占用、对应哪个进程——这些信息不能靠猜测,得用系统原生命令实时抓取。
Windows系统查端口监听状态
第一步:按 Win + R 打开运行框,输入 cmd 回车,启动命令提示符。
第二步:直接执行 netstat -ano | findstr LISTENING,这条命令会过滤出所有处于监听状态的 TCP/UDP 端口,并显示对应 PID。
第三步:若已知目标端口(如 8080),改用 netstat -aon | findstr ":8080" ——注意加冒号,否则会匹配到 18080、80801 等无关端口;【不加冒号是常见误操作,会导致结果泛滥】。
第四步:拿到 PID 后,在同一窗口输入 tasklist | findstr "1234"(把 1234 替换为实际 PID),即可看到进程名和映像路径。如果输出为空,说明该进程已退出但端口未释放,可等几秒重试或重启服务。
Mac系统精准定位占用端口
打开终端,输入 lsof -P -n -i :3000(把 3000 换成你要查的实际端口号)。
这条命令强制跳过 DNS 解析和端口名映射,避免因系统缓存或 hosts 配置导致输出延迟或混淆;【不加 -P -n 参数时,某些端口可能卡住几秒才返回,甚至报错】。
若需同时检查多个开发常用端口,比如 3000、5000、8080,直接运行:lsof -i :3000 -i :5000 -i :8080,一行命令覆盖全部。
Linux系统高效扫描监听端口
方法一:用 ss 替代老旧的 netstat,执行 sudo ss -tulnp。
参数含义:-t(TCP)、-u(UDP)、-l(仅监听)、-n(数字格式)、-p(显示进程)。必须加 sudo,否则非 root 进程的 PID 不会显示。
方法二:若只想看 TCP 监听且不关心 PID,去掉 -p 即可:ss -tln,响应更快,适合快速扫一眼。
方法三:查特定端口,例如 22,用 ss -tln | grep ':22',比全量输出后人工翻找省力得多。
图形化方式快速验证端口归属
在 Windows 上,按 Ctrl + Shift + Esc 打开任务管理器 → 切换到“性能”选项卡 → 点击底部“打开资源监视器” → 切换到“网络”选项卡 → 在“监听端口”列表里直接搜索端口号。
这个界面会同时显示协议类型、本地地址、PID 和进程名称,无需切换命令行、记 PID、再查 tasklist,一步到位。
Mac 用户可打开“活动监视器” → 顶部菜单栏选择“查看”→“列出所有进程” → 点击右上角搜索框输入端口号,进程名和 PID 会立刻高亮出来。

















