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


当前回答

只需打开命令shell并键入(端口为123456):

netstat -a -n -o | find "123456"

你会看到你需要的一切。

标题为:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111

这就是这里提到的。

其他回答

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

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

如果要查找在端口443上侦听的进程的ID,请运行以下命令:PS C:\>获取NetTCPConnection-LocalPort 443 |格式列表本地地址:::本地端口:443RemoteAddress:::远程端口:0状态:听应用设置:拥有流程:4572创建时间:2016年11月2日21:55:43卸载状态:InHost将输出格式化为具有您查找的财产的表:PS C:\>获取NetTCPConnection-LocalPort 443 |格式表-属性LocalAddress、LocalPort、State、OwningProcess本地地址本地端口状态拥有进程------------ --------- ----- -------------::443听45720.0.0.0 443听4572如果要查找进程的名称,请运行以下命令:PS C:\>获取进程-Id(获取NetTCPConnection-LocalPort 443)。拥有进程处理NPM(K)PM(K)WS(K)CPU Id SI进程名称------- ------ ----- ----- ------ -- -- -----------143 15 3448 11024 4572 0 VisualSVNS服务器

使用以下工具:从cmd:C:\>netstat-anob,具有管理员权限。

进程管理

过程转储

端口监视器

全部来自sysinternals.com。

如果您只想了解每个进程下的进程运行和线程,我建议您学习wmic。这是一个很棒的命令行工具,它为您提供了比您所能知道的更多的信息。

例子:

c:\> wmic process list brief /every:5

上述命令将每5秒简要显示一个所有进程列表。要了解更多信息,您可以与/?例如,

c:\> wmic /?
c:\> wmic process /?
c:\> wmic prcess list /?

依此类推。:)

对于Windows,如果要查找正在侦听或连接到端口1234的内容,请在cmd提示符下执行以下操作:

netstat -na | find "1234"

netstat-aof|findstr:8080(更改任何端口的8080)

我推荐NirSoft的CurrPorts。

CurrPorts可以过滤显示的结果。TCPView没有此功能。

注意:您可以右键单击进程的套接字连接并选择“关闭选定的TCP连接”(您也可以在TCPView中执行此操作)。这通常会在我切换VPN后修复Outlook和Lync的连接问题。使用CurrPort,您还可以使用“/close”参数从命令行关闭连接。