在运维安全领域,堡垒机是绕不开的基础设施。但现实往往很骨感:商业产品动辄数十万授权费,开源方案又常常在关键功能上“留一手”逼你买企业版。
今天介绍的 Casvisor,是一个真正 “Apache-2.0、无企业版” 的开源堡垒机。它用一个Go二进制文件承载了SSH、RDP、VNC、Telnet四种协议的完整能力,自带会话录制、命令审计、权限控制和补丁管理——所有功能都在开源项目中,没有付费墙。
1. 核心哲学:一个二进制,四种协议,零依赖
Casvisor的设计极其克制:
- 📦 单二进制部署:Go编译,无需Python/Java/.NET运行时
- 🗄️ 开箱即用SQLite:默认零数据库依赖,生产环境可切换MySQL
- 🔌 服务端零安装:目标服务器无需安装任何Agent或插件
- 🌐 浏览器即终端:xterm.js终端+SFTP文件面板,无需本地客户端
2. 四协议全覆盖:不是模拟,是原生实现
| 协议 | 实现方式 | 亮点特性 |
|---|---|---|
| SSH | xterm.js + SFTP | 文件上传下载、命令记录、asciicast导出 |
| RDP | gordp(纯Go RDP客户端) | NLA认证、GFX图形管线、高DPI清晰文本、远程光标、剪贴板、驱动器重定向文件传输 |
| VNC | noVNC | Casvisor代理认证,密码不离开服务器 |
| Telnet | 原生实现 | 网络设备/旧系统支持,资产账户自动登录 |
特别值得一提的是gordp:这是一个纯Go实现的RDP客户端,支持ClearCodec、RemoteFX Progressive等现代图形管线,在高DPI屏幕上文字清晰锐利,体验接近Windows原生远程桌面。这意味着你不再需要依赖FreeRDP或Guacamole等外部组件。
3. SSH网关:VS Code/Xshell/rsync无缝接入
除了浏览器访问,Casvisor在端口2222提供标准SSH网关:
ssh -p 2222 [email protected]
- 用户使用自己的公钥登录,权限与Web端一致
- 支持scp、sftp、rsync、Xshell、VS Code Remote
- 密码和私钥由Casvisor加密存储并自动填充,用户永远看不到服务器凭据
- SSH主机密钥和RDP证书首次使用时自动固定,防止中间人攻击
4. 安全控制:可读策略+即时撤销
- Casbin权限引擎:对用户/组/资产/标签定义连接、复制、粘贴、上传、下载、转发等操作权限,支持IP范围和时间窗口
- 命令规则:正则匹配阻止或标记危险命令,Web终端和SSH网关同等生效
- 即时撤销:权限编辑/删除/过期后,已打开的会话立即断开,不存在“改完权限还能继续操作”的窗口期
- SSO/MFA/LDAP:通过Casdoor集成,支持社交登录和多因素认证
5. 审计能力:录制、回放、命令记录全开源
这是很多开源堡垒机的“付费功能区”,Casvisor全部开放:
- 🎬 会话录制与回放:SSH/Telnet/VNC/RDP全协议录制,浏览器内原样重放
- 📥 录制导出:SSH/Telnet录制可下载为asciicast格式
- 👁️ 实时监控:在线会话实时查看,可随时强制终止
- ⌨️ 命令记录:从虚拟屏幕读取,Tab补全、历史记录、行编辑均按运行时原样捕获
- 📋 操作日志:文件传输和API变更全量记录
6. 网络网关:穿透NAT和跨数据中心
对于Casvisor无法直连的资产,提供两种网关方案:
| 类型 | 适用场景 | 原理 |
|---|---|---|
| SSH跳板主机 | 可通过SSH登录的中转服务器 | sshd需开启AllowTcpForwarding,无需安装任何东西 |
| Agent代理 | 完全隔离的私有网络 | 同一二进制以agent模式运行,WebSocket出站连接,只要HTTPS能出去就能工作 |
Agent不监听任何端口,只连接到网关允许的白名单网络,安全性极高。
7. 附加能力:补丁管理+多语言控制台
- 补丁管理:扫描并安装Windows Update / apt / dnf / yum待处理更新,支持重启
- 9种语言Web控制台:React + Vite + shadcn/ui,RESTful API + Swagger文档
- 录制管理:自定义存储路径、保留天数、可关闭录制
8. 快速开始:一条Docker命令
docker run -d --name casvisor -p 19000:19000 -p 2222:2222 \
-v casvisor-db:/db -v casvisor-recordings:/recordings casbin/casvisor
docker logs casvisor # 获取初始admin密码
访问 http://localhost:19000,登录后在“我的账户”中修改密码。添加资产即可连接。
源码构建:需要Go 1.23 + Node.js 20 + Yarn,go run main.go 即可启动。
9. 与同类产品的定位差异
| 维度 | Casvisor | JumpServer | Teleport |
|---|---|---|---|
| 许可证 | Apache-2.0,无企业版 | 社区版+企业版 | 开源版+Cloud版 |
| 部署复杂度 | 单二进制+SQLite | 多组件+MySQL/Redis | 多组件+etcd |
| RDP实现 | 纯Go原生(gordp) | Guacamole(Java) | 依赖外部RDP代理 |
| 会话录制 | 全协议开源 | 部分功能企业版 | Cloud版专属 |
| 资源占用 | ~50MB RAM | GB级 | GB级 |
Casvisor的定位很清晰:给中小团队和个人开发者一个“够用、好用、完全免费”的堡垒机选择。它不追求JumpServer的功能广度,但在核心安全能力上毫不妥协。
如果你的团队正在寻找一个轻量、透明、可审计的跳板机方案,或者受够了商业产品的授权费和功能限制,Casvisor值得你花10分钟试一试。



