Окно No valid subscription появляется при каждом входе в веб-интерфейс Proxmox VE без активной коммерческой подписки и блокирует работу с панелью до нажатия кнопки OK. Сообщение не является ошибкой: гипервизор полностью функционален, а предупреждение лишь напоминает об отсутствии оплаченной лицензии. Убрать его можно легально — это не нарушает условия использования, поскольку Proxmox VE распространяется под свободной лицензией AGPLv3.
В этой статье разберём два аспекта проблемы: как отключить само всплывающее окно в веб-интерфейсе и как перенастроить репозитории, чтобы система получала обновления без подписки. Оба действия выполняются через консоль и занимают несколько минут.
Что означает сообщение No Valid Subscription
Уведомление You do not have a valid subscription for this server встроено в веб-интерфейс и проверяется при каждой авторизации. Скрипт интерфейса запрашивает статус подписки у сервера, и если лицензионный ключ не загружен, показывает модальное окно.
Важно понимать, что отсутствие подписки влияет только на три вещи: доступ к стабильному enterprise-репозиторию обновлений, техническую поддержку от разработчиков и само это окно. Функциональность виртуальных машин, контейнеров, кластеров и бэкапов ничем не ограничена.
Поэтому задача сводится к двум независимым действиям: убрать визуальное напоминание и переключить источники пакетов на бесплатный репозиторий pve-no-subscription.
Как убрать всплывающее окно через консоль
Окно формируется JavaScript-файлом веб-интерфейса. Чтобы его отключить, нужно отредактировать один файл и перезапустить службу веб-интерфейса. Подключитесь к серверу по SSH или откройте консоль через Shell в веб-панели.
Файл, который отвечает за показ предупреждения, находится по пути /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js. В нём есть проверка статуса подписки: если значение не равно Active, вызывается диалог Ext.Msg.show.
Способ, который чаще всего описывается в сообществе, — заменить вызов диалога на пустую операцию. Выполните команду:
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
После правки перезапустите службу веб-интерфейса:
systemctl restart pveproxy.service
Затем обновите страницу панели в браузере с очисткой кэша (Ctrl+F5). Окно больше не появится.
☑️ Отключение окна No valid subscription
⚠️ Внимание: при обновлении пакетов Proxmox файл
proxmoxlib.jsможет быть перезаписан, и окно вернётся. В этом случае команду потребуется выполнить повторно. Опция.bakв sed создаёт резервную копию — не удаляйте её.
Альтернатива: правка вручную через редактор
Если не хочется использовать sed с регулярным выражением, файл можно отредактировать вручную. Откройте его командой nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js и найдите строку с текстом No valid subscription — удобно воспользоваться поиском по Ctrl+W.
Найденный блок выглядит как условие: если статус подписки не равен Active, вызывается Ext.Msg.show. Замените условие на заведомо ложное, например измените проверку на if (false), либо закомментируйте вызов диалога. Сохраните файл (Ctrl+O, Enter, Ctrl+X) и перезапустите pveproxy.
Ручной способ предпочтительнее, если версия Proxmox отличается от той, для которой написана sed-команда: структура файла со временем меняется, и шаблон может не сработать.
Настройка репозитория pve-no-subscription
Второй шаг — переключение источников обновлений. По умолчанию активен enterprise-репозиторий, который без ключа подписки возвращает ошибку 401 Unauthorized при попытке обновиться. Его нужно отключить, а вместо него подключить бесплатный репозиторий.
Откройте файл /etc/apt/sources.list.d/pve-enterprise.list и закомментируйте строку с репозиторием, добавив # в начало, или просто удалите файл. Затем добавьте no-subscription репозиторий. Для версий на базе Debian 12 (Proxmox VE 8) команда выглядит так:
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
Для других версий имя релиза Debian будет отличаться (например, bullseye для PVE 7), поэтому сверяйтесь с официальной вики Proxmox для вашей версии. После этого выполните:
apt update && apt dist-upgrade
Обновления должны пройти без ошибок авторизации.
Сравнение способов убрать предупреждение
Каждый подход имеет свои плюсы и ограничения. Сводная таблица поможет выбрать подходящий вариант.
| Способ | Сложность | Переживает обновления | Риск |
|---|---|---|---|
| Правка proxmoxlib.js через sed | Низкая | Нет, требует повтора | Минимальный, есть бэкап |
| Ручное редактирование файла | Средняя | Нет | Ошибка синтаксиса сломает UI |
| Покупка подписки | Низкая | Да | Отсутствует |
| Настройка no-subscription репозитория | Низкая | Да | Менее стабильные пакеты |
Отметим, что репозиторий pve-no-subscription получает пакеты с менее тщательным тестированием, чем enterprise-канал. Для домашних лабораторий это приемлемо, но для критичной инфраструктуры разработчики рекомендуют подписку.
Что делать, если окно появилось снова
Наиболее частая причина возврата окна — обновление пакета proxmox-widget-toolkit, которое перезаписало отредактированный файл. Проверить это просто: откройте proxmoxlib.js и посмотрите, сохранилась ли ваша правка.
Если правка сброшена, повторите sed-команду или ручное редактирование и снова перезапустите pveproxy. Некоторые администраторы автоматизируют это через hook для apt или cron-скрипт, проверяющий наличие изменения после каждого обновления.
Также убедитесь, что вы чистите кэш браузера: старый JavaScript-файл может подгружаться из кэша, создавая впечатление, что правка не сработала, или наоборот — что окно вернулось, хотя файл уже исправлен.
Автоматизация правки после обновлений
Можно создать файл /etc/apt/apt.conf.d/99pve-nag с содержимым: DPkg::Post-Invoke { "sed -Ezi.bak \"s/(Ext.Msg.show\\(\\{\\s+title: gettext\\('No valid sub)/void\\(\\{ \\/\\/\\1/g\" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js || true"; }; — тогда правка будет применяться автоматически после каждого обновления пакетов.
Легальность и безопасность метода
Отключение напоминания не нарушает лицензионное соглашение. Proxmox VE — свободное ПО под AGPLv3, и модификация его кода разрешена. Подписка — это добровольная поддержка разработчиков и доступ к стабильному репозиторию, а не активация продукта.
⚠️ Внимание: сторонние скрипты из непроверенных источников, которые «автоматически всё исправляют», могут содержать вредоносный код. Выполняйте правки только вручную или используйте команды, смысл которых вам понятен.
Если сервер используется в коммерческой среде, рассмотрите покупку подписки: помимо отключения окна она даёт доступ к протестированным обновлениям и поддержке, что снижает риски при эксплуатации.
Часто задаваемые вопросы
Убирает ли отключение окна какие-то функции Proxmox?
Нет. Правка затрагивает только показ модального окна в веб-интерфейсе. Все функции гипервизора — виртуальные машины, контейнеры LXC, кластеры, миграция, резервное копирование — работают в полном объёме.
Почему apt update выдаёт ошибку 401 на pve-enterprise?
Enterprise-репозиторий требует ключ подписки. Закомментируйте его в /etc/apt/sources.list.d/pve-enterprise.list и добавьте репозиторий pve-no-subscription, после чего ошибка исчезнет.
Нужно ли перезагружать сервер после правок?
Нет, достаточно перезапустить службу веб-интерфейса командой systemctl restart pveproxy.service и обновить страницу в браузере с очисткой кэша. Виртуальные машины при этом не затрагиваются.
Окно вернулось после обновления — это нормально?
Да. Обновление пакета proxmox-widget-toolkit перезаписывает отредактированный файл. Повторите правку или настройте автоматическое применение через hook для apt.
Легально ли использовать Proxmox без подписки?
Да. Proxmox VE распространяется под свободной лицензией AGPLv3 и полностью функционален без оплаты. Подписка даёт доступ к enterprise-репозиторию и техподдержке, но не является обязательной.