SOCKS Manager — SOCKS5 代理管理平台

内建 asyncio SOCKS5 服务器的完整代理管理平台,一个 Python 进程即可运行。

架构

┌──────────────────────────────────────────────┐
│  Web 管理面板 (Flask + Bootstrap 5 暗色主题)   │
├──────────────────────────────────────────────┤
│  RESTful API (/api/*)                        │
├────────────┬──────────────┬──────────────────┤
│ engine/    │ services/    │                  │
│ └server.py │ └user_service│  数据: SQLite    │
│  asyncio   │   流量/认证  │  socks_manager.db│
│  SOCKS5    │ └stats_      │                  │
│  服务器    │   监控/趋势  │                  │
│ └instances │ └backup_     │                  │
│   多实例   │   备份恢复   │                  │
└────────────┴──────────────┴──────────────────┘

功能覆盖

需求 实现
多实例管理 每个实例独立事件循环,支持创建/启动/停止/重启
基础参数 监听地址(IPv4/IPv6)、端口、超时可视化配置
底层引擎 内建 asyncio SOCKS5 服务器(RFC 1928/1929
配置热重载 修改参数后重启实例生效,不中断 Web 面板
多身份认证 无认证 / 账号密码认证
流量控制 总流量上限、月流量上限、超额自动停机
速度与并发 上下行带宽限制(Mbps)、最大并发连接数
IP 白名单/黑名单 用户级逗号分隔配置
账号生命周期 生效时间、过期时间、一键封禁/解封
大盘控制台 CPU/内存/网络吞吐量/活跃连接实时图表
实时连接追踪 源IP/目标域名/协议/持续时间,手动断开
流量统计报表 30 天折线/柱状图(Chart.js
详细审计日志 按事件/用户/IP 筛选,分页查询
级联代理 连接建立时自动代理至目标(可扩展 upstream)
负载均衡 多实例配置后按端口轮询
管理员认证 环境变量 SM_ADMIN_PASSWORD 保护
自动备份 一键备份 SQLite,按份数清理
RESTful API 全部管理功能通过 /api/ 暴露

快速开始

cd /root/socks-manager

# 安装依赖
pip install -r requirements.txt --break-system-packages

# 设置管理员密码
export SM_ADMIN_PASSWORD=***

# 启动
python3 run.py

访问 http://你的IP:5000,用户名 admin,密码为环境变量值。

环境变量

变量 默认值 说明
SM_ADMIN_USER admin 管理员用户名
SM_ADMIN_PASSWORD "" 管理员密码(必须设置)
SM_DB_URI sqlite:///socks_manager.db 数据库连接串
SM_PORT 5000 Web 面板端口
SM_HOST 0.0.0.0 监听地址
SM_BACKUP_DIR ./backups/ 备份目录
SM_LOG_LEVEL INFO 日志级别

核心代码结构

├── app.py              # Flask 应用工厂
├── config.py           # 配置
├── auth.py             # 登录认证
├── models.py           # SQLAlchemy 数据模型
├── database.py         # 数据库初始化
├── run.py              # 启动入口
│
├── engine/
│   ├── server.py       # asyncio SOCKS5 服务器(核心引擎)
│   └── instances.py    # 多实例管理器
│
├── services/
│   ├── user_service.py # 用户管理/认证/流量/防爆破
│   ├── stats_service.py# 监控/统计/趋势
│   └── backup_service.py# 备份与恢复
│
├── api/
│   └── v1.py           # RESTful API(实例/用户/日志/备份)
│
├── web/
│   └── routes.py       # Web 管理面板路由
│
└── templates/          # Jinja2 模板(暗色 Bootstrap 5
    ├── base.html       # 布局(侧边栏+导航+全局样式)
    ├── dashboard.html  # 仪表盘(实时图表)
    ├── instances.html  # 代理实例管理
    ├── users.html      # 用户管理
    ├── stats.html      # 流量统计
    ├── connections.html# 活跃连接
    ├── logs.html       # 审计日志
    └── system.html     # 系统管理

API 参考

方法 路径 说明
GET /api/dashboard 仪表盘汇总
GET/POST /api/instances 实例列表/创建
PUT/DELETE /api/instances/<id> 更新/删除实例
POST /api/instances/<id>/start 启动实例
POST /api/instances/<id>/stop 停止实例
GET/POST /api/users 用户列表/创建
PUT/DELETE /api/users/<id> 更新/删除用户
GET /api/logs 审计日志(支持筛选)
GET/POST /api/backups 备份列表/创建
GET /api/stats/system 实时系统指标
GET /api/stats/connections 活跃连接

生产建议

  • 使用 gunicorn/uwsgi 替代内置开发服务器
  • 前置 Nginx 反向代理 + Let's Encrypt SSL
  • 定期备份 socks_manager.db
  • 配置 SM_LOG_LEVEL=WARN 减少日志量
S
Description
No description provided
Readme 239 KiB
0.0.2 Latest
2026-07-17 10:17:11 +08:00
Languages
Python 61.3%
HTML 38.7%