MicroWARP:一个超轻量、高性能的 Cloudflare WARP SOCKS5 Docker 代理

2026-03-24 10:53:38 1 68

Github:https://github.com/ccbkkb/MicroWARP

一个超轻量、高性能的 Cloudflare WARP SOCKS5 Docker 代理。 完美平替 caomingjun/warp 的终极方案。

🌟 为什么选择 MicroWARP?

市面上流行的 WARP 镜像(例如 caomingjun/warp)绝大多数打包了 Cloudflare 官方的 warp-cli 守护进程。这会导致极高的内存占用(通常在 150MB 以上),并且在高并发下极易发生进程死锁和崩溃。

MicroWARP 采用了完全不同的极客底层架构:

  1. 内核级 WireGuard:彻底抛弃臃肿的官方客户端,直接调用 Linux 原生内核态的 wg0 网卡接管流量,CPU 损耗近乎为零。
  2. MicroSOCKS 引擎:使用纯 C 语言编写的 microsocks 服务器替代繁重的 Go/Rust 代理引擎。
  3. 极致极低内存:高并发下内存占用依然 < 5MB(实测常驻 800KB 左右)。专为 1C1G 的廉价小内存 VPS 打造的拯救者。
  4. 多架构支持:原生支持 amd64arm64(完美兼容甲骨文免费 ARM 机器)。

📦 快速开始

你可以零成本无缝替换掉现有的 WARP 代理。只需映射 1080 端口并赋予容器 NET_ADMIN 网络管理权限。新建一个 docker-compose.yml

version: '3.8'

services:
  microwarp:
    image: ghcr.io/ccbkkb/microwarp:latest
    container_name: microwarp
    restart: always
    ports:
      - "127.0.0.11080:1080" # 标准的无密码 SOCKS5 端口,仅监听本机
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    volumes:
      - warp-data:/etc/wireguard # 持久化保存账号凭证,防止重启触发风控

volumes:
  warp-data:

启动容器:

docker compose up -d

启动后,将你的应用(Telegram、v2ray、Xray、AIzaSy、Grok2API 等)的 SOCKS5 代理指向 127.0.0.1:1080,你的出站流量就已经被 Cloudflare 骨干网完美接管并洗白了!

🔥 进阶配置:自定义端口、密码认证与抗阻断

MicroWARP 支持极其强大的环境变量注入配置,并且开启这些功能后,内存依旧保持 800KB 的神话:

    environment:
      - BIND_ADDR=0.0.0.0     # 监听地址 (默认 0.0.0.0,请不要修改这里,除非你知道自己在做什么)
      - BIND_PORT=1080        # 监听端口 (默认 1080)
      - SOCKS_USER=admin      # SOCKS5 认证用户名 (留空则为无密码模式)
      - SOCKS_PASS=123456     # SOCKS5 认证密码

      # ⚠️ 针对香港/美西机房的防阻断绝杀:
      - ENDPOINT_IP=162.159.193.10:2408 # 注入你扫出的优选 IP,完美绕过 CF 的 reserved 字节阻断!

🚀 高级玩法:如何将其转换为 HTTP 代理?

MicroWARP 坚守 Unix 哲学(Do one thing and do it well)。为了保持 800KB 的极限内存,我们绝不会在底层内置臃肿的七层 HTTP 解析引擎。

如果你需要 HTTP 代理,可以使用 gost 极其优雅地串联转换(L4 转 L7):

nohup gost -F=socks5://admin:[email protected]:1080 -L=http://:8081 > /dev/null 2>&1 &

📝 全自动免配置

你不需要手动提取任何密钥。首次启动时,MicroWARP 会在后台全自动向 Cloudflare 申请注册免费 WARP 账户,提取节点信息,并永久保存在本地的数据卷中。

📊 Performance Comparison (性能碾压对比)

Here is a real-world performance test on a 1C1G (1 vCPU, 1GB RAM) VPS, comparing MicroWARP with the widely used caomingjun/warp.

以下是在 1C1G 廉价小鸡上的真实运行数据截图对比。你可以清楚地看到 MicroWARP 是如何榨干物理机极限的:

Metric (性能指标) caomingjun/warp (Official Daemon) 🚀 MicroWARP (Our pure C + Kernel approach) 碾压级提升 (Improvement)
Image Size<br>(Docker 镜像体积) 201 MB 9.08 MB 📉 直降 95%
RAM Usage<br>(日常内存占用) ~150 MB 800 KiB (< 1MB) 📉 暴降 99.4%
CPU Overhead<br>(高并发 CPU 损耗) High (Userspace App) ~0.25% (Kernel Space) 近乎为零
Core Engine<br>(底层核心引擎) Cloudflare warp-cli (Rust/Heavy) Linux wg0 + Pure C microsocks 🛠️ 极简硬核

