Files
socks-manager/run.py
T
Your Name 06470512f6 深度优化: 修复跨服务器登录、密码哈希、仪表盘UI、流量趋势等12项问题
### 严重修复
1. 跨服务器无法登录 - 新增SESSION_COOKIE_DOMAIN/SECURE/NAME配置
2. SOCKS5用户密码明文存储→bcrypt哈希(兼容自动迁移)
3. 仪表盘审计日志不显示→替换为空循环为真实API加载
4. 管理员登录防爆破未生效→auth.py集成check_fail2ban

### 中等问题修复
5. 流量趋势图表无数据→新增record_traffic_snapshot后台线程
6. 网络流量累计值跳变→新增基线差值机制
7. asyncio连接计数非线程安全→加锁保护

### 优化改进
8. API密钥页面截断文本修复
9. 新增gunicorn/bcrypt依赖
10. 更新README环境变量文档和生产建议
11. 登录密码常量时间对比防时序攻击
12. 仪表盘图表添加animation:false防卡顿
2026-07-16 22:13:14 +08:00

40 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""SOCKS Manager — 启动入口。"""
import os
import sys
from app import create_app
app = create_app()
if __name__ == "__main__":
port = int(os.environ.get("SM_PORT", 5000))
host = os.environ.get("SM_HOST", "0.0.0.0")
debug = os.environ.get("SM_DEBUG", "false").lower() == "true"
# 启动时同步实例
app.instance_manager.sync_instances()
# 记录流量快照
from services.stats_service import record_traffic_snapshot
import threading
def _snapshot_loop():
import time
while True:
try:
record_traffic_snapshot()
except Exception:
pass
time.sleep(3600) # 每小时记录一次
t = threading.Thread(target=_snapshot_loop, daemon=True, name="traffic-snapshot")
t.start()
print(f"\n ╔══════════════════════════════════════════╗")
print(f" ║ SOCKS Manager — 代理管理平台 ║")
print(f" ║ 面板: http://{host}:{port}")
print(f" ║ 用户: admin ║")
pwd = os.environ.get("SM_ADMIN_PASSWORD", "")
print(f" ║ 密码: {'*' * len(pwd) if pwd else '未设置(请先设 SM_ADMIN_PASSWORD)'}{' '*(20-len(pwd) if pwd else 22)}")
print(f" ╚══════════════════════════════════════════╝\n")
app.run(host=host, port=port, debug=debug, use_reloader=False)