Порт 3000 всегда занят (даже если я переопределил его с помощью PORT = XYZ) - PullRequest
0 голосов
/ 08 февраля 2020

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

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

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

Кто-нибудь имел подобные проблемы и был в состоянии решить их?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

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

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

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

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

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

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

Повторное включение Hyper-V (что потребует нескольких перезапусков)

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

Ссылки:

0 голосов
/ 08 февраля 2020

Попробуйте:

taskkill /im node.exe

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

taskkill /f /im node.exe
...