Как узнать, какая программа использует порт 80 в Windows?

Как узнать, какая программа использует порт 80 в Windows? Я не могу найти это.

6 ответов

Решение

Пуск-> Стандартные щелкните правой кнопкой мыши на "Командная строка", в меню выберите "Запуск от имени администратора" (в 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 -aon | findstr :80,

он покажет вам все процессы, которые используют порт 80. обратите внимание на pid в правом столбце.

если вы хотите освободить порт, перейдите в диспетчер задач, отсортируйте по pid и закройте эти процессы.

Если вы хотите быть по-настоящему модным, скачайте TCPView от sysinternals

TCPView - это программа для Windows, которая покажет вам подробные списки всех конечных точек TCP и UDP в вашей системе, включая локальные и удаленные адреса и состояние соединений TCP. В Windows Server 2008, Vista и XP TCPView также сообщает имя процесса, которому принадлежит конечная точка. TCPView предоставляет более информативное и удобно представленное подмножество программы Netstat, поставляемой с Windows.

Щелкните правой кнопкой мыши на "Командная строка" или "Power shell", в меню выберите "Запуск от имени администратора" (в Windows XP вы можете просто запустить его как обычно) Следующая команда покажет, какой сетевой трафик используется на уровне порта:

Netstat -a -n -o

или же

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

(открыть порт и список процессов в текстовом редакторе, где вы можете искать нужную информацию)

Затем с помощью идентификаторов PID, перечисленных в выводе netstat, вы можете запустить диспетчер задач Windows (taskmgr.exe) или запустить сценарий с определенным PID, использующим порт из предыдущего шага. Затем вы можете использовать команду "tasklist" с определенным PID, который соответствует рассматриваемому порту. Пример:

список задач / 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/

Используйте эту изящную бесплатную утилиту:

CurrPorts - это программное обеспечение для мониторинга сети, которое отображает список всех открытых на данный момент портов TCP/IP и UDP на вашем локальном компьютере.

http://www.nirsoft.net/utils/cports.html

Используйте утилиту netstat

Другие вопросы по тегам