Squid 代理管理系统
基于 Flask 的 Squid 代理用户管理界面,提供 Web 界面管理 Squid 代理用户和配置。
功能特性
- 🛡️ 基于 Basic Auth 的管理员认证
- 👥 代理用户管理(增删改查、启用/禁用)
- ⚙️ 代理服务器配置管理
- 📊 用户统计仪表盘
- 🐳 Docker 容器化部署
- 📝 配置文件持久化存储
快速部署
前提条件
- Docker 20.10+
- Docker Compose 2.0+
- 开放端口 51822 (Squid) 和 51823 (Web UI)
部署步骤
-
准备持久化目录
在项目根目录执行:mkdir -p config log chown 31:31 log # Squid 默认使用 squid 用户(UID 31) -
构建镜像
分别构建两个服务的镜像:# 构建 Web UI 镜像 docker build -t squid-ui:latest . # 构建 Squid 镜像 cd squid && docker build -t squid:latest . cd .. -
初始化配置文件
首次运行前需要准备基础配置:touch config/squid_passwd cat > config/config.json <<EOF { "admin_password": "admin123", "proxy_address": "0.0.0.0", "proxy_port": "3128" } EOF -
启动服务
通过 compose 启动服务:docker-compose up -d -
验证服务状态
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
升级指南
-
停止服务:
docker-compose down -
备份配置:
cp -r config config_backup_$(date +%Y%m%d) -
按上述步骤重新构建和启动
管理指南
添加新用户
- 登录管理界面
- 导航到 "客户端管理"
- 点击 "添加用户"
- 输入用户名和密码
- 点击保存
修改代理设置
- 登录管理界面
- 导航到 "系统设置"
- 修改以下参数:
- 管理员密码
- 代理服务器地址
- 代理服务器端口
- 点击 "保存设置"
查看日志
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
v1.0
Latest
Languages
HTML
47.8%
Python
26.4%
CSS
22.1%
Dockerfile
2.8%
Shell
0.9%