Windows 下用 netstat 查看端口
在排查网络问题时,比如某个网站打不开,或者本地服务启动失败,很可能是因为端口被占用。Windows 系统自带的命令行工具就能快速查看哪些端口正在被使用。
打开命令提示符(cmd),输入以下命令:
netstat -an这个命令会列出所有当前的网络连接和监听端口。其中 -a 表示显示所有连接和监听端口,-n 表示以数字形式显示地址和端口号,避免 DNS 反向解析拖慢速度。
如果只想看正在监听的端口,可以加上 -l 参数(不过 Windows 上不支持该参数,需靠过滤状态为 LISTENING 的行):
netstat -an | findstr LISTENING比如你运行了本地 Web 服务器,默认监听 80 端口,执行上面命令后能看到类似 0.0.0.0:80 或 [::]:80 的条目,说明 80 端口已开启。
Linux 和 macOS 使用 netstat 或 ss
在 Linux 或 Mac 上,除了 netstat,更推荐使用 ss 命令,它更高效,是现代系统的默认工具。
查看所有监听中的 TCP 端口:
ss -tuln这里的参数含义:-t 是 TCP,-u 是 UDP,-l 是仅监听状态,-n 是不解析服务名。输出中你会看到 Local Address:Port 列,比如 127.0.0.1:3306 就表示 MySQL 正在本地监听 3306 端口。
如果你不确定某个服务有没有正常启动,直接查对应端口最省事。比如启动了 Redis 默认端口 6379,但连不上,先执行:
ss -tuln | grep 6379如果有输出,说明服务确实在监听;没输出,那可能是程序没起来或者配置错了绑定地址。
结合 lsof 查看具体进程
有时候知道端口被占用了,但不知道是哪个程序占的。这时候可以用 lsof 查进程信息。
例如查看 3000 端口被谁占用:
lsof -i :3000输出结果第一列是进程名,最后一列是协议和端口,中间有 PID。有了 PID 就能进一步处理,比如 kill 掉占用端口的程序。
在 macOS 上这个命令特别有用,开发时经常遇到“端口已被使用”的报错,用这招一查一个准。
小技巧:快速检查常见服务端口
平时维护服务器或调试应用,可以写个简单命令批量检查关键端口。比如同时看 80、443、22 是否开放:
ss -tuln | grep -E ":(80|443|22)\"这样一眼就能确认 Web 服务和 SSH 是否正常监听。
命令行查看开放端口不是高深操作,但用熟了能省下不少点鼠标的时间。不管是开发、运维还是日常排错,掌握这几个命令,遇到网络问题不再两眼一抹黑。
","seo_title":"命令行查看开放端口的方法汇总","seo_description":"介绍如何在 Windows、Linux 和 macOS 中通过命令行查看开放端口,使用 netstat、ss 和 lsof 等工具快速排查端口占用问题。","keywords":"命令行查看开放端口,查看端口占用,netstat命令,ss命令,lsof命令,linux查看端口,windows端口检查"}