在主流发行版上安装 Cockpit 需按包管理器执行对应命令:Ubuntu/Debian 用 sudo apt install cockpit,RHEL 8+/Fedora 用 sudo dnf install cockpit,openSUSE 用 sudo zypper install cockpit;安装后需启用 cockpit.socket 服务并配置监听地址、防火墙及用户权限。

怎么在主流发行版上装 Cockpit
Cockpit 默认没装,得手动加。不同包管理器命令不一样,别直接抄错:
-
sudo apt install cockpit(Debian/Ubuntu,注意 22.04+ 默认源里有,老版本可能要先apt update) -
sudo dnf install cockpit(Fedora/RHEL 8+,RHEL 7 用sudo yum install cockpit,但功能受限) -
sudo zypper install cockpit(openSUSE)
装完不自动启动,得自己开服务:sudo systemctl enable --now cockpit.socket。注意是 cockpit.socket 不是 cockpit.service——后者已弃用,硬启会失败。
打不开 Web 界面?检查端口和防火墙
默认监听 localhost:9090,但只绑本地;远程访问必须改配置,否则浏览器连 192.168.x.x:9090 会直接拒绝连接。
- 先确认服务真起来了:
systemctl is-active cockpit.socket应返回active - 检查端口监听:
ss -tlnp | grep :9090,如果只看到127.0.0.1:9090,说明没对外 - 改绑定地址:编辑
/etc/systemd/system/cockpit.socket.d/listen.conf(目录不存在就新建),写入:[Socket] ListenStream=9090
然后sudo systemctl daemon-reload && sudo systemctl restart cockpit.socket - 防火墙放行:
sudo ufw allow 9090(Ubuntu)或sudo firewall-cmd --add-port=9090/tcp --permanent && sudo firewall-cmd --reload(RHEL/Fedora)
登录提示“Authentication failed”但密码没错
Cockpit 默认只允许有 sudo 权限的用户登录,普通用户即使密码对也会被拒。
- 用户必须属于
sudo组(Ubuntu/Debian)或wheel组(RHEL/Fedora/openSUSE) - 检查命令:
groups $USER,没看到对应组名就得加:sudo usermod -aG sudo $USER(Ubuntu)或sudo usermod -aG wheel $USER(RHEL系) - 登录用的是系统账户密码,不是 Cockpit 单独设的密码,别去翻配置文件找“admin 密码”
- 如果启用了 SSH 密钥登录且禁用了密码登录(
PasswordAuthentication no),Cockpit 仍依赖 PAM 密码验证,此时必须保留密码登录能力,否则无法登录
为什么某些主机页面空白或模块不显示
Cockpit 功能按需加载模块,不是所有组件都默认启用,尤其涉及硬件监控、容器、存储等。
- 基础管理(用户、服务、日志)始终可用;但
storage模块需要udisks2,network需要NetworkManager,podman模块需要podman和podman-docker(Fedora 38+ 要额外装) - 查看缺失模块:
ls /usr/share/cockpit/,如果缺storage目录,就装cockpit-storaged(Debian/Ubuntu)或cockpit-storaged包(RHEL/Fedora) - 某些模块依赖 systemd 版本,比如
systemd-journal-remote在 RHEL 7 上不可用,对应日志转发功能就灰掉 - 浏览器控制台(F12)报
Failed to load resource: net::ERR_CONNECTION_REFUSED,大概率是后端服务没跑,不是前端问题
Cockpit 的坑多数出在“它默认只做最小可行”,而不是“开箱即用”。配好端口、权限、依赖模块这三样,剩下就是点点点的事;但漏一个,界面就卡在 Loading 或干脆 404。

















