Суть проблемы
В бандл Remnanode недавно обновили Xray-core с v26.3.27 (Node 2.7.0) до v26.6.27 (текущий релиз). В этой версии Xray-core есть регрессия, которая ломает определение IP клиента для gRPC-инбаундов за Nginx-реверс-прокси, передающим заголовок X-Real-IP (это официально задокументированный способ — см. gRPC | Project X ). Все подключения теперь показывают 127.0.0.1 как исходный IP вместо реального адреса клиента.
Баг-репорт в апстрим уже заведён: XTLS/Xray-core#6423
Это не баг в самом коде Remnanode — проблема чисто в бандлящемся бинарнике Xray-core, — но поскольку функция отслеживания IP / «online users» в Remnanode опирается на то, что Xray-core корректно репортит source IP, это напрямую ломает эту функциональность у всех, кто использует gRPC за реверс-прокси (довольно распространённая схема для маскировки/opsec).
Как воспроизвести
- Запустить Remnanode 2.7.0 (Xray-core v26.3.27) за Nginx (gRPC + заголовок
X-Real-IP) → IP клиентов отслеживаются корректно. - Обновить Remnanode до текущего релиза (Xray-core v26.6.27), конфигурация во всём остальном идентична → все пользователи отображаются как подключившиеся с
127.0.0.1. - Откатить обратно на Remnanode 2.7.0 → корректные IP возвращаются сразу же.
Предложение / просьба
- Рассмотреть возможность временно закрепить (запинить) Xray-core на заведомо рабочей версии, пока апстрим-регрессия не будет исправлена (отслеживается в XTLS/Xray-core#6423), либо
- Добавить простой способ переопределить версию бандлящегося Xray-core через переменную окружения / volume-mount, чтобы операторам не приходилось откатывать весь Node целиком (и терять более новые фичи, совместимые с актуальной Panel) только чтобы обойти регрессию в апстриме.
Окружение
- Remnanode: официальный Docker-образ
remnawave/node - Цепочка реверс-прокси: клиент → HAProxy (PROXY protocol) → Nginx (gRPC,
X-Real-IP) → Remnanode - Подтверждено, что регрессия изолирована именно в версии бинарника Xray-core, а не в конфигурации реверс-прокси (конфиг nginx/haproxy идентичен в обоих тестах).