如何找出哪个进程正在侦听 Windows 上的 TCP 或 UDP 端口? [关闭]

  • Post author:
  • Post category:其他




问:

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 Stack Overflow 的主题。 5个月前关闭。社区在 5 个月前审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题

如何找出哪个进程正在侦听 Windows 上的 TCP 或 UDP 端口?



答1:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

新答案,powershell

TCP

Get-Process -Id (Get-NetTCPConnection -LocalPort YourPortNumberHere).OwningProcess

UDP

Get-Process -Id (Get-NetUDPEndpoint -LocalPort YourPortNumberHere).OwningProcess

旧答案,cmd

 C:\> netstat -a -b

(添加 -n 以阻止它尝试解析主机名,这将使其更快。)

请注意 Dane 对 TCPView 的建议。它看起来非常有用!

-a 显示所有连接和监听端口。

-b 显示创建每个连接或侦听端口所涉及的可执行文件。在某些情况下,众所周知的可执行文件包含多个独立组件,在这些情况下,会显示创建连接或侦听端口所涉及的组件序列。在这种情况下,可执行文件名称在底部的 [] 中,顶部是它调用的组件,依此类推,直到到达 TCP/IP。请注意,此选项可能会很耗时并且会失败,除非您有足够的权限。

-n 以数字形式显示地址和端口号。

-o 显示与每个连接关联的拥有进程 ID。

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!


然后 taskkill /PID 终止进程,如果合适的话使用 /F 。


您可能必须以管理员身份运行命令行 shell,否则您可能会收到有关权限不足的错误消息。右键单击 cmd.exe 时使用“以管理员身份运行”选项。


有效,但需要提升权限。 Shift+右键单击命令图标 -> 以管理员身份运行


获得 PID - 假设它是 1234 - 然后您可以使用 tasklist /fi "pid eq 1234" 找出进程的名称和其他详细信息。


@RodionSychev powershell 命令期望您将“portNumber”替换为您要查找的端口号。该错误指出“portNumber”不是数字。



答2:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

Windows 有一个原生 GUI:

开始菜单 → 所有程序 → 附件 → 系统工具 → 资源监视器

或运行 resmon.exe,

或从任务管理器 → 性能选项卡。

https://i.stack.imgur.com/I2UzJ.png


还显示绑定的防火墙状态(最后一列)。非常实用。


您需要成为管理员(或该组中的管理员)才能运行它。


@bcorso,绑定到“unspecified address”是什么意思?


也可以从任务管理器的性能选项卡启动,至少在 Windows 10 中。(未检查其他版本。)


上面@user4836454 的评论不正确:资源监视器确实显示带有侦听器的端口,即使这些端口没有网络连接。只需查看“侦听端口”部分而不是“TCP 连接”部分。



答3:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

对于 Windows:

netstat -aon | find /i "listening"


+1但请记住,如果您的窗口以英语以外的语言运行,您将不得不将“聆听”更改为本地术语。例如 netstat -aon | find /i "abhören" 表示德语。


在我的情况下,它不起作用可能是因为引号符号,但解决方案 netstat -aon | findstr 聆听完美!


尝试使用 PowerShell 在 W10 15063.729 上运行此命令时出现错误:FIND: Parameter format not correct


这个答案与“找出哪个进程 [name] 正在侦听 Windows 上的端口”有什么关系?


如果在 Windows 上使用 git bash,请使用 //i 而不是 /i



答4:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

如果您需要 GUI,请使用 TCPView。它是 Microsoft 收购的旧 Sysinternals 应用程序。


在我看来,这是最好的选择,特别是因为所有进程都在同一个列表中,您可以通过右键单击它们直接关闭进程。


此外,这不需要管理员权限!


我喜欢 TCPView。自 Windows XP 以来,它一直是我的首选!


很棒的工具。感谢分享



答5:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

大多数答案中提到的 -b 开关要求您在机器上具有管理权限。您真的不需要提升权限来获取进程名称!

查找端口号(如8080)中运行的进程的pid

netstat -ano | findStr "8080"

通过pid查找进程名

tasklist /fi "pid eq 2216"

https://i.stack.imgur.com/m16hz.png

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。



答6:

huntsbot.com – 高效赚钱,自由工作

如果您运行以下命令,您可以获得更多信息:

netstat -aon | find /i "listening" |find "port"

使用“查找”命令可以过滤结果。 find /i “listening” 将仅显示“正在侦听”的端口。请注意,您需要 /i 来忽略大小写,否则您将键入 find “LISTENING”。 | find “port” 会将结果限制为仅包含特定端口号的结果。请注意,在此它还将过滤在响应字符串中任何位置具有端口号的结果。


FWIW 尝试在 PowerShell v2.0 中运行它会产生错误 FIND: Parameter format not correct。您需要在查找条件之后添加一个空格。这将为您留下 netstat -aon | find /i "listening" | find "1234 "。


将上面的“端口”替换为您的端口,例如“5000”


