跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    Cockpit 网页管理界面

    适用于 CentOS Stream 9 & 10 / AlmaLinux 9.x & 10.x / Rocky Linux 9.x & 10.x

    Cockpit 是企业级 Linux 自带的、基于 Web 的服务器管理界面。你用浏览器登录后,就能在图形界面里查看系统状态、管理服务、查日志、配网络、装更新,甚至直接打开一个内置终端。它不替代 SSH 命令行,而是和命令行互补——日常巡检和图形化运维用 Cockpit 更直观,复杂操作仍然可以回到终端。对刚上手 Linux 的你来说,它是一个很友好的起点。

    • Cockpit 是什么,以及它和 SSH 命令行的关系
    • 如何安装、启用 Cockpit 并放行防火墙
    • 如何用浏览器登录并了解各个功能面板
    • 如何安装常用扩展插件(容器、虚拟机、存储等)
    • 如何加固安全:换正式证书、限制登录、改端口
    • 一台已安装并完成初始化配置的 EL 9 或 EL 10 系统
    • 拥有 sudo 权限的系统账号
    • 一台能通过网络访问该服务器的电脑(带浏览器)

    很多 EL 系统在安装时已经包含了 cockpit 和 cockpit-ws,尤其是带图形界面的安装。如果是最小化安装,手动装一下即可。

    安装 Cockpit
    $ sudo dnf install cockpit

    如果系统提示已经安装,那就直接进入下一步。

    Cockpit 使用 systemd 的 socket 激活方式运行——平时并不常驻,只有当有人访问 9090 端口时才被 systemd 唤醒,几乎不占资源。你需要启用的是 cockpit.socket,而不是 cockpit.service。

    启用并立即启动(开机自启)
    $ sudo systemctl enable --now cockpit.socket

    确认 socket 处于监听状态:

    查看状态
    $ systemctl status cockpit.socket

    输出中应能看到 Active: active (listening),表示已在监听 9090 端口:

    ● cockpit.socket - Cockpit Web Service Socket
    Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; ...)
    Active: active (listening) since ...
    Listen: [::]:9090 (Stream)

    EL 默认启用 firewalld。Cockpit 自带一个名为 cockpit 的预定义服务(对应 9090/tcp),直接放行即可。

    永久放行 cockpit 服务并重载
    $ sudo firewall-cmd --add-service=cockpit --permanent
    $ sudo firewall-cmd --reload

    确认规则已生效:

    查看已放行的服务
    $ sudo firewall-cmd --list-services

    输出里应包含 cockpit。

    在另一台电脑的浏览器中打开服务器地址,端口是 9090,协议是 HTTPS:

    https://<服务器IP>:9090

    把 <服务器IP> 换成你的服务器实际 IP 或主机名。第一次访问时,浏览器会弹出安全警告——这是因为 Cockpit 默认使用自签名证书,浏览器无法验证它的身份。这在内网环境下是正常现象,确认地址无误后选择”继续访问”即可。稍后的安全加固一节会介绍如何换成正式证书。

    登录页用系统账号登录即可——也就是你平时 SSH 登录用的那个用户名和密码。

    登录后,左侧导航栏汇集了日常运维最常用的面板:

    • 概览:CPU、内存、磁盘负载,硬件信息,以及待安装的更新提醒
    • 日志:浏览 systemd journal 日志,可按时间、优先级、服务过滤
    • 服务:图形化管理 systemd 单元,启动、停止、启用、禁用一目了然
    • 网络:基于 NetworkManager 配置网卡、绑定、桥接、防火墙,并实时显示流量
    • 存储:管理磁盘、分区、LVM、文件系统和挂载
    • 账户:创建和管理用户、设置密码、配置 SSH 公钥
    • 软件更新:检查并安装系统更新(依赖 cockpit-packagekit)
    • 终端:一个内置在浏览器里的完整 shell,命令行操作随时可用

    安装相应扩展插件后,还会出现 Podman 容器、虚拟机 等面板。

    Cockpit 的功能通过插件按需扩展。每个插件都是独立的 DNF 包,装上后对应面板会自动出现在导航栏里,无需重启服务。

    按需安装常用插件
    $ sudo dnf install \
    cockpit-podman \
    cockpit-machines \
    cockpit-storaged \
    cockpit-packagekit

    注意:没有 cockpit-networkmanager / cockpit-sosreport / cockpit-selinux 这些独立包——网络、SELinux、sos 报告等面板由 cockpit-system(随 cockpit 一起装)提供。把不存在的包写进 dnf install 会让整条命令 No match 失败。

    各插件的作用:

    插件提供的功能
    cockpit-podman图形化管理 Podman 容器与镜像
    cockpit-machines管理 KVM/libvirt 虚拟机
    cockpit-storaged磁盘、分区、LVM、文件系统管理
    cockpit-networkmanager网络接口、绑定、桥接配置
    cockpit-packagekit检查与安装软件更新
    cockpit-sosreport一键生成 sosreport 诊断报告
    cockpit-selinux查看 SELinux 状态与排查告警

    如果你有多台都装了 Cockpit 的服务器,可以在一台 Cockpit 界面里把其它主机添加进来,集中切换管理,省去逐个打开浏览器标签。

    1. 确保目标主机也安装并启用了 cockpit.socket,且 9090 端口在你当前登录的主机可达。

    2. 在 Cockpit 左上角点击主机名旁的下拉箭头,选择「添加新主机」。

    3. 填入目标主机地址和登录用户,首次连接需要确认其 SSH 主机指纹。

    添加成功后,就能在同一界面里通过下拉菜单在多台主机之间切换。

    Cockpit 直接暴露了服务器的管理能力,因此访问控制要认真对待。

    最稳妥的做法是只在内网或 VPN 内开放 9090 端口,不要直接暴露到公网。如果确实需要从公网访问,建议把 Cockpit 放到反向代理(如 Nginx)后面,由代理统一处理正式 TLS 证书和访问控制。

    要消除浏览器的证书警告,把你的正式证书和私钥放进 Cockpit 的证书目录即可。Cockpit 会自动加载该目录下字母序最靠后的 .cert(及配套 .key)文件。

    放置正式证书
    $ sudo cp fullchain.pem /etc/cockpit/ws-certs.d/50-mydomain.cert
    $ sudo cp privkey.pem /etc/cockpit/ws-certs.d/50-mydomain.key
    $ sudo systemctl restart cockpit

    root 默认就被禁止登录 Cockpit,相关规则在下面这个文件里:

    查看被禁止登录的用户
    $ sudo cat /etc/cockpit/disallowed-users

    要禁止更多账号,把用户名按行加进该文件即可(每行一个)。

    如果想把默认的 9090 换成别的端口,需要新建一个 socket 覆盖配置。

    1. 创建覆盖目录与配置文件:

      Terminal window
      $ sudo mkdir -p /etc/systemd/system/cockpit.socket.d
    2. 在 /etc/systemd/system/cockpit.socket.d/listen.conf 写入新端口(这里以 9999 为例):

      /etc/systemd/system/cockpit.socket.d/listen.conf
      [Socket]
      ListenStream=
      ListenStream=9999

      第一行空的 ListenStream= 用于清除默认的 9090,必不可少。

    3. 重载并重启 socket,再放行新端口:

      Terminal window
      $ sudo systemctl daemon-reload
      $ sudo systemctl restart cockpit.socket
      $ sudo firewall-cmd --add-port=9999/tcp --permanent
      $ sudo firewall-cmd --reload

    在 EL 9 和 EL 10 上,Cockpit 的安装、启用、防火墙和使用方式完全一致,本文所有命令两者通用。EL 10 自带的 Cockpit 版本更新,界面和插件功能略有增强,但操作逻辑没有变化,可以放心沿用。

    浏览器打不开 https://服务器IP:9090

    先在服务器上确认 socket 在监听:systemctl status cockpit.socket 应显示 active (listening);如果不是,运行 sudo systemctl enable --now cockpit.socket。再确认防火墙已放行:sudo firewall-cmd --list-services 里应有 cockpit,否则按上文重新放行。也别忘了检查你访问的 IP/端口和 HTTPS 协议是否填对。

    浏览器一直提示证书不安全

    这是因为 Cockpit 默认用自签名证书,浏览器无法验证其颁发机构,属于正常现象。内网使用时确认地址无误后继续访问即可;要彻底消除警告,请按换成正式 TLS 证书放置受信任的正式证书。

    用 root 登录提示”权限被拒绝”

    这是默认安全策略:root 被列在 /etc/cockpit/disallowed-users 中,禁止从 Cockpit 登录。请改用拥有 sudo 权限的普通账号登录,登录后在右上角开启”管理访问”即可执行提权操作。

    想改掉默认的 9090 端口

    参见上文修改监听端口:通过 cockpit.socket.d/listen.conf 覆盖 ListenStream,重启 socket 并在防火墙放行新端口。