Cockpit - установка на Debian
-
Установка Cockpit на Debian 12 (Bookworm) — это быстрый процесс, так как пакеты уже находятся в официальных репозиториях. Cockpit позволяет управлять сервером через удобный веб-интерфейс: мониторить ресурсы, управлять сетями, контейнерами и пользователями.
Вот пошаговая инструкция:
1. Обновление системы
Перед установкой любого ПО рекомендуется обновить списки пакетов:
sudo apt update && sudo apt upgrade -y2. Установка Cockpit
Установите основной пакет Cockpit с помощью
apt:sudo apt install cockpit -y3. Запуск и проверка службы
После установки служба должна запуститься автоматически. Проверьте её статус:
systemctl status cockpit.socketЕсли служба не активна, запустите её и добавьте в автозагрузку:
sudo systemctl enable --now cockpit.socket
4. Настройка брандмауэра (если включен)
Cockpit по умолчанию использует порт 9090. Если у вас активен
ufwилиnftables, нужно открыть этот порт:- Для UFW:
sudo ufw allow 9090/tcp- Для nftables/iptables: Убедитесь, что входящий трафик на порт 9090 разрешен.
5. Доступ к веб-интерфейсу
Теперь вы можете зайти в панель управления через браузер. Введите в адресную строку:
https://ip-вашего-сервера:9090Примечание: Браузер может показать предупреждение о "небезопасном соединении", так как Cockpit использует самоподписанный SSL-сертификат. Нажмите "Дополнительно" и "Перейти на сайт (небезопасно)".
Для входа используйте логин и пароль вашего обычного пользователя в системе или root.
Дополнительные возможности
Чтобы расширить функционал Cockpit, вы можете установить дополнительные модули:
- Управление виртуальными машинами (KVM):
sudo apt install cockpit-machines - Управление Podman (контейнеры):
sudo apt install cockpit-podman - Управление сетевыми хранилищами и дисками:
sudo apt install cockpit-storaged
-
Создание конфига для NGINX и сертификата
- Создаём простой стандартный конфиг для нужного домена
cd /etc/nginx/sites-available sudo touch <my_site>.conf sudo nano <my_site>.conf- Вписываем в конфиг примитив, сохраняем
server { listen 80; server_name my_domain.tld; # Замените на ваш домен location / { root /var/www/html; } }- Создаём линк
sudo ln -s /etc/nginx/sites-available/<my_site>.conf /etc/nginx/sites-enabled/- Устанавливаем certbot, если ещё не установлен
sudo apt install certbot python3-certbot-nginx -y- Создаём сертификат для домена
sudo certbot --nginx -d my_domain.tld- Заходим сюда /etc/nginx/sites-available/<my_site>.conf и меняем текст конфига таком образом:
server { listen 443 ssl; server_name my_domain.tld; # Подставляем свой домен ssl_certificate /etc/letsencrypt/live/my_domain.tld/fullchain.pem; # Подставляем свой домен ssl_certificate_key /etc/letsencrypt/live/my_domain.tld/privkey.pem; # Подставляем свой домен location / { # Перенаправляем трафик на локальный порт Cockpit proxy_pass https://10.155.64.245:9090; # Подставляем нужный айпи-адрес # Настройки для поддержки WebSockets (обязательно для Cockpit) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Передача заголовков хоста и реального IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Отключаем буферизацию для мгновенного отклика терминала proxy_buffering off; } } -
Изменение конфига Cockpit
Выполните следующие шаги:
1. Создание файла
Запустите
nano(он создаст пустой буфер, который сохранится как файл):sudo nano /etc/cockpit/cockpit.conf2. Содержимое файла
Скопируйте и вставьте туда следующий блок (это критически важно для работы через Nginx, чтобы избежать ошибок "Cross-Origin" и бесконечной загрузки):
[WebService] Origins = https://ваш-домен.com ProtocolHeader = X-Forwarded-Proto AllowUnencrypted = true- Origins: Укажите здесь адрес, по которому вы будете заходить в браузер (включая
https://). Если адресов несколько, перечислите их через пробел. - ProtocolHeader: Говорит Cockpit верить заголовку от Nginx, что соединение безопасно.
- AllowUnencrypted: Позволяет Cockpit принимать трафик от Nginx по локальной сети.
3. Сохранение
- Нажмите
Ctrl + O(сохранить). - Нажмите
Enter(подтвердить имя файла). - Нажмите
Ctrl + X(выйти из редактора).
4. Перезапуск службы
Чтобы Cockpit подхватил новые настройки, обязательно перезапустите его:
sudo systemctl restart cockpit.socket
Почему это важно?
Без этого файла Cockpit увидит, что запрос пришел от прокси-сервера (Nginx), а не напрямую от клиента, и заблокирует соединение из соображений безопасности. В консоли браузера при этом обычно видна ошибка
403 Forbiddenили проблемы с подключением WebSockets. - Origins: Укажите здесь адрес, по которому вы будете заходить в браузер (включая
-
- Заходим по адресу https://my_domain.tld
- Вводим имя и пароль системного пользователя в окне авторизации