文件
linux_controller/readme.md
T

2.6 KiB
原始文件 Blame 文件历史

linux_controller

基于 Flask + Paramiko 的 Linux 服务器批量监控与开关机控制面板(PC / 移动端自适应)。

功能

  • 定时(60 秒)通过 SSH 采集各服务器 top 指标:CPU / 内存 / 负载 / 任务状态等
  • Web 页面展示服务器状态,支持远程关机 / 重启(带二次确认弹窗)

快速开始

1. 配置服务器列表

复制 .env.example 为 .env,填写 SERVERS_JSON(JSON 数组,包含 name / ip / username / password)。 .env 已被 .gitignore 忽略,切勿提交真实凭据。

2. 本地运行

pip install -r requirements.txt

Linux / macOS:

export SERVERS_JSON='[{"name":"demo","ip":"192.168.1.10","username":"root","password":"your-password"}]'
python app.py

Windows PowerShell:

$env:SERVERS_JSON='[{"name":"demo","ip":"192.168.1.10","username":"root","password":"your-password"}]'
python app.py

3. Docker 运行

在项目根目录 .env 文件中配置 SERVERS_JSON 后:

docker compose up -d --build

访问 http://<主机IP>:8090/(PC 端)、http://<主机IP>:8090/m(移动端)。

安全建议(部署前必读)

  • 切勿将服务直接暴露在公网:本应用未内置登录认证与 CSRF 防护,任何能访问到它的人都可以远程关机 / 重启受控服务器。请仅部署在内网,并通过防火墙、VPN 或反向代理(BasicAuth 等)做访问控制。
  • 服务器凭据一律通过环境变量注入,不要写回代码或提交到仓库。
  • 代码中 AutoAddPolicy() 会自动接受未知主机指纹,存在中间人风险;对安全要求较高的环境请改为 RejectPolicy 并预置 known_hosts。
  • 建议 SSH 使用密钥认证代替密码认证。
  • 生产环境保持 FLASK_DEBUG 关闭(默认已关闭)。

项目结构

linux_controller/
├── app.py              # 主程序:Web 服务 + 状态采集 + 控制接口
├── templates/          # 页面模板(index.html PC 端 / m.html 移动端)
├── test.py             # SSH 连接测试脚本(凭据同样从环境变量读取)
├── requirements.txt    # Python 依赖
├── Dockerfile          # 容器构建
├── docker-compose.yml  # 编排配置
├── send.sh             # 部署传输脚本
└── .env.example        # 环境变量配置模板

安全漏洞

发现安全漏洞请勿提交公开 Issue,参见 SECURITY.md。

贡献

欢迎提交 Issue 与 Pull Request,贡献流程参见 CONTRIBUTING.md。

许可证

本项目基于 MIT License 开源。