В Debian 12 (и других системах с systemd) порт Cockpit нельзя изменить просто через файл cockpit.conf. Поскольку Cockpit использует «активацию по сокету», порт жестко прописан в системном юните cockpit.socket.

Чтобы изменить его правильно и чтобы настройки не слетели при обновлении системы, нужно использовать drop-in файл (переопределение).

Инструкция по изменению порта

Допустим, мы хотим изменить порт с 9090 на 7777.

1. Создание переопределения

Выполните команду, которая создаст нужную директорию и откроет редактор для создания конфига:

sudo systemctl edit cockpit.socket

2. Добавление конфигурации

В открывшемся пустом файле вставьте следующие строки:

[Socket]
ListenStream=
ListenStream=7777

Важно: Первая пустая строка ListenStream= обязательна. Она «обнуляет» стандартный порт 9090. Если её не добавить, Cockpit будет слушать оба порта одновременно.

3. Применение изменений

Сохраните файл (Ctrl+O, Enter) и выйди (Ctrl+X). После этого примените настройки:

sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket


4. Проверка

Проверьте, что Cockpit теперь слушает новый порт:

sudo ss -tulpn | grep cockpit

Вы должны увидеть что-то вроде: tcp LISTEN 0 128 *:7777.

5. Обновите Nginx (если настраивали прокси)

Если вы ранее настраивали Nginx как Reverse Proxy, не забудьте изменить порт в блоке location:

location /server1/ {
    proxy_pass https://127.0.0.1:7777/; # Новый порт здесь
    ...
}


Что делать, если не работает?

  1. Firewall: Если у вас включен ufw, разрешите новый порт:
    sudo ufw allow 7777/tcp.
  2. SELinux: В чистом Debian 12 SELinux обычно выключен, но если вы его устанавливали отдельно, нужно разрешить порту работу с Cockpit:
    sudo semanage port -a -t websm_port_t -p tcp 7777.