多台服务器、多个人登录,谁在什么时候连接了哪台机器、执行了什么操作?服务器数量少的时候,使用 SSH 客户端逐台管理还算方便,但随着服务器和使用人员增加,账号分发、权限回收和操作审计都会变得麻烦。
Casvisor 是一款基于 Go 开发的开源堡垒机(Bastion Host),可以部署在自己的服务器上,通过浏览器统一管理 SSH、RDP、VNC 和 Telnet 连接。它提供用户权限控制、命令规则、远程会话录像和操作审计,还支持 SSH Gateway,让 Xshell、SCP、SFTP 和 VS Code Remote 等客户端也能通过统一入口访问服务器。
与普通 SSH 客户端不同,Casvisor 解决的是服务器集中访问、权限管理和操作审计问题。它采用 Apache-2.0 许可证,默认使用 SQLite 和内置账号系统,也支持 Docker 部署,适合需要统一管理多台服务器的个人用户和小型团队。
- 官方网站: https://casvisor.org/
- GitHub: https://github.com/casvisor/casvisor
- 在线演示: https://demo.casvisor.com/
- 项目许可证: Apache-2.0
Casvisor 是什么?一个开源堡垒机
堡垒机也叫跳板机(Jump Server),主要用于集中管理服务器访问入口。
传统方式通常是每台服务器单独配置 SSH 密钥或账号密码,使用者通过不同客户端直接连接。多人共用服务器时,还容易出现账号共享、权限不清晰、人员离职后忘记回收访问权限等问题。
Casvisor 在用户与服务器之间增加了一个统一管理入口:
- 管理员登录 Casvisor,添加需要管理的服务器资产。
- 创建用户或用户组,为不同成员分配服务器访问权限。
- 用户通过浏览器或 SSH 客户端连接被授权的服务器。
- 管理员可以查看在线会话、录像和操作日志。
它使用 Go 实现 SSH、RDP、VNC 和 Telnet 协议处理。常规资产接入不要求在每台目标服务器上安装 Casvisor Agent;如果目标资产位于无法直接访问的内网,则可以通过网络网关和 Agent 接入。
项目采用 Go 后端和 React Web 管理界面,支持独立二进制运行,也可以通过 Docker 部署。
支持哪些远程连接协议?
Casvisor 将四种常见远程连接协议整合在同一个管理后台,可以通过浏览器访问 Linux、Windows 服务器和其他远程设备,也能通过 SSH Gateway 连接本地客户端。
| 协议 | 主要用途 | 核心功能 |
|---|---|---|
| SSH | Linux 服务器 | 浏览器终端、SFTP 文件传输 |
| RDP | Windows 远程桌面 | 图形桌面、剪贴板、文件传输 |
| VNC | 远程桌面 | 浏览器远程控制 |
| Telnet | 网络设备、旧系统 | 浏览器终端连接 |
SSH:浏览器终端与 SFTP 文件管理
SSH 是服务器运维中最常用的连接方式。
Casvisor 提供基于浏览器的 SSH 终端,可以直接连接 Linux 服务器并执行命令,终端旁边还有文件管理面板,支持通过 SFTP 上传和下载文件。
如果习惯使用本地客户端,也不需要改变原来的工作方式。
Casvisor 提供独立的 SSH Gateway,默认使用 2222 端口,支持:
- SSH
- SCP
- SFTP
- Rsync
- Xshell
- VS Code Remote
用户需要先在 Casvisor 中添加自己的 SSH 公钥,通过统一入口连接资产,权限仍然由 Casvisor 管理。
除了普通 SSH 连接,SSH Gateway 还支持本地端口转发,可以将目标资产的 RDP、VNC 等协议端口转发到本地,再使用 mstsc 或 VNC Viewer 等客户端连接。
需要注意,这种 TCP 端口转发只是流量转发,不会像浏览器中的远程会话一样进行录像。通过这种方式连接数据库,也不代表 Casvisor 提供了数据库审计功能。
RDP:浏览器里直接管理 Windows 服务器
管理 Windows 服务器时,不用再单独打开远程桌面客户端。Casvisor 支持通过浏览器连接 Windows Server,以及启用了远程桌面功能的 Windows 10/11,在后台就能打开远程桌面进行操作。
它使用 Go 编写的 gordp 处理 RDP 连接,支持 NLA 身份验证、剪贴板和文件传输,高分辨率屏幕也能正常适配,还可以根据需要调整远程桌面窗口大小。
除了 Windows,部分基于 FreeRDP 的 Linux 桌面环境也能通过 RDP 接入。
这样一来,平时维护 Linux 和 Windows 服务器,不必在 SSH 客户端和远程桌面软件之间来回切换,从 Casvisor 一个后台就能管理。
VNC 和 Telnet
VNC 同样可以通过浏览器访问远程桌面。Casvisor 使用 noVNC 提供前端交互,VNC 身份验证由后端处理,浏览器不会直接获得 VNC 密码。
Telnet 则主要面向交换机、网络设备和一些旧系统,可以直接在管理后台连接。
不过,Telnet 本身不提供传输加密。接入堡垒机并不意味着 Telnet 通信自动变得安全,涉及公网或不可信网络时,应优先使用 SSH 等加密协议。
权限管理与会话审计
多人共用服务器时,管理员需要解决的不只是连接问题,还包括谁能访问哪些机器、能否上传文件,以及出现误操作后能不能找到对应的操作记录。
Casvisor 使用 Casbin 实现权限策略,可以按照用户、用户组、资产和资产标签分配访问权限。
目前支持控制的操作包括:
| 权限 | 作用 |
|---|---|
| Connect | 是否允许连接 |
| Copy | 是否允许复制 |
| Paste | 是否允许粘贴 |
| Upload | 是否允许上传文件 |
| Download | 是否允许下载文件 |
| Forward | 是否允许端口转发 |
还可以限制客户端 IP 地址范围和权限有效时间。
例如,可以让普通运维人员只能访问指定的 Linux 服务器,不能连接其他资产;也可以禁止文件下载或端口转发。
权限被修改、删除或到期后,已经建立的会话也会被断开,不需要等待用户主动退出。
命令规则
Casvisor 支持使用正则表达式配置命令规则,可以对匹配的命令进行拦截或告警。
这些规则不仅适用于浏览器 SSH 终端,也适用于 SSH Gateway。
对于多人共用运维环境的团队,可以针对一些危险操作设置规则,减少误操作带来的风险。
不过,命令规则不等于完整的系统级安全防护,仍然需要结合 Linux 本身的用户权限、sudo 配置和系统日志使用。
远程会话录像与回放
Casvisor 支持 SSH、RDP、VNC 和 Telnet 会话录像,可以在浏览器中回放远程操作过程。
管理员可以:
- 查看正在运行的远程会话。
- 实时旁观在线连接。
- 主动终止异常会话。
- 回放已经结束的远程会话。
- 下载 SSH 和 Telnet 的 asciicast 录像。
SSH 和 Telnet 还支持命令记录。它不是简单地把所有键盘输入保存下来,而是通过虚拟终端屏幕读取命令执行情况。
例如,Tab 补全、历史命令和行内编辑可以被记录,但 vi、top 等全屏交互程序内部的操作无法完整捕获。
另外,文件传输和通过 API 执行的修改操作也会进入操作日志。
录像不等于所有连接都必然被录制。 项目支持配置录像保留天数,也可以通过 disableRecording 关闭录像。通过 SSH Gateway 建立的普通 TCP 端口转发连接,只记录会话和日志,不进行会话录像。
内网服务器如何通过网关接入?
如果服务器分布在不同机房,或者部分机器位于公司 NAT 后面,Casvisor 还提供 Network Gateway 功能。
目前主要有两种接入方式:
SSH Jump Host
如果目标网络里有一台 Casvisor 可以通过 SSH 登录的服务器,就可以使用它作为网络跳板。
这台服务器不需要额外安装 Casvisor Agent,但 SSH 服务端需要允许 TCP Forwarding,即开启 AllowTcpForwarding yes。
Agent
如果 Casvisor 无法直接连接目标内网,也没有可用的 SSH 跳板机,可以在内网的一台机器上运行 Casvisor Agent。
Agent 会主动通过 WebSocket 连接外部 Casvisor 服务,不需要在内网额外开放供公网访问的监听端口。
管理员可以为网关设置 Allowed Networks,限制 Agent 能够访问的内网网段。
这种方式适合将不同机房、办公室内网和云服务器接入同一个管理入口。
其他运维功能
除了远程连接和会话审计,Casvisor 还提供了凭据托管和主机补丁管理,可以处理一些日常服务器维护工作。
服务器凭据托管
管理多台服务器时,账号密码和 SSH 私钥往往分散在不同客户端里。Casvisor 提供了凭据托管功能,可以将服务器密码和 SSH 私钥加密保存在数据库中,连接时自动填入,不需要每次手动输入,也不必把服务器密码直接交给其他使用者。
它还支持 SSH 主机密钥和 RDP 证书校验。首次连接时记录对应的密钥或证书,后续如果检测到信息发生变化,就会拒绝连接,避免在不知情的情况下连接到身份异常的服务器。不过,首次连接时仍应确认目标服务器的身份。
需要区分的是,凭据托管并不等于自动密码轮换。Casvisor 可以保存和使用服务器凭据,但目前还不支持自动修改目标服务器密码。
主机补丁管理
Casvisor 还可以管理已接入服务器的系统更新。
对于支持的资产,可以扫描待安装的系统更新,并发起安装和重启操作。目前官方列出的更新方式包括:
| 操作系统 | 更新方式 |
|---|---|
| Linux | apt、dnf、yum |
| Windows | Windows Update |
如果需要同时维护多台服务器,这项功能可以减少一部分重复操作。具体可用范围仍应以对应版本和资产配置为准。
如何使用 Docker 部署 Casvisor?
Casvisor 提供官方 Docker 镜像,可以通过一个容器启动,不需要先单独安装数据库。
在安装 Docker 的 Linux 服务器上执行:
docker run -d --name casvisor \
-p 19000:19000 \
-p 2222:2222 \
-e adminPassword='替换为强密码' \
-v casvisor-db:/db \
-v casvisor-recordings:/recordings \
casbin/casvisor
这里映射了两个端口,并挂载两个数据卷:
| 配置 | 作用 |
|---|---|
| 19000 | Web 管理界面与 API |
| 2222 | SSH Gateway |
| /db | 数据库文件 |
| /recordings | 远程会话录像 |
如果只需要浏览器管理服务器,不需要使用 SSH Gateway,可以去掉 -p 2222:2222。
上面的 adminPassword 用于指定首次创建管理员账号时的密码。如果不设置,Casvisor 会在首次启动时随机生成初始密码,并将密码输出到容器日志中。
首次登录
容器启动后,如果没有指定管理员密码,可以执行:
docker logs casvisor
在日志中找到随机生成的初始密码。
浏览器访问:
http://服务器IP:19000
使用 admin 账号登录,随后进入 My Account 修改初始密码。
添加服务器资产
登录管理后台后:
- 打开 Assets 页面。
- 点击 Add 添加服务器。
- 选择连接协议,例如 SSH 或 RDP。
- 填写服务器地址、端口和对应账号信息。
- 保存后点击 Connect 测试连接。
管理员默认可以访问所有资产。
如果需要让其他成员使用,需要在 Users 中添加用户,再通过 Permission 设置对应的访问范围。
这样就可以把不同服务器分配给不同人员,而不必直接把所有服务器的账号密码发给每个人。
Docker Compose 部署要注意录像持久化
如果使用 Docker Compose 部署,有一个地方需要额外检查。
截至本文核对时,Casvisor 官方 Docker 快速启动命令挂载了数据库和录像目录,但 GitHub 仓库当前的 docker-compose.yml 示例只明确挂载了数据库卷。
建议在 Compose 配置中额外添加录像目录:
services:
casvisor:
volumes:
- casvisor-db:/db
- casvisor-recordings:/recordings
volumes:
casvisor-db:
casvisor-recordings:
这样在容器替换或重建时,数据库和录像文件都可以保留。
另外,19000 是管理界面和 API 端口,不建议无保护地暴露到公网。正式使用时应配置 HTTPS、限制管理后台访问来源,并做好数据库和录像文件备份。
Casvisor 免费吗?部署需要准备什么?
Casvisor 采用 Apache-2.0 开源许可证,目前项目方表示没有单独的付费企业版,公开仓库提供的功能可以自行部署使用。
部署方面,默认使用 SQLite,不需要额外安装数据库。如果已有 MySQL 环境,也可以按需配置,不必为了运行 Casvisor 专门搭建一套复杂的数据库服务。
账号管理同样不复杂。Casvisor 自带本地账号系统,安装后就能创建用户和分配服务器访问权限。如果团队需要统一登录、MFA 或 LDAP 等身份认证能力,还可以接入 Casdoor。
对于个人用户和小型团队来说,默认配置基本就能满足初期使用需求。不过,开源软件不代表完全没有成本,服务器、录像存储、数据备份和后续维护仍然需要自己负责。
Casvisor 和 JumpServer 有什么区别?
如果正在寻找开源堡垒机,Casvisor 和 JumpServer 都值得比较。两者都能解决服务器集中访问和运维审计问题,但产品定位和功能范围有所不同。
Casvisor 更强调轻量化和简单部署,使用 Go 开发,默认采用 SQLite 和内置账号系统,适合希望快速搭建统一服务器访问入口的个人用户和小型团队。
JumpServer 则是一套功能范围更广的开源特权访问管理(PAM)平台,除了 SSH 和远程桌面,还覆盖 Kubernetes、数据库、Web 应用等资产类型,提供更多企业级资产管理和权限控制能力。
| 对比维度 | Casvisor | JumpServer |
|---|---|---|
| 产品定位 | 轻量开源堡垒机 | 综合 PAM 平台 |
| 主要技术 | Go + React | 多组件架构 |
| 默认数据库 | SQLite | PostgreSQL 等 |
| 远程协议 | SSH、RDP、VNC、Telnet | SSH、RDP、VNC、Telnet 等 |
| Kubernetes | 暂不支持 | 支持 |
| 数据库访问 | 没有原生数据库代理 | 支持数据库资产和 Web 数据库访问 |
| 高级数据库代理 | 暂不支持 | Magnus 属于企业版组件 |
| 内网接入 | SSH Jump Host、Agent | 支持多种网关和区域部署 |
| 许可证 | Apache-2.0 | Community 版 GPL-3.0 |
| 部署特点 | 单体应用、Docker 或二进制 | 多组件,可单机或分布式部署 |
需要特别说明的是,JumpServer Community 并不是没有数据库功能。它提供 Web 数据库访问,但部分桌面客户端连接方式、Magnus 数据库协议代理等高级能力需要企业版授权。RDP、VNC 等连接方式也需要区分浏览器内置连接与桌面客户端连接。
如果看重轻量部署、常见远程协议统一管理,Casvisor 可以优先考虑;如果需要 Kubernetes、数据库、多种资产类型以及更完整的企业级 PAM 管理能力,JumpServer 的功能覆盖更广。
两者并不是简单的替代关系,应该根据实际需要的协议、权限、审计和部署规模来选择。
Casvisor 目前有哪些功能限制?
Casvisor 已经覆盖了日常服务器管理中比较常用的远程连接、权限控制和会话审计功能。不过,如果拿它来管理规模较大的企业服务器,还是有一些功能缺口需要注意。
目前比较明显的限制有这些:
| 功能 | 当前情况 |
|---|---|
| 数据库代理与 SQL 审计 | 没有原生支持 |
| Kubernetes 管理 | 暂不支持 |
| 多账号资产管理 | 一个资产目前只有一组系统账号 |
| 自动密码轮换 | 暂不支持 |
| 访问申请审批 | 暂不支持 |
| 资产树与批量导入 | 暂不支持 |
| S3 / OSS 录像存储 | 录像主要保存在本地目录 |
| 本地账号 MFA | 需要接入 Casdoor |
| 全屏程序命令审计 | 无法完整记录程序内部操作 |
有两点尤其需要注意。
SSH 端口转发不等于数据库审计。 Casvisor 可以通过 SSH 隧道,让本地数据库客户端连接服务器上的数据库,但它只是负责转发网络流量,并不会解析 SQL,也不能记录完整的数据库操作。
录像文件需要自己做好备份。 Casvisor 目前主要将录像保存在本地目录,如果服务器磁盘损坏、Docker 数据卷丢失,又没有异地备份,之前的会话录像也可能无法恢复。
另外,SSH 命令审计也有一定局限。像 vi、top 这类全屏交互程序,内部操作无法完整记录,不能把它当成完整的终端行为审计系统。
这些限制对于个人管理几台 VPS 或小型团队未必都会造成影响,但如果日常工作离不开数据库操作审计、Kubernetes 管理、自动密码轮换或完整的审批流程,就需要考虑功能更全面的堡垒机方案。
什么情况下适合使用 Casvisor?
如果平时需要维护多台 VPS、Linux 或 Windows 服务器,而且不只是自己使用,还需要给其他成员分配访问权限、查看连接记录,Casvisor 就比较值得考虑。
它把浏览器远程连接、SSH Gateway、权限管理和会话录像整合在一起,不用为这些功能分别搭建不同的工具。对于想自己部署堡垒机、又不希望引入太多组件的个人用户和小型团队,这种方式比较省事。
如果日常工作涉及大量数据库操作审计、Kubernetes 管理,或者需要自动密码轮换、访问审批和大规模资产管理,Casvisor 目前还不太合适,可以考虑 JumpServer 等功能更全面的方案。
如果只是自己连接几台服务器,平时主要用 SSH 登录和传输文件,其实没必要专门部署一套堡垒机。本站之前介绍过的 SSHYard 就是更简单的选择,适合个人管理 SSH 连接和 SFTP 文件。
项目地址: https://github.com/casvisor/casvisor
官方网站: https://casvisor.org/
在线演示: https://demo.casvisor.com/
参考资料:
- Casvisor GitHub 官方仓库
- Casvisor Docker Compose 配置
- Casvisor 项目作者的 V2EX 介绍
- JumpServer 官方文档
- JumpServer Community 与 Enterprise 版本对比











评论(0)