常见问题
安装和配置
Q: Docker 启动失败怎么办?
A: 检查以下几点:
Docker 服务是否运行
docker info端口是否被占用 ```bash
Linux/macOS
lsof -i :3000 lsof -i :8080
Windows
netstat -ano | findstr :3000
3. **查看容器日志**
```bash
docker-compose logs [service-name]
Q: 数据库连接失败
A:
检查 MySQL 是否正常运行
docker-compose ps mysql docker-compose logs mysql验证数据库连接信息 检查
.env文件中的配置:DB_HOST=mysql DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=mitm_service手动测试连接
docker-compose exec mysql mysql -u root -p
Q: Redis 连接失败
A:
检查 Redis 是否运行
docker-compose ps redis docker-compose logs redis测试 Redis 连接
docker-compose exec redis redis-cli ping # 应返回 PONG
代理相关
Q: MITM 代理无法拦截 HTTPS 请求
A:
安装 CA 证书
- 启动代理后访问 http://mitm.it
- 下载并安装对应平台的证书
- 将证书设置为受信任
检查浏览器代理设置
- HTTP Proxy: localhost:8080
- HTTPS Proxy: localhost:8080
查看代理日志
docker-compose logs mitm-proxy
Q: 如何配置上游代理?
A: 在 mitm-ext/config/config.yaml 中配置:
upstream:
enabled: true
host: "upstream-proxy.example.com"
port: 8888
Q: 代理性能慢
A:
增加 worker 数量 在配置文件中调整 worker 数量
检查网络延迟
ping target-server.com优化规则 减少不必要的拦截规则
Cookie Manager
Q: 登录任务一直失败
A:
查看任务日志
docker-compose logs cookie-manager检查站点配置 确保登录选择器配置正确
手动测试登录流程
cd cookie-manager npm run test:login常见原因:
- 验证码问题
- 登录选择器变更
- 网络超时
- 账号密码错误
Q: 浏览器池耗尽
A:
增加浏览器池大小 在
.env中设置:BROWSER_POOL_SIZE=10检查浏览器是否正常关闭
docker-compose exec cookie-manager ps aux | grep chrome重启服务清理僵尸进程
docker-compose restart cookie-manager
Q: Cookie 过期太快
A:
增加更新频率 配置定时任务更频繁地更新 Cookie
检查 Redis 配置 确保 Redis 没有设置过短的 TTL
API 相关
Q: API 返回 401 Unauthorized
A:
检查 Token 是否有效
curl -H "Authorization: Bearer YOUR_TOKEN" \ http://localhost/api/user/profileToken 是否过期 重新登录获取新 Token
检查 JWT_SECRET 配置 确保各服务使用相同的 JWT_SECRET
Q: API 响应慢
A:
检查数据库查询 查看慢查询日志
启用缓存 确保 Redis 缓存已启用
优化查询 添加必要的索引
Q: CORS 错误
A:
在 web-service/.env 中配置:
CORS_ORIGIN=http://localhost:8080,https://yourdomain.com
部署相关
Q: 如何升级到新版本?
A:
# 1. 备份数据
docker-compose exec mysql mysqldump -u root -p mitm_service > backup.sql
# 2. 拉取最新代码
git pull origin main
# 3. 重新构建
docker-compose build
# 4. 重启服务
docker-compose down
docker-compose up -d
# 5. 运行迁移
docker-compose exec web-service npm run migrate
Q: 如何回滚到旧版本?
A:
# 1. 检出旧版本
git checkout v1.0.0
# 2. 重新部署
docker-compose down
docker-compose up -d
# 3. 恢复数据库(如需要)
docker-compose exec -T mysql mysql -u root -p mitm_service < backup.sql
Q: 生产环境部署注意事项
A:
修改默认密码
- 数据库密码
- Redis 密码
- JWT Secret
启用 HTTPS
- 配置 SSL 证书
- 强制 HTTPS 跳转
配置防火墙
- 只开放必要端口
- 配置访问白名单
设置资源限制
services: web-service: deploy: resources: limits: cpus: '2' memory: 2G配置监控
- 日志收集
- 性能监控
- 告警通知
性能优化
Q: 如何提高并发处理能力?
A:
增加实例数量
services: web-service: scale: 3启用集群模式 配置 PM2 集群模式
优化数据库
- 添加索引
- 配置读写分离
- 启用查询缓存
使用 Redis 缓存 缓存热点数据
Q: 内存占用高怎么办?
A:
检查内存泄漏
docker stats限制容器内存
services: web-service: mem_limit: 1g优化浏览器池 减小浏览器池大小或启用 headless 模式
清理日志
docker system prune -a
开发相关
Q: 如何调试代码?
A:
- Web Service / Cookie Manager
```bash
启动调试模式
cd web-service npm run dev:debug
VS Code launch.json
{ "type": "node", "request": "attach", "name": "Attach to Node", "port": 9229 }
2. **MITM Proxy**
```bash
cd mitm-ext
python start_debug.py
Q: 如何添加新的登录站点?
A:
创建站点配置 在数据库中添加站点记录
配置登录选择器
{ "usernameSelector": "#username", "passwordSelector": "#password", "submitSelector": "#login-btn", "successSelector": ".user-profile" }添加登录脚本 在
cookie-manager/jobs/下添加站点特定逻辑
Q: 如何编写自定义 MITM 插件?
A:
创建插件文件 mitm-ext/addons/my_addon.py:
from mitmproxy import http
class MyAddon:
def request(self, flow: http.HTTPFlow) -> None:
# 处理请求
pass
def response(self, flow: http.HTTPFlow) -> None:
# 处理响应
pass
addons = [MyAddon()]
加载插件:
mitmdump -s addons/my_addon.py
安全相关
Q: 如何保护敏感数据?
A:
加密存储
- 使用 bcrypt 加密密码
- Cookie 加密存储
环境变量 不要将敏感信息提交到代码库
HTTPS 传输 生产环境必须使用 HTTPS
Q: 如何防止未授权访问?
A:
启用 JWT 认证 所有 API 都需要 Token
配置 IP 白名单
allow 192.168.1.0/24; deny all;使用 API Key 为第三方集成生成 API Key
其他问题
Q: 如何查看完整日志?
A:
# 查看所有服务日志
docker-compose logs
# 查看特定服务日志
docker-compose logs web-service
# 实时查看日志
docker-compose logs -f
# 查看最近 N 行
docker-compose logs --tail=100
Q: 如何清理无用数据?
A:
# 清理 Docker 资源
docker system prune -a
# 清理数据库
mysql> DELETE FROM request_logs WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY);
# 清理 Redis
redis-cli FLUSHDB
Q: 如何监控服务状态?
A:
使用 Docker 监控
docker stats健康检查
curl http://localhost/api/health集成监控工具
- Prometheus
- Grafana
- ELK Stack
获取更多帮助
- 📖 完整文档
- 💬 GitHub Issues
- 📧 Email: [email protected]