1. 问题描述
开发过程中,我们经常会遇到这样的情况:
- 服务A启动,提示端口被占用,导致服务无法正常工作,需要查看端口被哪个进程占用了。
- 服务A启动,正常监听,等待连接、请求,但是第三方说无法连接或者发送请求无响应,怀疑服务A是否已正常监听,服务A要自证清白。
- 好奇心态自驱,想了解某厂应用服务监听哪些端口。
- …
上述情况,有很多种方式来确认、解决。比如:第2点我们可以通过 telnet 指令来求证,也可以通过模拟客户端发送请求验证(例:http监听,通过 postman 模拟请求)。
方式有很多,不做一一列举,相信大家比笔者更有经验,解决方案也许会更加巧妙、简洁。
这里我们简单探讨一下如何通过 " netstat " 指令求证上述情况。
2. 查看端口被哪些进程占用
1. Windows 系统环境
指令:“ netstat -ano | findstr 端口号 ”
示例:
2. linux 系统环境
指令:“ netstat -tunlp | grep 端口号 ”
示例:
3. 查看进程在监听哪些端口
1. Windows 系统环境
指令:“ netstat -ano | findstr 进程PID ”
示例:
2. linux 系统环境
指令:“ netstat -tnlp | grep 进程名 ” 或 “ netstat -tnlp | grep 进程PID ”
示例: