mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-22 08:00:59 +00:00
Rebuilt-from-PR: #6488 Source-PR: #6488 Maintainer-workflow: appstore-pr-maintainer - Consolidate fixed rotator variants onto one numeric version line. - Add ALLOW_NO_AUTH form/env handling and preserve existing upgrade values. - Pin the fixed MicroWARP image to the verified multi-architecture digest. - Keep the rolling aliases and HTTP/rotator variants. Runtime evidence: - 1Panel upgrade smoke: rotator-latest -> 0.3.1-rotator: passed - 1Panel upgrade smoke: rotator-http-latest -> 0.3.1-rotator-http: passed - Upgrade compatibility cases: missing/0/1 ALLOW_NO_AUTH and idempotent rerun: passed - YAML, shell, Compose, and repository Renovate tests: passed Residual security review: - Candidate fixed image scan: Critical=1, High=12; baseline 0.2.0 scan: Critical=0, High=0. - This accepted-risk update is disclosed in the app README; deployment should be restricted and the upstream image monitored. - Existing strict validator app_data_dir diagnostics are present in the unchanged baseline scripts and were not introduced here.
MicroWARP(1Panel v2)
基于 ghcr.io/ccbkkb/microwarp 的轻量级 Cloudflare WARP 代理封装,统一收敛为 microwarp 单 key,并提供官方原版与定时轮换变体。
产品介绍
MicroWARP 将 Cloudflare WARP 封装为可在 1Panel 中直接部署的 SOCKS5 代理;HTTP 变体通过 GOST 额外提供 HTTP 代理端口,rotator 变体负责定时重建 WARP 身份。
主要功能
- 支持 SOCKS5 代理及可选用户名、密码认证
- 支持 SOCKS5-only、SOCKS5 + HTTP、定时轮换三类组合
- 轮换前后通过代理检查真实出口 IPv4,并在同 IP 或检查失败时重试
- 重试耗尽后恢复上一次可用 WireGuard 配置
访问说明
- SOCKS5 端口由
PANEL_APP_PORT_SOCKS5配置 - HTTP 变体的 HTTP 代理端口由
PANEL_APP_PORT_HTTP_PROXY配置 - 代理服务不提供 Web 管理界面;请使用对应端口和 SOCKS5/HTTP 客户端连接
- 默认不启用认证;
ALLOW_NO_AUTH已在安装表单中提供,默认值为1以兼容旧版行为。设置为0时必须同时设置SOCKS_USER与SOCKS_PASS,公网部署建议启用认证。 SOCKS_USER与SOCKS_PASS必须成对设置;表单中的ALLOW_NO_AUTH会原样传入容器。
版本说明
latest
- 官方原版
- 仅提供 SOCKS5 代理
- 不做自动 IP 轮换,适合需要稳定出口身份的场景
http-latest
- 官方原版增强变体
- 在 SOCKS5 基础上额外提供 HTTP 代理端口
- 通过
gogost/gostsidecar 将 HTTP 转发到 SOCKS5
固定轮换变体
- 基于官方原版增加定时 WARP 身份重建
- 使用固定版本镜像,避免滚动标签变化影响已有部署
- 轮换通过删除旧
wg0.conf与账号缓存后重新执行上游初始化完成 - 每次轮换都会通过 SOCKS5 代理读取出口 IPv4;出口未变化或无法确认时自动重试
- 达到尝试次数仍没有新出口时恢复上一次可用配置,避免留下不可用代理
- 轮换时会有秒级短暂中断
固定轮换 HTTP 变体
- 在固定轮换变体基础上额外提供 HTTP 代理端口
安装建议
- 只需官方 SOCKS5:安装
latest - 需官方 SOCKS5 + HTTP:安装
http-latest - 需要定时切换 WARP 身份:安装
rotator-latest - 需要定时切换并同时提供 HTTP:安装
rotator-http-latest
核心参数
PANEL_APP_PORT_SOCKS5:SOCKS5 对外端口PANEL_APP_PORT_HTTP_PROXY:HTTP 代理端口,仅 HTTP 变体使用APP_DATA_DIR_1:WireGuard 持久化目录,保存wg0.conf与wgcf注册信息SOCKS_USER/SOCKS_PASS:启用 SOCKS5 认证ENDPOINT_IP:手动覆盖 WARP EndpointGH_PROXY:辅助wgcf下载TAILSCALE_CIDR:Tailscale 回程路由 CIDR,默认100.64.0.0/10MTU:WireGuard MTU,默认1280WARP_WGCF_CONF:可选完整 WireGuard 配置内容;也可直接将wg0.conf放入持久化目录ROTATE_INTERVAL_MINUTES:轮换间隔(分钟),仅rotator-*版本使用,0表示关闭ROTATE_MAX_ATTEMPTS:单次轮换最多重建身份的次数,默认5ROTATE_RETRY_DELAY_SECONDS:轮换重试间隔(秒),默认5TEST_URL:启动时通过 SOCKS5 探测代理的 URLIP_CHECK_URL:读取出口 IPv4 的 URL,响应需要包含ip=<IPv4>,默认使用 Cloudflare trace
使用说明
- 默认使用外部网络
1panel-network - 首次启动会自动注册 WARP 设备并生成
/etc/wireguard/wg0.conf - 建议保留
APP_DATA_DIR_1持久化目录,避免每次重启都重新注册 - 官方镜像内部支持通过 GitHub token 缓解
wgcf版本查询的 API 限流,但本应用默认不在 1Panel 表单中暴露该参数,优先保持默认安装简洁稳定 - 如果设置了
WARP_WGCF_CONF,rotator-*版本会自动关闭定时轮换,因为该配置已固定出口身份 rotator-*版本的轮换逻辑是完整重建 WARP 身份,而不是调用上游并不存在的 rotate API;会比较轮换前后的真实出口 IPv4- 配置了
SOCKS_USER和SOCKS_PASS时,轮换检查会使用相同的 SOCKS5 认证
安全提示
维护侧使用 Trivy 对 microwarp 镜像做过漏洞扫描,当前报告包含 Critical=1、High=12、Total=13。请优先在可信内网中使用,并关注上游镜像更新。
高风险示例:
- CRITICAL CVE-2026-56854 / golang.org/x/crypto:修复版本 0.55.0;golang.org/x/crypto/ssh: golang.org/x/crypto/ssh: Authentication bypass due to unenforced source-address restrictions
- HIGH CVE-2026-56852 / golang.org/x/text:修复版本 0.39.0;golang.org/x/text: golang.org/x/text: Denial of Service via invalid UTF-8 input
- HIGH CVE-2026-27145 / stdlib:修复版本 1.25.11, 1.26.4;crypto/x509: golang: golang crypto/x509: Denial of Service via excessive processing of DNS SAN entries
- HIGH CVE-2026-33818 / stdlib:修复版本 1.25.13, 1.26.6, 1.27.0-rc.3;encoding/asn1: golang: Go encoding/asn1: Denial of Service via excessive recursion in Unmarshal
- HIGH CVE-2026-39821 / stdlib:修复版本 1.25.13, 1.26.6, 1.27.0-rc.3;golang.org/x/net/idna: golang: net/http: golang.org/x/net/idna: Privilege escalation via incorrect Punycode label processing
升级说明
- 升级旧安装时,如果
.env尚未有ALLOW_NO_AUTH,升级脚本会补写ALLOW_NO_AUTH=1;已有0或1会保留,不会覆盖用户选择。 - 已有
rotator-latest与rotator-http-latest安装可直接升级到对应的固定轮换变体,不需要中间版本;固定版本目录用于确保 1Panel 提供升级入口 - 升级会保留
APP_DATA_DIR_1中的wg0.conf、WARP 注册信息和用户自定义环境变量;升级前仍建议使用 1Panel 备份该目录 - 1Panel 升级脚本会将当前版本的
rotate.sh原子替换到已安装目录;若安装目录仍是旧脚本且无法定位新版载荷,升级会失败而不会继续运行旧轮换逻辑,重复执行则保持幂等 - 新增的
ROTATE_MAX_ATTEMPTS、ROTATE_RETRY_DELAY_SECONDS与IP_CHECK_URL在旧.env缺失时使用安全默认值,不会覆盖旧的轮换间隔、端口或认证配置 - 升级后首次轮换可能产生秒级中断;若出口 IP 无法变化或无法确认,程序会恢复上一份可用配置
Introduction
MicroWARP packages Cloudflare WARP as a 1Panel-ready SOCKS5 proxy. The HTTP variants add an HTTP proxy through GOST, while the rotator variants rebuild the WARP identity on a schedule and verify the real egress IPv4 through the proxy.
Features
- SOCKS5 proxy with optional username/password authentication
- SOCKS5-only, SOCKS5 + HTTP, and scheduled-rotation variants
- Egress IPv4 verification before and after each rotation
- Retries for unchanged or unverifiable egress, with rollback to the last working WireGuard configuration
Access
- Authentication is disabled by default;
ALLOW_NO_AUTHis exposed in the installation form and defaults to1for legacy compatibility. When set to0, bothSOCKS_USERandSOCKS_PASSmust be provided; authentication is recommended for public deployments. ALLOW_NO_AUTHis passed through from the form, andSOCKS_USERandSOCKS_PASSmust be configured together.
Upgrade notes
- When upgrading an existing installation whose
.envlacksALLOW_NO_AUTH, the upgrade script addsALLOW_NO_AUTH=1; an existing0or1is preserved. - Existing
rotator-latestandrotator-http-latestinstallations can upgrade directly to the corresponding fixed rotator variants; no intermediate version is required. The fixed package directories ensure that 1Panel exposes a real upgrade path. - The upgrade preserves
APP_DATA_DIR_1, includingwg0.conf, WARP registration data, and existing user-defined environment values. Back up that directory through 1Panel before upgrading. - The 1Panel upgrade script atomically replaces the installed
rotate.shwith the target-version payload. If the installed script is still old and that payload cannot be located, the upgrade fails instead of continuing with the old rotation logic; reruns are idempotent. - The new
ROTATE_MAX_ATTEMPTS,ROTATE_RETRY_DELAY_SECONDS, andIP_CHECK_URLvariables have safe Compose defaults when they are absent from an older.env; existing rotation interval, ports, and authentication settings are not overwritten. - The first rotation after an upgrade may briefly interrupt the proxy. If a new or verifiable egress IP cannot be obtained, the last working configuration is restored.