Node.js ОШИБКА: подключите EADDRINUSE 104.16.58.5:443

Полная ошибка:

    (node:8852) UnhandledPromiseRejectionWarning: Error: connect EADDRINUSE 104.16.58.5:443
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
(node:8852) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8852) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Модули узлов, которые я установил:

  • Canvas @ next
  • Продолжить
  • discord.js
  • sqlite3

Дополнительная информация:

  • Ошибка возникает иногда, когда кто-то взаимодействует с приложением, независимо от того, что приложение делает.
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 042
3

Ответы 3

Поскольку в сообщении об ошибке говорится, что EADDRINUSE - означает, что порт, который использует ваше приложение, уже используется другим процессом (какой-то http-сервер использует 443 в качестве http-порта по умолчанию)

Вы можете изменить порт с 443 или найти процесс, который использует этот порт, и проверить, нужен ли этот процесс.

Для поиска процесса в Linux выполните:

netstat -an | grep :443

во втором столбце будет указано, какой processId использует этот порт.

В Windows:

netstat -aon | findstr 443

спасибо, а как его точно поменять? Потому что появилось довольно много процессов (6) (я на windows).

Mxm 26.07.2018 19:56

Можете ли вы опубликовать свою конфигурацию Express / Hapi, которую вы используете?

dima golovin 29.07.2018 13:55

Я не использую один

Mxm 29.07.2018 15:32

Поскольку это ошибка connect EADDRINUSE 104.16.58.5:443, на исходном компьютере может не быть свободного эфемерного TCP-порта.

В состоянии TIME_WAIT может быть много (старых) TCP-соединений.

Пожалуйста, попробуйте увеличить диапазон временных портов.

Для справки см. https://github.com/nodejs/node-v0.x-archive/issues/3796 и https://github.com/nodejs/help/issues/434.

Прочтите совет Oracle (нажмите здесь)

Adjusting TCP Settings for Heavy Load on Windows

Базовая архитектура поиска, которая направляет поиск по нескольким физическим разделам, использует порты TCP / IP и неблокирующие каналы NIO SocketChannels для подключения к поисковым системам. Эти соединения остаются открытыми в состоянии TIME_WAIT до тех пор, пока операционная система не истечет их тайм-аут. Следовательно, в условиях большой нагрузки доступные порты на машине, на которой запущен модуль маршрутизации, могут быть исчерпаны. На платформах Windows тайм-аут по умолчанию составляет 120 секунд, а максимальное количество портов составляет приблизительно 4000, в результате максимальная скорость составляет 33 соединения в секунду. Если в вашем индексе четыре раздела, для каждого поиска требуется четыре порта, что обеспечивает максимальную скорость запроса 8,3 запроса в секунду. (максимальное количество портов / период ожидания) / количество разделов = максимальная скорость запроса.

Если эта скорость будет превышена, вы можете увидеть сбои, так как количество портов TCP / IP исчерпано. Симптомы включают снижение пропускной способности и ошибки, указывающие на сбой сетевых подключений. Вы можете диагностировать эту проблему, наблюдая за системой, пока она находится под нагрузкой, с помощью утилиты netstat, доступной в большинстве операционных систем.

Чтобы избежать исчерпания портов и поддерживать высокую скорость соединения, уменьшите значение TIME_WAIT и увеличьте диапазон портов.

Примечание. Эта проблема обычно не возникает в системах UNIX из-за более высокой скорости соединения по умолчанию в этих операционных системах.

Чтобы установить TcpTimedWaitDelay (TIME_WAIT):

Используйте команду regedit для доступа к подразделу реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TCPIP \ Parameters.

Создайте новое значение REG_DWORD с именем TcpTimedWaitDelay.

Установите значение 60.

Остановите и перезапустите систему.

Чтобы установить MaxUserPort (временный диапазон портов):

Используйте команду regedit для доступа к подразделу реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TCPIP \ Parameters.

Создайте новое значение REG_DWORD с именем MaxUserPort.

Установите это значение на 32768.

Остановите и перезапустите систему.

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