fix(admin): различать достижимость Traffic Stats API и соответствие профилю

Признак на странице конфигурации отвечал только на вопрос «достучится ли
админка», поэтому 0.0.0.0 показывался как норма — хотя внутренний control plane
при нём опубликован на всех интерфейсах, а оркестратор такой конфигурации не
создаёт. Состояний теперь четыре: канон профиля, wildcard, не-канонический
loopback и недостижимый адрес.

Backend не тронут: он по-прежнему отвечает только на вопрос достижимости —
превращать лишнюю публикацию в отказ обслуживания значило бы отключить всех
пиров. Исправлено ложное утверждение в его комментарии: пустой хост `:36712` в
Go означает все интерфейсы, а не loopback.

Удалены мёртвые фразы common.wait/enableSuccess/disableSuccess — остатки
операций запуска, остановки и смены версии Hysteria, которых у панели нет.
This commit is contained in:
2026-09-03 03:39:42 +05:00
parent cb20d8d28f
commit b315001288
10 changed files with 204 additions and 30 deletions
+12 -5
View File
@@ -100,9 +100,9 @@ export default {
save: "Сохранить",
update: "Обновить",
downloadSuccess: "Загрузка завершена",
wait: "Версия меняется, подождите",
enableSuccess: "Hysteria2 запущена",
disableSuccess: "Hysteria2 остановлена",
// Фразы `wait`, `enableSuccess` и `disableSuccess` удалены вместе с
// операциями, которых у панели нет: запуском, остановкой и сменой версии
// Hysteria. Жизненный цикл принадлежит systemd и оркестратору.
success: "Готово",
refresh: "Обновить",
yes: "Да",
@@ -346,7 +346,14 @@ export default {
trafficStatsMissing: "Traffic Stats API не настроен",
trafficStatsMissingHint:
"Без секции trafficStats не работают лимит устройств, учёт трафика и принудительное отключение: панель обращается к Hysteria только через этот API.",
trafficStatsNotLoopback:
"адрес не loopback: панель обращается к Traffic Stats API только по 127.0.0.1",
// Три разные новости об одном поле, и объединять их нельзя: первая
// означает, что доступ пиров уже не работает, вторая — что внутренний API
// опубликован шире необходимого, третья — просто дрейф от профиля.
trafficStatsUnreachable:
"панель не может обратиться по этому адресу: Traffic Stats API запрашивается только по loopback. Пока адреса расходятся, лимит устройств, учёт трафика и принудительное отключение не работают",
trafficStatsWildcard:
"API доступен, но слушает все интерфейсы. Production-профиль HY2XS использует 127.0.0.1: выполните hy2xs-orchestrator reconfigure",
trafficStatsNonCanonical:
"API доступен, но адрес отличается от 127.0.0.1 — оркестратор такой конфигурации не создаёт",
},
};