Порт 3000 всегда занят (даже если я переопределил его с помощью PORT=XYZ)

У меня есть веб-приложение, написанное на React, и всякий раз, когда я пытаюсь запустить его с react-app-rewired start он жалуется, что Something is already running on port XYZ.

Я проверил, прослушивает ли какой-либо процесс порт XYZ с помощью netstat -a -b, но не было. Кроме того, если я изменю порт XYZ на любое 4-значное значение (с переменной средыPORT=3001), У меня всегда будет одна и та же проблема, что порт уже занят, поэтому я прихожу к выводу, что порт не занят, но что-то происходит внизу. Я работаю в Windows 10 с установленным узлом 12 (я пробовал перейти на узел 10, потому что я думаю, что раньше это работало для меня с версией более низкого узла, но я больше не мог заставить его работать).

Я искал в Интернете, и большинство из них предлагают проверить, занят ли порт, несколько других, которые я нашел, приведены ниже, но у меня не сработали:

Были ли у кого-нибудь подобные проблемы и смог ли их решить?

2 ответа

Решение

Оказывается, это Hyper-V забрал все порты... После отключения Hyper-V я смог запустить приложение узла на порту 3000.

Обходной путь для этой проблемы - зарезервировать порты при выключенном Hyper-V:

  1. Отключите Hyper-v (для этого потребуется несколько перезапусков)

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

  1. Когда вы завершите все необходимые перезагрузки, зарезервируйте нужный порт, чтобы Hyper-v не зарезервировал его обратно.

netsh int ipv4 add excludedportrange protocol=tcp startport=3000 numberofports=1

  1. Повторно включите Hyper-V (для этого потребуется несколько перезапусков)

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Ссылки:

Пытаться:

taskkill /im node.exe

И если процессы все еще сохраняются, вы можете принудительно завершить процессы, добавив флаг /f:

taskkill /f /im node.exe
Другие вопросы по тегам