如何查询windows系统端口的占用情况?

本文介绍了如何在Windows系统中使用netstat命令和tasklist命令定位占用特定端口的进程,以解决服务启动问题。

      本机的开发环境一般还是以win的系统居多。而开启的服务与其端口是分不开的,有时会因端口被占住而使得服务无法正常启动,那么这时就需要准确定位占用端口的进程了。

      下面我在我本机启动了一个apache的服务,占用了本机的80端口。然后,通过cmd中的netstat命令和tasklist命令来定位我的进程名。

      1 在运行中输入cmd,打开命令窗口。

      2 netstat -aon | findstr "80"

  这里的 -aon是netstat命令的参数,其中a表示“显示所有连接和侦听端口”,o表示“显示拥有的与每个连接关联的进程 ID”,

       n表示“以数字形式显示地址和端口号”。

      (提示下,如果大家想知道netstat命令的具体作用以及与他相关的更多参数信息,可以用netstat -help命令来查询。)

       findstr命令是一个管道命令,表示查询netstat -aon结果中所有与“80”字符相关的结果。

       这里我们可以查看第一条记录:TCP  0.0.0.0:80   0.0.0.0:0   LISTENING   3528  

       从中可以获取到几个关键信息,第一个为80端口的类型是TCP端口,还有就是最关键的一个信息占用这个端口的进程PID为3528。有了这个信息我们就可以通过tasklist命令进一步查看占用这个端口的具体进程名。

3  tasklist | findstr "3528"


这下我们就可以定位到80端口原来是被httpd.exe这个进程占住了。而httpd.exe这个进程正是apache启动后的进程。


应该说明白了,就这么结束吧。原创博文,希望转载的能注明出处。(max.li)

### 如何在 Windows 系统中检查 UDP 端口被哪个进程占用 为了确定特定的 UDP 端口由哪一个进程所使用,在 Windows 中可以通过 `PowerShell` 或者 `cmd` 来实现这一目标。 #### 使用 PowerShell 查询 UDP 端口及其关联的进程 ID 通过运行带有适当参数的命令,可以获取到监听某个 UDP 端口的具体程序的信息: ```powershell Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess ``` 上述脚本会返回拥有该 UDP 端口对应的进程对象,其中包含了进程名称和其他有用信息[^1]。 请注意将 `YourPortNumberHere` 替换成实际想要查询端口号。此方法利用了 Windows 的内置 cmdlet 功能来检索网络配置数据并映射至相应的进程实体。 #### 利用 Netstat 工具配合 Tasklist 获取更详细的输出 另一种方式则是借助传统的 `netstat` 实用工具加上额外处理步骤完成相同目的: ```batchfile @echo off setlocal enabledelayedexpansion for /f "tokens=5" %%a in ('netstat -ano ^| findstr :YourPortNumberHere') do set pid=%%a tasklist /FI "PID eq %pid%" endlocal ``` 这段批处理代码同样实现了定位指定 UDP 端口所属的应用程序的任务。它先调用了 `netstat -ano` 显示所有活动连接连同它们各自的 PID(进程标识符),再过滤出含有我们关心的那个本地地址部分;最后以得到的 PID 参数再次请求 `tasklist` 展示完整的进程详情列表[^4]。 以上两种方案均能有效地帮助管理员诊断和管理系统的资源分配状况,特别是当遇到端口冲突等问题时尤为实用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值