Skiro1/warp-cli

GitHub: Skiro1/warp-cli

该工具通过 AmneziaWG 混淆隧道连接 Cloudflare WARP,并提供端点扫描、防火墙 kill switch 及与 Zapret 的集成方案。

Stars: 0 | Forks: 1

# awarp 用于在 Windows 上通过 **AmneziaWG**(WireGuard 的混淆分支)创建 **Cloudflare WARP VPN 隧道**的 CLI 实用工具。 **English:** [README-en.md](README-en.md) ## 功能 - 注册 Cloudflare WARP 并管理密钥 - 具有混淆参数的 AmneziaWG 隧道 (jc, jmin, jmax, s1-s4, h1-h4, i1-i5) - WFP 防火墙 (kill switch) - 用于寻找最快 WARP 服务器的端点扫描器 - 通过绑定 `--wf-iface` 实现 与 Запрет (winws) 的集成 ## 要求 - Windows 10/11 - 管理员权限(用于 `awarp up`) - 与二进制文件同目录的 `wintun.dll` ## 构建 ``` go build -o awarp.exe . ``` ## wintun.dll 创建 TUN 接口需要 `wintun.dll` 库。下载地址: - **官方网站:** https://www.wintun.net/ - **GitHub:** https://github.com/WireGuard/wintun 请将 `wintun.dll` 放在与 `awarp.exe` 相同的目录中。 ## 用法 ``` awarp register --profile [--license KEY] [--set-awg KEY=VAL ...] [--sni DOMAIN] awarp up --profile awarp down --profile awarp status --profile awarp scan awarp config show --profile awarp config set --profile [--endpoint IP:PORT] [--set-awg KEY=VAL ...] awarp config profiles awarp config delete --profile awarp help ``` ### 示例 ``` :: Регистрация и подключение awarp register awarp up :: Сканирование быстрого эндпоинта awarp scan :: Смена эндпоинта awarp config set --endpoint 162.159.192.179:2408 :: Переподключение с новым эндпоинтом awarp down && awarp up :: Использование с Запретом (winws) awarp up zapret-warp.bat ``` ## AWG 参数 | 参数 | 描述 | |----------|----------| | `jc` | junk 数据包数量 | | `jmin`, `jmax` | junk 数据包大小范围 | | `s1`-`s4` | 消息填充 | | `h1`-`h4` | 消息标头 | | `i1`-`i5` | 自定义签名数据包 | ## 端点 默认:`engage.cloudflareclient.com:2408` WARP WireGuard 子网: - `162.159.192.0/24` - `162.159.193.0/24` 端口:UDP 2408(备用:500、1701、4500) ## 与 Запрет (winws) 集成 ### 问题 同时运行 winws (GoodbyeDPI/Запрет) 和 WARP 时,浏览器会显示“无网络连接”且网站无法加载。原因: 1. WinDivert(winws 使用)会拦截所有网络接口上的数据包 2. WARP 创建了一个处理所有流量的 TUN 接口 (`warp0`) 3. Windows NCSI 通过 TUN 发送 HTTP 请求 4. WinDivert 破坏了这些请求 → Windows 认为没有网络连接 5. curl 和 Telegram 可以正常工作,因为它们使用自己的栈 (Winsock) ### 症状 - `curl https://youtube.com` 正常工作 - Telegram 正常工作 - 浏览器显示“无网络连接”,YouTube 无法加载 - winws + WARP = 浏览器完全无法工作 ### 解决方案 使用 `--wf-iface=<物理接口索引>` 将 WinDivert 仅绑定到物理网络接口,从而排除 TUN。 ### 快速开始 1. 将 `zapret-warp-alt-chrome.bat` 复制到 Запрет 目录(例如 `D:\zapret\`) 2. 启动 WARP: awarp up 3. 启动 Запрет(在单独的终端中): D:\zapret\zapret-warp-alt-chrome.bat 4. 停止: awarp down taskkill /F /IM winws.exe ### 工作原理 Bat 文件会自动检测网络接口: 1. 通过 `netsh int ip show interfaces` 找到 TUN 接口 (`warp0`) 的索引 2. 找到物理接口的索引(第一个已连接的非 TUN 接口) 3. 将 `--wf-iface=<物理接口索引>` 添加到 winws 参数中 4. WinDivert 仅在物理接口上捕获数据包,忽略 TUN ### 手动修复其他 bat 文件 如果您想将其他 Запрет 策略(ALT1、ALT2 等)与 WARP 结合使用: 现成示例:[`examples/general (ALT11) + WARP.bat`](examples/general%20%28ALT11%29%20%2B%20WARP.bat)(基于 [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube)) **第 1 步:** 在 `set "LISTS=%~dp0lists\"` 之后、`cd /d %BIN%` 之前添加以下代码: ``` setlocal enabledelayedexpansion set "PHY_IDX=" for /f "skip=1 tokens=1" %%a in ('netsh int ip show interfaces 2^>nul ^| findstr /i "connected"') do ( if not defined PHY_IDX set "PHY_IDX=%%a" ) set "IFACE_FILTER=" if defined PHY_IDX set "IFACE_FILTER=--wf-iface=!PHY_IDX!" ``` **第 2 步:** 在 winws 命令中的 `--wf-tcp` 之前添加 `%IFACE_FILTER%`: ``` :: До (ломается с WARP): start "zapret: %~n0" /min "%BIN%winws.exe" --wf-tcp=80,443,... :: После (работает с WARP): start "zapret: %~n0" /min "%BIN%winws.exe" %IFACE_FILTER% --wf-tcp=80,443,... ``` ### 故障排除 如果仍然无法工作: 1. 检查 winws 是否正在运行:`tasklist | find winws` 2. 检查物理接口的索引:`netsh int ip show interfaces` 3. 确保 winws 命令行中包含 `--wf-iface` 4. 尝试手动运行 winws(不通过 bat 文件)以查看错误消息 ## 许可证 MIT
标签:EVTX分析, VPN客户端, WireGuard, 安全合规, 日志审计, 网络代理, 防火墙