Event ID 5159: WFP blocked a bind to a local port — устранение ошибки
Симптомы блокировки привязки порта (Event ID 5159)
При старте сетевой службы или пользовательского приложения происходит сбой инициализации сокета. Приложение падает с ошибками WSAEACCES (10013) - Permission denied или WSAEADDRINUSE (10048) - Address already in use. В журнале Security при этом фиксируется Event ID 5159.
| Параметр | Значение |
|---|---|
| Имя журнала | Security |
| Источник | Microsoft Windows security auditing |
| Тип события | Audit Failure |
| Код события | Event ID 5159 |
| Описание | The Windows Filtering Platform has blocked a bind to a local port. |
Событие указывает, что драйвер платформы фильтрации WFP или правило брандмауэра Windows запретили процессу открыть конкретный порт из-за ограничений прав, политик изоляции или попадания порта в исключенный диапазон.
Пошаговое устранение ошибки блокировки порта
- Определение заблокированного процесса и порта: Прочитайте детали события сбоя привязки сокета:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=5159} -MaxEvents 5 | Format-List - Проверка исключенных системных диапазонов портов: Убедитесь, что требуемый порт не захвачен драйвером Hyper-V, WinNAT или IIS Admin Service:
netsh int ipv4 show dynamicport tcp netsh int ipv4 show excludedportrange protocol=tcp - Освобождение порта от конкурирующего процесса: Если порт уже занят другим сервисом, найдите владельца и остановите конфликтный процесс:
$port = 443 Get-Process -Id (Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue).OwningProcess - Проверка разрешений фильтрации WFP и брандмауэра: Создайте явное разрешающее правило для приложения, если оно блокируется брандмауэром:
New-NetFirewallRule -DisplayName "Allow Custom Service Bind" -Direction Inbound -Program "C:\Program Files\App\service.exe" -Action Allow -Protocol TCP -LocalPort 8443 - Сброс и перезапуск сетевого стека (при захвате портов NAT/Hyper-V):
net stop winnat net start winnat
Важно: При использовании Hyper-V или WSL2 операционная система динамически резервирует блоки портов при каждой перезагрузке. Если ваше приложение попадает в этот диапазон, настройте фиксированный старт динамического пула через команду netsh int ipv4 set dynamicport tcp start=49152 num=16384.
Частые вопросы (FAQ)
Почему процесс с правами Администратора получает ошибку 5159 при привязке к порту?
Даже процесс с повышенными привилегиями не может выполнить bind к порту, если порт входит в диапазон 'excludedportrange', зарезервированный драйвером ядра (например, WinNAT, Hyper-V, HTTP.sys).
Как исправить ошибку WSAEACCES 10013 при старте Node.js / Java сервиса?
Проверьте зарезервированные порты через 'netsh int ipv4 show excludedportrange protocol=tcp'. Перезапустите службу 'winnat' или измените слушающий порт приложения на свободный.
Может ли сторонний антивирус вызывать Event ID 5159?
Да, многие корпоративные EDR/XDR-системы и сторонние фаерволы регистрируют свои суб-фильтры внутри WFP и блокируют bind для неавторизованных исполняемых файлов.
Как найти ID фильтра WFP (Filter ID), который заблокировал привязку?
В теле события 5159 найдите поле 'Filter Run-Time ID'. Затем выполните 'netsh wfp show filters' и найдите в сгенерированном XML-файле правило с данным идентификатором.