Панели 3x-ui: общий установщик сессий PuTTY для Windows БЫСТРОЕ НАЧАЛО 1. Распакуйте ZIP целиком в отдельную папку. Не запускайте файл внутри ZIP. 2. Запустите Install.cmd обычным пользователем. Права администратора не нужны. 3. Отметьте нужные серверы. Нажмите «Установить выбранные». 4. Выберите установленный putty.exe, если он не найден, и свой существующий .ppk. 5. На рабочем столе появятся «3x-ui » и «Панель ». Первый ярлык поднимает SSH-туннель; оставьте окно PuTTY работающим. Затем второй ярлык открывает страницу панели в браузере. Пароль приватного ключа при необходимости вводится в PuTTY, пароль панели — в браузере. Установщик не устанавливает сам PuTTY или 3x-ui и не копирует приватный ключ. ExecutionPolicy, системные службы, firewall и другие PuTTY-сессии не меняются. НОВЫЙ СЕРВЕР БЕЗ ПЕРЕСБОРКИ После развёртывания 3x-ui: 1. Панель должна слушать 127.0.0.1. Не открывайте её порт наружу ради этого комплекта. 2. Проверьте вход на сервер своим ключом PuTTY. При новом сервере установите именно публичную часть этого ключа в authorized_keys нужного SSH-пользователя. 3. В консоли сервера получите отпечаток публичного host key, например: ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub Нужна строка SHA256:... из доверенной консоли. Не отключайте проверку host key. 4. Откройте Install.cmd → «Добавить сервер». Укажите: - постоянный ID, например DK, DE2, FI или новый сервер; название — произвольное; - IP/DNS без https:// и без порта; SSH-пользователя и SSH-порт; - свободный локальный порт и порт панели на сервере, например 2053; - путь панели из настроек 3x-ui и проверенный SHA256 отпечаток. 5. Сохраните и установите только нужный сервер. Для обновления адреса/порта/пути выберите запись → «Изменить» и переустановите её. Сохраняйте ID прежним, чтобы обновлялся прежний ярлык и прежняя PuTTY-сессия. Одновременно работающим панелям нужны разные локальные порты. КАТАЛОГ И ПЕРЕНОС НА ДРУГОЙ ПК Рабочий каталог: %LOCALAPPDATA%\KAgentPanels\catalog.json. Повторный запуск использует сохранённый каталог. «Импорт каталога» добавляет записи из нового connections.json; замена существующей записи требует подтверждения. «Экспорт каталога» сохраняет JSON для другого ПК. Импортируйте его там и выберите ключ .ppk, который установлен на этом ПК и разрешён на соответствующих серверах. Первый запуск может загрузить connections.json из папки установщика. Старый каталог предыдущего комплекта RU/DE поддерживается; путь панели по умолчанию /. Уточните его через «Изменить», если он отличается. connections.example.json — только шаблон. Его адрес и отпечаток обязательно заменить. Серверы не привязаны к фиксированному списку стран; код для их добавления не меняется. «Убрать из списка» удаляет запись только из каталога, не удаляя установленные ярлыки. ЗАЩИТА И ВОССТАНОВЛЕНИЕ Ключ .ppk остаётся на выбранном месте. Пароли и содержимое ключа не сохраняются. Метаданные включают адреса и приватный путь панели: не публикуйте свой каталог/ZIP. Каталог защищён ACL текущего пользователя и SYSTEM. Предыдущая версия — catalog.json.previous. Перед заменой выбранной PuTTY-сессии и её ярлыков создаётся backup-* в той же папке. Для восстановления сессии импортируйте соответствующий *-previous.reg; старый ярлык скопируйте из той же backup-папки на рабочий стол. Остальные серверы не переустанавливаются. Если установка остановится, окно покажет уже установленные записи и папку резервных копий. Проверенный отпечаток сохраняется в сессии PuTTY и передаётся ярлыком через -hostkey. Предыдущий список разрешённых ручных ключей этой сессии заменяется точным отпечатком. Forwarding слушает только 127.0.0.1. При смене ключа проверьте его в консоли сервера. Туннель использует удалённый127.0.0.1. Если локальный порт занят, закройте прежнее окно туннеля этой панели либо выберите другой порт. Система с корпоративным запретом PowerShell/WinForms может блокировать запуск: общие ограничения безопасности установщик не отключает. ПРОВЕРКА И СБОРКА ДЛЯ ОПЕРАТОРА Test-Catalog.ps1 проверяет каталог, выбор серверов, ограничения полей, привязку к loopback, host-key pin и атомарное сохранение. Требуется PowerShell5.1+. Проверка на Linux не заменяет запуск WinForms/реестра/ярлыков на настоящем Windows. Сборка общего ZIP из исходников: powershell -NoProfile -File Build-Package.ps1 -OutputPath C:\Private\panels.zip Сборка ZIP со своим каталогом (не публиковать такой архив): powershell -NoProfile -File Build-Package.ps1 -OutputPath C:\Private\my-panels.zip -CatalogPath C:\Private\connections.json Сборщик копирует только разрешённые исходники и нормализованный каталог, не собирает ключи, env-файлы и пароли из соседних директорий. Готовый ZIP не перезаписывается. Контрольные суммы файлов — SHA256SUMS.txt.