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

我找不到。


当前回答

输入命令:

netstat -aon | findstr :80

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

如果你想释放端口,进入任务管理器,按照pid排序并关闭那些进程。

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

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

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

其他回答

输入命令:

netstat -aon | findstr :80

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

如果你想释放端口,进入任务管理器,按照pid排序并关闭那些进程。

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

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

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

右键单击“命令提示符”或“PowerShell”,在菜单中单击“以管理员身份运行”(在Windows XP上您可以像往常一样运行它)。

正如Rick Vanover在查看Windows Server 2008中哪个进程正在使用TCP端口中提到的那样

下面的命令将显示正在使用的网络流量 港口水平: Netstat -a -n -o

or

Netstat -a -n -o >%USERPROFILE%\ports.txt

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

然后,

使用netstat输出中列出的pid,您可以使用 Windows任务管理器(taskmgr.exe)或运行带有特定PID的脚本 这是使用上一步中的端口。然后可以使用 “tasklist”命令用特定的PID对应一个端口中的 的问题。

例子:

tasklist /svc /FI "PID eq 1348"

如果你想要更花哨,从Sysinternals下载TCPView:

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

开始菜单→配件→右键单击“命令提示符”。在菜单中,单击“以管理员身份运行”(在Windows XP上,你可以像往常一样运行它),运行netstat -anb,然后在输出中查找你的程序。

顺便说一下,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

而且它不需要仰角来运行。

在命令行上使用NETSTAT:

netstat util