如何在Windows中查找哪个程序正在使用端口80?

时间:2009-12-25 08:05:29

标签: windows port

如何在Windows中查找哪个程序正在使用端口80?我找不到了。

6 个答案:

答案 0 :(得分:184)

开始 - >附件右键单击“命令提示符”,在菜单中单击“以管理员身份运行”(在Windows XP上,您可以照常运行),运行netstat -anb,然后查看程序的输出

BTW,Skype默认尝试使用端口80和443进行传入连接。

您还可以运行netstat -anb >%USERPROFILE%\ports.txt,然后运行start %USERPROFILE%\ports.txt,在文本编辑器中打开端口和进程列表,您可以在其中搜索所需的信息。

您还可以使用powershell来解析netstat输出并以更好的方式呈现它(或以您想要的任何方式处理):

$proc = @{};
Get-Process | ForEach-Object { $proc.Add($_.Id, $_) };
netstat -aon | Select-String "\s*([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+):([^\s]+)\s+([^\s]+)?\s+([^\s]+)" | ForEach-Object {
    $g = $_.Matches[0].Groups;
    New-Object PSObject | 
        Add-Member @{ Protocol =           $g[1].Value  } -PassThru |
        Add-Member @{ LocalAddress =       $g[2].Value  } -PassThru |
        Add-Member @{ LocalPort =     [int]$g[3].Value  } -PassThru |
        Add-Member @{ RemoteAddress =      $g[4].Value  } -PassThru |
        Add-Member @{ RemotePort =         $g[5].Value  } -PassThru |
        Add-Member @{ State =              $g[6].Value  } -PassThru |
        Add-Member @{ PID =           [int]$g[7].Value  } -PassThru |
        Add-Member @{ Process = $proc[[int]$g[7].Value] } -PassThru;
#} | Format-Table Protocol,LocalAddress,LocalPort,RemoteAddress,RemotePort,State -GroupBy @{Name='Process';Expression={$p=$_.Process;@{$True=$p.ProcessName; $False=$p.MainModule.FileName}[$p.MainModule -eq $Null] + ' PID: ' + $p.Id}} -AutoSize
} | Sort-Object PID | Out-GridView

此外,它不需要提升。

答案 1 :(得分:175)

输入命令:netstat -aon | findstr :80

它将显示使用端口80的所有进程。请注意右列中的 pid (进程ID)。

如果您想要释放端口,请转到任务管理器,按 pid 排序并关闭这些进程。

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

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

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

答案 2 :(得分:13)

如果您想要真正喜欢,请从sysinternals

下载TCPView
  

TCPView是一个Windows程序   向您展示所有TCP的详细列表   和系统上的UDP端点,   包括本地和远程   TCP的地址和状态   连接。在Windows Server 2008上,   Vista和XP,TCPView也有报道   拥有该进程的进程的名称   端点。 TCPView提供了更多   信息丰富,方便呈现   Netstat程序的子集   附带Windows。

答案 3 :(得分:12)

使用这个漂亮的免费软件实用程序:

CurrPorts 是网络监控软件,可显示本地计算机上所有当前打开的TCP / IP和UDP端口的列表。

<强> http://www.nirsoft.net/utils/cports.html

enter image description here

答案 4 :(得分:9)

右键单击“命令提示符”或“Power shell”,在菜单中单击“以管理员身份运行”(在Windows XP上,您可以像往常一样运行它) 以下命令将显示端口级别正在使用的网络流量:

  

Netstat -a -n -o

  

Netstat -a -n -o&gt;%USERPROFILE%\ ports.txt

(在文本编辑器中打开端口和进程列表,您可以在其中搜索所需的信息)

然后,使用netstat输出中列出的PID,您可以跟进Windows任务管理器(taskmgr.exe)或运行具有使用上一步骤中的端口的特定PID的脚本。然后,您可以将“tasklist”命令与对应于相关端口的特定PID一起使用。示例:

  

tasklist / svc / FI“PID eq 1348”

http://www.techrepublic.com/blog/the-enterprise-cloud/see-what-process-is-using-a-tcp-port-in-windows-server-2008/

答案 5 :(得分:3)

使用netstat util