最近折腾阿里云国际站/国内站 ECS 和 CDT 免费流量,
担心机器跑着跑着流量超了,忘记关机,然后账单开始教做人。
然后群友告诉了我这个项目,https://github.com/wang4386/CDT-Monitor
但是功能过于简单,于是我作为一个天才程序员(没了ai另说),就开始了对它的二次开发。
项目已经开源,Docker 镜像也推好了。
GitHub:
https://github.com/Kori1c/ecs-controller
部署
Docker 部署
推荐直接用 Docker Compose。
新建 docker-compose.yml:
services:
ecs-controller:
image: kori1c/ecs-controller:latest
container_name: ecs-controller
restart: always
ports:
- "43210:80"
volumes:
- ./data:/var/www/html/data
environment:
- TZ=Asia/Shanghai
启动:
docker compose up -d
然后访问:
http://你的服务器IP:43210
首次进入会要求初始化管理员密码和流量保护阈值。
使用
需要阿里云的AK
建议单独创建一个 RAM 用户,不要直接用主账号 AK。
需要哪些权限?
至少需要这些权限:
AliyunECSFullAccessAliyunBSSFullAccessAliyunCDTFullAccess
分别用于:
- ECS 查看 / 开关机 / 释放 / 创建
- 余额和账单查询
- CDT / 流量数据查询
如果你只想使用部分功能,可以按需缩小权限范围,不过需要自己测试 API 是否足够。
注意事项
这个项目不是商业 SaaS,也不是官方工具。一键开机默认配置可能不是最优解,需要你们自己修改。
几点提前说清楚:
- 阿里云 API、计费规则、库存、镜像、实例规格随时可能变化。
- 一键创建 ECS 前一定要看清配置清单和费用提示。
- 流量统计依赖阿里云 API,存在延迟或采样精度问题。
- 自动停机是保护手段,不代表 100% 防止所有费用。
- 强烈建议先用小流量阈值测试一轮,再放到正式环境。
- AK/SK 请使用 RAM 子账号,并最小化授权。
- 项目由 AI 深度参与开发,我已经尽量测试,但不保证无 Bug。
适合谁?
比较适合:
- 用阿里云国际站 / 国内站 ECS 的朋友
- 想榨干 CDT 免费流量但怕超量扣费的人
- 有多账号、多区域实例需要统一管理的人
- 经常创建 / 释放测试机器的人
- 需要 Cloudflare DDNS 自动更新的人
- 想用 Telegram 接收 ECS 状态通知的人
不适合:
- 完全不能接受任何 Bug 的生产环境
- 不愿意自己排查阿里云权限问题的人
- 需要企业级审计、RBAC、多用户权限的人
这个项目是干什么的?
简单说,它是一个面向阿里云 ECS 的轻量管理面板,核心目标是:
- 自动监控 ECS 出口流量
- 到达阈值后自动停机
- 支持多个阿里云账号 / 多区域
- 支持一键创建 ECS
- 支持 Cloudflare DDNS
- 支持 Telegram / 邮件 / Webhook 通知
- 支持费用和消费情况展示
- 尽量减少手动操作成本
比较适合用阿里云 CDT 免费流量、轻量跑服务、怕忘记关机导致超量扣费的朋友。
核心功能
1. 流量监控和自动停机
可以给每个账号设置账号可用流量,比如 200GB、8GB、2GB 之类。
系统会定时同步 ECS 出口流量,达到设置阈值后自动执行停机,避免继续产生流量费用。
支持配置:
- 流量保护阈值
- 实例同步频率
- 普通停机 / 节省停机
- 超量通知
- 自动停机
这里注意一下,项目统计的是阿里云侧可通过 API 获取到的公网出口流量,主要用于防止“出流量爆炸”。
2. 多账号 / 多区域管理
支持添加多个阿里云 AK,每个账号可以设置:
- 备注名
- AccessKey ID
- AccessKey Secret
- 区域
- 国内站 / 国际站
- 账号可用流量
账号保存后可以手动同步该账号下的 ECS 实例。
3. 实例状态卡片
实例状态页会以卡片形式展示:
- 备注
- 区域
- 实例 ID
- 公网 IP
- 运行状态
- 已用出口流量
- 公网带宽峰值
- 阈值
- 最近同步时间
方便一眼看出哪台机器在跑、用了多少流量、是否接近上限。
4. 实例管理
实例管理页支持:
- 启动
- 停止
- 释放
- 手动同步
- 查看实例规格
- 查看出口流量
- 查看公网带宽
释放实例也会联动 DDNS,避免域名解析残留。
5. 一键创建 ECS
这个功能主要是为了减少新手配置成本。
用户只需要选择账号、区域、系统、实例规格等参数,就可以让系统自动处理:
- VPC
- 交换机
- 安全组
- 安全组规则
- 系统盘
- 公网带宽
- ECS 创建
- 初始密码生成
默认实例规格是:
ecs.e-c4m1.large
系统会在真正创建前弹出配置清单,让用户确认:
- 实例规格
- 系统镜像
- 系统盘大小
- 网络配置
- 安全组规则
- 公网带宽
- 费用提示
避免手滑下单。
创建完成后会单独弹窗展示:
- 公网 IP
- 登录用户
- 初始密码
并提醒用户保存,后续不会再次展示初始密码。
6. Cloudflare DDNS
支持 Cloudflare DDNS。
配置 Token 和域名后,系统会在实例创建、启动、同步时自动更新 A 记录。
如果实例释放,也会自动删除对应解析,避免解析残留。
单账号多机器时,会根据账号备注和实例信息生成子域名,尽量保证可区分。
7. 通知系统
支持:
- Telegram
- 邮件 SMTP
- Webhook
通知内容包括:
- ECS 创建成功
- 实例启动 / 停止 / 释放
- 流量超限
- 自动停机结果
- DDNS 相关状态
Telegram 和邮件都支持测试按钮,方便确认配置是否正确。
8. 日志审计
系统内置日志页面,区分:
- 动作日志
- 心跳日志
方便排查:
- API 是否调用成功
- 实例状态是否同步
- 流量是否获取成功
- 通知是否推送成功
- 自动停机是否执行
项目地址
GitHub:
https://github.com/Kori1c/ecs-controller
Docker Hub:
https://hub.docker.com/r/kori1c/ecs-controller
欢迎提 Issue / PR。
如果有朋友也在玩阿里云 CDT 免费流量,可以试试看。
建议先测试环境跑一遍,确认流量统计、自动停机和通知链路都符合自己的预期后再正式使用。
本次更新内容
✨ 新增功能与支持
✨ EIP 实例可一键更换公网 IP
帮顶
帮顶!
送个鸡腿
不错
@炒土豆丝 #6 额度用完了,天才程序员下线!
好东西,帮顶!
我创建成功了,怎么知道他一个月扣多少钱
@taong #9 账号那里有消费情况。