Если браузер не открывает редактор Node-RED по адресу http://localhost:1880, первое, что нужно проверить, — действительно ли сервис запущен и слушает ли он именно порт 1880. Именно этот TCP-порт Node-RED использует по умолчанию для веб-интерфейса, и большинство проблем с доступом связано либо с тем, что процесс не стартовал, либо с тем, что порт уже занят другим приложением.
В этой статье разберём, как работает сетевой порт Node-RED, где он задаётся, как его изменить, как открыть доступ к редактору из локальной сети и что делать при типичных ошибках вроде EADDRINUSE. Материал подходит для установок на Windows, Linux и Raspberry Pi — с оговорками там, где поведение зависит от платформы.
Какой порт использует Node-RED по умолчанию
Стандартный порт Node-RED — 1880. После запуска команды node-red в терминале появляется строка приветствия, где прямо указан адрес веб-интерфейса, обычно http://127.0.0.1:1880/. Это и есть подтверждение, что сервер поднялся и слушает порт.
Через этот же порт работают не только редактор потоков, но и HTTP-эндпоинты нод http in, а также панель Node-RED Dashboard, если она установлена — её интерфейс обычно доступен по адресу http://адрес:1880/ui. То есть один порт обслуживает всю HTTP-активность среды.
Важно не путать порт веб-интерфейса с портами, которые используют отдельные ноды: TCP in, UDP in и другие сетевые узлы могут слушать собственные порты, заданные в их настройках. Они никак не связаны с 1880 и настраиваются независимо.
Как проверить, запущен ли Node-RED и слушает ли порт
Быстрая диагностика начинается с консоли. Если Node-RED запущен в терминале, лог прямо сообщит об успешном старте или об ошибке. Если сервис работает в фоне (например, через systemd на Linux), статус проверяется командой systemctl status nodered — точное имя службы зависит от того, как выполнялась установка.
Проверить, занят ли порт 1880 и каким процессом, можно системными утилитами:
netstat -tlnp | grep 1880
На Windows аналогичную проверку выполняют через netstat -ano | findstr :1880, а затем по PID смотрят процесс в диспетчере задач. Если команда ничего не возвращает — Node-RED не запущен или слушает другой порт.
- 🔍 Проверьте вывод команды запуска — там указан фактический адрес и порт.
- 🧩 Убедитесь, что порт 1880 не занят другим приложением.
- 🌐 Попробуйте открыть
http://127.0.0.1:1880с той же машины, где запущен сервер. - 🛡️ Проверьте, не блокирует ли подключение брандмауэр или антивирус.
Как изменить порт Node-RED
Смена порта нужна, когда 1880 занят, когда на одной машине работает несколько экземпляров Node-RED или когда порты в сети регламентированы. Сделать это можно двумя способами: через файл настроек или переменной окружения.
Основной способ — файл settings.js, который находится в пользовательском каталоге Node-RED (обычно ~/.node-red/settings.js). В нём есть параметр uiPort:
uiPort: process.env.PORT || 1880,
Замените значение на нужное, например uiPort: 8080,, сохраните файл и перезапустите Node-RED. После перезапуска редактор будет доступен уже на новом порту. Обратите внимание на конструкцию process.env.PORT || 1880 — она означает, что переменная окружения PORT, если задана, имеет приоритет над значением по умолчанию.
☑️ Смена порта Node-RED
Второй способ — задать переменную окружения PORT перед запуском. Это удобно для временных экспериментов и для сред вроде Docker, где порт пробрасывается параметром контейнера, например -p 8080:1880.
Открытие доступа к Node-RED из локальной сети
По умолчанию Node-RED обычно принимает подключения на всех сетевых интерфейсах, то есть редактор доступен не только с самой машины, но и по её IP-адресу из локальной сети. Однако в settings.js есть параметр uiHost, который может ограничивать прослушивание адресом 127.0.0.1 — в этом случае извне подключиться не получится, пока значение не изменить на 0.0.0.0 или не закомментировать строку.
Даже при правильном uiHost доступ может блокировать брандмауэр. На Linux с ufw порт открывается командой:
sudo ufw allow 1880/tcp
На Windows потребуется создать входящее правило для порта в брандмауэре Защитника Windows. Точные названия пунктов зависят от версии системы, поэтому сверяйтесь с документацией вашей ОС.
⚠️ Внимание: открывая порт Node-RED в сети без настроенной авторизации, вы даёте любому в локальной сети полный доступ к редактированию потоков и выполнению произвольных команд на сервере. Перед открытием порта обязательно включите аутентификацию через параметр adminAuth в settings.js.
Ошибка EADDRINUSE и конфликт портов
Типичная ошибка при запуске — Error: listen EADDRINUSE: address already in use :::1880. Она означает, что порт 1880 уже занят: либо другим приложением, либо предыдущим экземпляром Node-RED, который не был корректно остановлен.
Порядок действий здесь такой. Сначала определите, какой процесс держит порт, с помощью netstat или lsof -i :1880 на Linux. Если это «зависший» экземпляр Node-RED — завершите его штатно. Если порт занят сторонней программой, решите, что важнее: остановить её или перенести Node-RED на другой порт через uiPort.
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Браузер не открывает 1880 | Сервис не запущен | Лог запуска, статус службы |
| EADDRINUSE при старте | Порт занят другим процессом | netstat / lsof, завершить процесс |
| Локально работает, из сети — нет | uiHost = 127.0.0.1 или брандмауэр | settings.js, правила файрвола |
| Connection refused извне | Порт закрыт на роутере/файрволе | Проброс портов, правила сети |
| Dashboard не открывается | Неверный путь или порт | Адрес /ui, порт из uiPort |
Порт Node-RED в Docker и Home Assistant
В Docker ситуация с портами двухуровневая: внутри контейнера Node-RED слушает 1880, а наружу порт пробрасывается сопоставлением вида -p 1880:1880. Чтобы снаружи использовать другой порт, меняют первое число: -p 8080:1880. Менять uiPort внутри контейнера при этом не нужно.
В Home Assistant аддон Node-RED настраивается через собственный интерфейс: порт задаётся в разделе конфигурации аддона, а доступ часто идёт через встроенный Ingress без отдельного порта. Точные пункты меню зависят от версии аддона, поэтому ориентируйтесь на его официальную документацию.
Почему не стоит пробрасывать порт Node-RED в интернет
Редактор Node-RED даёт полный контроль над потоками и, через ноды exec, над системой. Публикация порта в интернете без HTTPS, авторизации и ограничений по IP создаёт серьёзный риск компрометации сервера. Для удалённого доступа безопаснее использовать VPN или обратный прокси с аутентификацией.
Безопасность порта Node-RED
Открытый порт — это точка входа, и Node-RED в базовой конфигурации не требует пароля. Минимальный набор мер перед открытием доступа из сети:
- 🔐 Включите
adminAuthв settings.js с хешированным паролем. - 🔒 Настройте HTTPS через параметр
httpsили вынесите Node-RED за обратный прокси с TLS. - 🚪 Ограничьте доступ по IP средствами брандмауэра, если круг пользователей известен.
- 📦 Регулярно обновляйте Node-RED и ноды — уязвимости закрываются в новых версиях.
⚠️ Внимание: ноды exec и function позволяют выполнять системные команды. Если посторонний получит доступ к редактору через открытый порт, он фактически получит права пользователя, под которым запущен Node-RED. Не запускайте сервис от root без крайней необходимости.
⚠️ Внимание: HTTP-эндпоинты нод http in доступны на том же порту, что и редактор. Открывая порт наружу, вы публикуете и их — проверьте, не отдают ли они чувствительные данные.
Часто задаваемые вопросы
Какой порт у Node-RED по умолчанию?
Порт 1880. Через него доступны редактор потоков, HTTP-эндпоинты нод и панель Dashboard (по пути /ui).
Как запустить Node-RED на другом порту?
Измените параметр uiPort в файле ~/.node-red/settings.js или задайте переменную окружения PORT перед запуском, затем перезапустите сервис.
Что делать при ошибке EADDRINUSE: address already in use :::1880?
Порт 1880 уже занят. Найдите процесс через netstat или lsof -i :1880, завершите лишний экземпляр Node-RED либо смените порт в настройках.
Почему Node-RED открывается локально, но недоступен с другого устройства в сети?
Возможные причины: параметр uiHost ограничен адресом 127.0.0.1, порт закрыт брандмауэром или устройства находятся в разных подсетях. Проверьте settings.js и правила файрвола.
Безопасно ли открывать порт Node-RED в интернет?
Без дополнительной защиты — нет. Минимум включите adminAuth и HTTPS, а лучше используйте VPN или обратный прокси с аутентификацией и ограничением по IP.