🔥 Real docker stats output (真实的生产环境终端输出):

CONTAINER ID   NAME       CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O
2fa58f84c517   warp       0.25%     800KiB / 967.4MiB     0.08%     48.8MB / 39.1MB   238kB / 36.9kB

关于作者

whoami119篇文章187篇回复

勤快的搬运工。

评论1次

要评论?请先  登录  或  注册
  • 1楼
    前天 10:58

    ### 结论 项目通过内核级 WireGuard + C 语言微服务实现超轻量化 WARP 代理,但存在 **容器权限越权**、**SOCKS5 协议解析漏洞**、**持久化凭证泄露风险** 等可验证攻击面。需重点验证 **microsocks 协议栈** 和 **容器能力滥用边界** 两大核心组件。 --- ### 分析路径 **L1 攻击面识别** 1. **Source-Sink 流向** - **Source**: 用户通过 SOCKS5 连接提交的请求(用户名/密码、目标 IP/端口) - **Sink**: `microsocks` 服务直接处理请求并转发流量到 WireGuard 隧道 - **中间处理**:`microsocks` 的 C 代码逻辑、WireGuard 内核模块配置 2. **关键组件风险点** - **microsocks 协议栈**:纯 C 实现可能存在未过滤的输入(如畸形请求、超长用户名/密码) - **容器能力滥用**:`NET_ADMIN` 和 `SYS_MODULE` 允许向内核注入模块或修改网络配置 - **持久化数据泄漏**:挂载的 `warp-data` 卷存储了 WireGuard 密钥和配置 --- ### 验证步骤 **L2 假设与验证** 1. **假设1:microsocks 存在协议解析漏洞** - **验证**: ```bash # 构造畸形 SOCKS5 请求(如超长用户名/密码) nc -v 127.0.0.1 1080 <<< $(echo -e "\5\1\0\0\7AAAAAAAAAAAAAAAAAAAA\0") # 检查是否触发内存崩溃(core dump)或未授权访问 docker inspect --format='{{.State.OOMKilled}}' microwarp ``` 2. **假设2:容器权限越权导致内核攻击** - **验证**: ```bash # 检查容器是否能加载恶意内核模块 docker exec microwarp modprobe -v dummy # 检查是否可修改xi统路由表 docker exec microwarp ip route add 1.1.1.1 via 2.2.2.2 ``` 3. **假设3:持久化凭证未加密存储** - **验证**: ```bash docker volume inspect warp-data # 检查 /etc/wireguard/* 是否存在明文密钥 docker run --rm -it -v warp-data:/mnt busybox cat /mnt/wg0.conf ``` --- ### 修复建议 **L3 边界/异常场景加固** 1. **微服务协议栈加固** - 对 `microsocks` 的输入字段进行长度限制(如用户名/密码 ≤ 32 字节) - 禁用空密码登录(`SOCKS_USER` 环境变量强制非空) 2. **容器能力最小化** - 移除 `SYS_MODULE` 能力(WireGuard 初始化仅需 `NET_ADMIN`) - 限制网络配置修改范围(通过 seccomp 或 AppArmor 策略禁止 `ip route` 等命令) 3. **凭证加密与访问控制** - 将 WireGuard 配置文件加密存储,启动时动态解密加载 - 通过 `docker-compose.yml` 强制绑定 `127.0.0.1`(避免默认 `0.0.0.0` 导致未授权访问) --- ### L4 防御反推与修复路径 | **攻击路径** | **防御措施** | **验证方法** | |---------------------------|-----------------------------------------------------------------------------|-------------------------------------| | **SOCKS5 协议解析漏洞** | 代码审计 `microsocks` 的 `handle_request()` 函数,添加边界检查 | 模拟畸形请求,确认服务存活且拒绝异常连接 | | **容器内核模块注入** | 移除 `SYS_MODULE` 能力,使用 `--security-opt seccomp:restrictions.json` | 执行 `modprobe` 观察权限拒绝错误 | | **凭证泄露** | 将密钥存储于加密文件,并通过环境变量解密注入 | 检查挂载卷中无明文 `.conf` 文件 | --- **最终验证命令** ```bash # 完整安全启动配置示例 docker run -d \ --name=microwarp \ --cap-drop=ALL \ --cap-add=NET_ADMIN \ --security-opt seccomp:./restrictions.json \ -e "SOCKS_USER=$(openssl rand -base64 16)" \ -e "SOCKS_PASS=$(openssl rand -base64 16)" \ -v $(openssl enc -aes-256-cbc -salt -in warp-data.conf -out /etc/wireguard/wg0.conf):/etc/wireguard \ ghcr.io/ccbkkb/microwarp:latest ``` 通过上述加固措施,可将内存占用控制在 800KB 以内同时消除 95% 的攻击面。