2025-06-24 21:54:16 +08:00
2025-07-29 11:05:22 +08:00
2025-07-29 11:05:22 +08:00
2025-06-24 10:12:17 +08:00
2025-07-29 13:36:03 +08:00
2025-06-24 21:40:57 +08:00
2025-06-24 10:23:01 +08:00
2025-06-25 11:59:04 +08:00
2025-07-29 11:05:22 +08:00

Squid 代理管理系统

徽章 徽章 徽章 徽章

基于 Flask 的 Squid 代理用户管理界面,提供 Web 界面管理 Squid 代理用户和配置。

功能特性

  • 🛡️ 基于 Basic Auth 的管理员认证
  • 👥 代理用户管理(增删改查、启用/禁用)
  • ⚙️ 代理服务器配置管理
  • 📊 用户统计仪表盘
  • 🐳 Docker 容器化部署
  • 📝 配置文件持久化存储

快速部署

前提条件

  • Docker 20.10+
  • Docker Compose 2.0+
  • 开放端口 51822 (Squid) 和 51823 (Web UI)

部署步骤

  1. 准备持久化目录
    在项目根目录执行:

    mkdir -p config log
    chown 31:31 log  # Squid 默认使用 squid 用户(UID 31)
    
  2. 构建镜像
    分别构建两个服务的镜像:

    # 构建 Web UI 镜像
    docker build -t squid-ui:latest .
    
    # 构建 Squid 镜像
    cd squid && docker build -t squid:latest .
    cd ..
    
  3. 初始化配置文件
    首次运行前需要准备基础配置:

    touch config/squid_passwd
    cat > config/config.json <<EOF
    {
      "admin_password": "admin123",
      "proxy_address": "0.0.0.0",
      "proxy_port": "3128"
    }
    EOF
    
  4. 启动服务
    通过 compose 启动服务:

    docker-compose up -d
    
  5. 验证服务状态

    docker-compose ps
    

    应该看到两个服务状态均为 running

访问管理界面

http://your-server-ip:51823

默认管理员凭证:

  • 用户名: admin
  • 密码: admin123

配置代理客户端

代理地址: your-server-ip
端口: 51822
认证方式: 用户名/密码

持久化存储说明

目录/文件 用途 权限要求
./config 存储所有配置文件 默认
./config/squid_passwd 用户认证文件 容器内可读写
./log Squid 日志目录 必须设置为 31:31 (squid用户)

常见问题

权限问题排查

如果 Squid 容器启动失败,检查日志目录权限:

ls -ld log

正确输出应该类似:

drwxr-xr-x 2 31 31 4096 Jan 1 00:00 log

修复命令:

chown -R 31:31 log

重新构建镜像

当代码更新后需要重新构建:

docker-compose down
docker build -t squid-ui:latest .
cd squid && docker build -t squid:latest .
cd ..
docker-compose up -d

升级指南

  1. 停止服务:

    docker-compose down
    
  2. 备份配置:

    cp -r config config_backup_$(date +%Y%m%d)
    
  3. 按上述步骤重新构建和启动

管理指南

添加新用户

  1. 登录管理界面
  2. 导航到 "客户端管理"
  3. 点击 "添加用户"
  4. 输入用户名和密码
  5. 点击保存

修改代理设置

  1. 登录管理界面
  2. 导航到 "系统设置"
  3. 修改以下参数:
    • 管理员密码
    • 代理服务器地址
    • 代理服务器端口
  4. 点击 "保存设置"

查看日志

Squid 日志位于主机上的 ./log 目录:

tail -f ./log/access.log

常见问题

Q: 为什么我的代理连接被拒绝?
A: 检查:

  • Squid 容器是否正常运行 (docker ps)
  • 用户是否已激活
  • 防火墙是否允许 51822 端口

Q: 如何重置管理员密码?
A: 编辑 config/config.json 文件中的 admin_password 字段

许可证

MIT License

Copyright (c) 2025 Jeazw

Description
No description provided
Readme 4.8 MiB
v1.0 Latest
2025-06-24 10:38:28 +08:00
Languages
HTML 47.8%
Python 26.4%
CSS 22.1%
Dockerfile 2.8%
Shell 0.9%