Как узнать, какой процесс занимает порт в Windows
Короткий ответ: netstat -ano показывает порты с PID, а диспетчер задач переводит PID в имя программы. Бесплатная программа Кто занял порт делает обе половины за вас — список всех портов с именами процессов и поиском в одно нажатие.
Способ 1: netstat + диспетчер задач (встроенный)
- Нажмите Win + R, введите
cmd, Enter. - Найдите владельца порта:
Последнее число в строке — это PID.netstat -ano | findstr :8080 - Откройте Диспетчер задач → Подробности (в Windows 11 — вкладка «Подробности») и найдите строку с этим PID.
Работает везде, но каждый шаг ручной: правильная строка фильтра, выуживание PID из-под десятков строк IPv6, а затем поиск PID во втором инструменте.
Способ 2: Кто занял порт — список с поиском и готовыми именами
Кто занял порт выполняет тот же netstat, сопоставляет PID со списком процессов и показывает таблицей:
- Слушающие порты первыми — именно они «занимают» порт.
- Поиск — введите
8080,nodeили PID; список сужается мгновенно. - Кнопка копирования — «TCP :8080 — node.exe (1234)» попадает в буфер обмена для баг-репорта.
- Переключатель «Все соединения» — добавляет установленные сокеты, когда нужна полная картина.
Программа только читает: ничего не блокируется, не меняется и не завершается. Чтобы реально освободить порт, завершите владеющий процесс в диспетчере задач.
Скачать бесплатно — PortOwner-Setup.exe
Как читать результат
- LISTENING — программа ждёт подключений на этом порту. Такие строки и вызывают «порт уже используется».
- ESTABLISHED — активное соединение прямо сейчас; ничего оно не блокирует.
- Строки UDP без состояния — это нормально, UDP не устанавливает соединений.
- PID 4 / System — драйвер ядра (обычно SMB на 445 или RPC на 135); чинить нечего.
Типичные случаи
«Порт 8080 уже используется» при запуске дев-сервера. Найдите 8080 — обычно это забытый node.exe/java.exe из прошлой сессии. Завершите его в диспетчере задач.
Игра или сервис «не может занять» порт. Проверьте, не слушает ли там что-то другое; сравните два экземпляра.
Незнакомый слушатель. Опознайте владеющий процесс, прежде чем волноваться, — в 9 случаях из 10 это служба Windows.
Частые вопросы
Есть ли способ через PowerShell?
Да: Get-NetTCPConnection -LocalPort 8080 покажет владеющий PID; имя процесса всё равно придётся доставать через Get-Process -Id. Программа-просмотрщик избавляет от обоих шагов.
Можно ли освободить порт без диспетчера задач?
taskkill /PID 1234 в cmd умеет — но сначала проверьте имя процесса; завершение не того процесса может стоить несохранённой работы.
Почему один и тот же порт виден дважды, IPv4 и IPv6?
Программы часто слушают оба стека (0.0.0.0:8080 и [::]:8080); это одна программа в двух строках.