环境配置

系统要求

最低配置

  • 操作系统: Linux / macOS / Windows 10+
  • CPU: 2 核心
  • 内存: 4 GB RAM
  • 磁盘: 20 GB 可用空间

推荐配置

  • 操作系统: Ubuntu 20.04+ / macOS 12+ / Windows 11
  • CPU: 4 核心或以上
  • 内存: 8 GB RAM 或以上
  • 磁盘: 50 GB SSD

软件依赖

必需软件

Docker & Docker Compose

Linux (Ubuntu/Debian):

# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

macOS:

# 使用 Homebrew 安装
brew install docker docker-compose

# 或下载 Docker Desktop for Mac
# https://www.docker.com/products/docker-desktop

Windows:

Git

Linux:

sudo apt-get update
sudo apt-get install git

macOS:

brew install git

Windows:

开发环境(可选)

如果您想在开发模式下运行,还需要:

Node.js

推荐版本: 18.x LTS

Linux/macOS:

# 使用 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 18
nvm use 18

Windows:

Python

推荐版本: 3.8+

Linux:

sudo apt-get install python3 python3-pip python3-venv

macOS:

brew install [email protected]

Windows:

MySQL (开发环境)

推荐版本: 8.0+

Linux:

sudo apt-get install mysql-server

macOS:

brew install mysql
brew services start mysql

Redis (开发环境)

推荐版本: 6.0+

Linux:

sudo apt-get install redis-server
sudo systemctl start redis

macOS:

brew install redis
brew services start redis

环境变量配置

Web Service (.env)

创建 web-service/.env:

# 服务配置
NODE_ENV=development
PORT=3000
HOST=0.0.0.0

# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_mysql_password
DB_NAME=mitm_service
DB_DIALECT=mysql
DB_POOL_MAX=10
DB_POOL_MIN=0
DB_POOL_ACQUIRE=30000
DB_POOL_IDLE=10000

# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0

# JWT 配置
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRES_IN=7d

# 日志配置
LOG_LEVEL=info
LOG_DIR=./logs

# CORS 配置
CORS_ORIGIN=*

# Cookie Manager 服务地址
COOKIE_MANAGER_URL=http://localhost:3001

创建 cookie-manager/.env:

# 服务配置
NODE_ENV=development
PORT=3001
HOST=0.0.0.0

# 数据库配置 (同 Web Service)
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_mysql_password
DB_NAME=mitm_service

# Redis 配置 (同 Web Service)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0

# 浏览器配置
BROWSER_HEADLESS=true
BROWSER_POOL_SIZE=5
BROWSER_TIMEOUT=30000
BROWSER_USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)

# 任务队列配置
QUEUE_CONCURRENCY=3
QUEUE_MAX_ATTEMPTS=3
QUEUE_BACKOFF_DELAY=5000

# 日志配置
LOG_LEVEL=info
LOG_DIR=./logs

MITM Proxy 配置

创建 mitm-ext/config/config.yaml:

# 代理配置
proxy:
  listen_host: "0.0.0.0"
  listen_port: 8080
  mode: "regular"  # regular, upstream, reverse

# 上游代理 (可选)
upstream:
  enabled: false
  host: ""
  port: 0

# 证书配置
certificates:
  dir: "~/.mitmproxy"

# 插件配置
addons:
  - name: "cookie_injector"
    enabled: true
    config:
      api_url: "http://localhost:3000/api"

  - name: "request_logger"
    enabled: true
    config:
      log_file: "./logs/requests.log"

# 过滤规则
filters:
  # 只拦截特定域名
  include_domains:
    - "example.com"
    - "api.example.com"

  # 排除特定域名
  exclude_domains:
    - "google.com"
    - "facebook.com"

  # 只拦截特定路径
  include_paths:
    - "/api/*"

# 日志配置
logging:
  level: "INFO"  # DEBUG, INFO, WARN, ERROR
  format: "json"
  file: "./logs/mitm.log"

数据库初始化

创建数据库

mysql -u root -p
-- 创建数据库
CREATE DATABASE mitm_service CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户并授权
CREATE USER 'mitm_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON mitm_service.* TO 'mitm_user'@'localhost';
FLUSH PRIVILEGES;

运行迁移

cd web-service
npm run migrate

验证环境

检查 Docker

docker --version
docker-compose --version

检查 Node.js

node --version
npm --version

检查 Python

python3 --version
pip3 --version

检查数据库连接

MySQL:

mysql -u root -p -e "SELECT VERSION();"

Redis:

redis-cli ping
# 应返回 PONG

防火墙配置

如果您使用防火墙,需要开放以下端口:

# Linux (ufw)
sudo ufw allow 80/tcp      # Nginx
sudo ufw allow 443/tcp     # Nginx HTTPS
sudo ufw allow 3000/tcp    # Web Service
sudo ufw allow 3001/tcp    # Cookie Manager
sudo ufw allow 8080/tcp    # MITM Proxy

# Linux (firewalld)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --permanent --add-port=3001/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

代理配置

系统代理

macOS:

# 设置 HTTP/HTTPS 代理
networksetup -setwebproxy "Wi-Fi" localhost 8080
networksetup -setsecurewebproxy "Wi-Fi" localhost 8080

# 取消代理
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off

Linux:

# 临时设置
export http_proxy=http://localhost:8080
export https_proxy=http://localhost:8080

# 永久设置 (添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export http_proxy=http://localhost:8080' >> ~/.bashrc
echo 'export https_proxy=http://localhost:8080' >> ~/.bashrc

Windows:

  • 设置 → 网络和 Internet → 代理
  • 手动设置代理:localhost:8080

常见问题

端口被占用

查找占用端口的进程:

# Linux/macOS
lsof -i :3000
lsof -i :8080

# Windows
netstat -ano | findstr :3000

杀掉占用进程:

# Linux/macOS
kill -9 <PID>

# Windows
taskkill /PID <PID> /F

Docker 权限问题

# 将当前用户加入 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行
newgrp docker

Node.js 版本不匹配

# 使用 nvm 切换版本
nvm install 18
nvm use 18

下一步

results matching ""

    No results matching ""