@自己。即使在管道后添加空格,我仍然会在 PS 5.1 中遇到该错误。你知道发生了什么吗?


@NickeManarinin & @self 要么首先从 powershell 更改为 cmd(只需键入 cmd 并按 enter 然后重做命令)或在 powershell 中使用此命令:netstat -aon |find /i "{back tick}"listening{back tick}"" |find " {back tick}"port{back tick}""(<- 请注意转义的引号 - 请原谅 back tick 一词,因为我无法添加实际字符,因为它认为它是剪切)



答7:

huntsbot.com – 高效赚钱,自由工作

打开命令提示符窗口(以管理员身份) 从“开始\搜索框”输入“cmd”,然后右键单击“cmd.exe”并选择“以管理员身份运行”输入以下文本,然后按 Enter。 netstat -abno -a 显示所有连接和监听端口。 -b 显示创建每个连接或侦听端口所涉及的可执行文件。在某些情况下,众所周知的可执行文件包含多个独立组件,在这些情况下,会显示创建连接或侦听端口所涉及的组件序列。在这种情况下,可执行文件名称在底部的 [] 中,顶部是它调用的组件,依此类推,直到到达 TCP/IP。请注意,此选项可能会很耗时并且会失败,除非您有足够的权限。 -n 以数字形式显示地址和端口号。 -o 显示与每个连接关联的拥有进程 ID。在“本地地址”下找到您正在侦听的端口查看直接在其下的进程名称。

注意:在任务管理器下查找进程

请注意您正在查看的端口旁边的 PID(进程标识符)。打开 Windows 任务管理器。选择进程选项卡。查找您在步骤 1 中执行 netstat 时记下的 PID。如果您没有看到 PID 列,请单击查看/选择列。选择 PID。确保选中“显示所有用户的进程”。



答8:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

获取 PID 和图像名称

只使用一个命令:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"

其中 9000 应替换为您的端口号。

输出将包含如下内容:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
java.exe                      5312 Services                   0    130,768 K

解释:

它遍历以下命令输出的每一行:netstat -aon |查找str 9000

从每一行中,提取 PID(%a – 名称在这里并不重要)(PID 是该行中的第 5 个元素)并传递给以下命令 tasklist /FI “PID eq 5312”

如果要跳过标题并返回命令提示符,可以使用:

echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on

输出:

java.exe                      5312 Services                   0    130,768 K


很好的答案,但如果不是,您应该将其更改为findstr :9000,您甚至会找到包含该数字的应用程序(例如,当您搜索“80”时,您也会在端口 80、800、8000 上找到应用程序)。



答9:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

首先,我们找到我们需要消除的特定任务的进程 ID,以便释放端口:

类型

netstat -n -a -o

在 Windows 命令行提示符 (cmd) 中执行此命令后,选择我认为最后一列的 pid。假设这是 3312。

现在输入

taskkill /F /PID 3312

您现在可以通过键入 netstat 命令进行交叉检查。

注意:有时 Windows 不允许您直接在 CMD 上运行此命令,因此首先您需要执行以下步骤:

从开始菜单 -> 命令提示符(右键单击命令提示符,并以管理员身份运行)


在 git bash 我必须做 taskkill -F -PID 3312



答10:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

在 Windows 10 或 Windows Server 2016 上使用 PowerShell 5,运行 Get-NetTCPConnection cmdlet。我想它也应该适用于较旧的 Windows 版本。

由于某种原因,Get-NetTCPConnection 的默认输出不包含进程 ID,这有点令人困惑。但是,您始终可以通过格式化输出来获得它。您要查找的属性是 OwningProcess。

如果您想找出正在侦听端口 443 的进程的 ID,请运行以下命令:PS C:> Get-NetTCPConnection -LocalPort 443 |格式列表 LocalAddress : :: LocalPort : 443 RemoteAddress : :: RemotePort : 0 State : Listen AppliedSetting : OwningProcess : 4572 CreationTime : 02.11.2016 21:55:43 OffloadState : InHost

将输出格式化为具有您要查找的属性的表:PS C:> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess LocalAddress LocalPort State OwningProcess ———— ——— —– ——– —– :: 443 听 4572 0.0.0.0 443 听 4572

如果要找出进程的名称,请运行以下命令: PS C:> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess Handles NPM(K) PM(K) WS(K) CPU (s) Id SI ProcessName ——- —— —– —– —— – – ———– 143 15 3448 11024 4572 0 视觉SVN服务器



答11:

huntsbot.com – 高效赚钱,自由工作

要获取与每个连接关联的所有拥有进程 ID 的列表:

netstat -ao |find /i "listening"

如果要杀死任何具有该 ID 的进程并使用此命令,则该端口变为空闲

Taskkill /F /IM PID of a process


这不考虑监听 UDP 端口

原文链接:

https://www.huntsbot.com/qa/07R8/how-can-you-find-out-which-process-is-listening-on-a-tcp-or-udp-port-on-windows?lang=zh_CN&from=csdn

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。



版权声明:本文为kalman2019原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。