如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
打开命令提示符窗口(以管理员身份)从“开始\搜索框”输入“cmd”,然后右键单击“cmd.exe”并选择“以管理员身份运行”输入以下文本,然后按Enter键。netstat-荷兰银行-a显示所有连接和侦听端口。-b显示创建每个连接所涉及的可执行文件或侦听端口。在某些情况下,知名的可执行文件主机多个独立组件,在这些情况下创建连接所涉及的组件序列或显示监听端口。在这种情况下,可执行文件name位于底部的[]中,顶部是它调用的组件,以此类推,直到达到TCP/IP。请注意,此选项可能很耗时,除非你有足够的时间权限。-n以数字形式显示地址和端口号。-o显示与每个连接关联的所属进程ID。在“本地地址”下查找您正在侦听的端口查看直接位于其下的进程名称。
注意:在任务管理器下查找流程
注意您正在查看的端口旁边的PID(进程标识符)。打开Windows任务管理器。选择流程选项卡。查找在步骤1中执行netstat时注意到的PID。如果没有看到PID列,请单击查看/选择列。选择PID。确保选中“显示所有用户的流程”。
其他回答
如果您想使用GUI工具来实现这一点,可以使用Sysinternals的TCPView。
获取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 | findstr 9000从每一行中,提取PID(%a-名称在此不重要)(PID是该行中的第5个元素)并传递给以下命令任务列表/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
对于Windows,如果要查找正在侦听或连接到端口1234的内容,请在cmd提示符下执行以下操作:
netstat -na | find "1234"
使用以下工具:从cmd:C:\>netstat-anob,具有管理员权限。
进程管理
过程转储
端口监视器
全部来自sysinternals.com。
如果您只想了解每个进程下的进程运行和线程,我建议您学习wmic。这是一个很棒的命令行工具,它为您提供了比您所能知道的更多的信息。
例子:
c:\> wmic process list brief /every:5
上述命令将每5秒简要显示一个所有进程列表。要了解更多信息,您可以与/?例如,
c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?
依此类推。:)
Use:
netstat -a -o
这显示了在特定端口上运行的进程的PID。
记住进程ID,然后转到任务管理器和服务或详细信息选项卡,结束具有相同PID的进程。
因此,您可以在Windows中终止在特定端口上运行的进程。
推荐文章
- 为什么SCTP不常用/不为人所知
- 无法启动IIS Express Web服务器,注册URL失败,访问被拒绝
- XAMPP -端口80被PID 4的“无法打开进程”使用!12
- 为什么git在Windows下记不住我的密码
- Git克隆/拉不断冻结在“存储密钥在缓存?”
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- 如何修改Play执行run命令时使用的默认端口(9000)?
- 有没有替换Windows (Visual C)的unistd.h ?
- 从Windows批处理文件设置系统环境变量?
- 连接网络共享时,如何提供用户名和密码
- 如何找到可用的端口?
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?
- #定义WIN32_LEAN_AND_MEAN具体排除了什么?
- 如何通过windows命令行关闭TCP和UDP端口
- 最好的轻量级web服务器(只有静态内容)的Windows