Clean Spec

WARP 与 Mihomo 联动使用文档

本文档面向需要将 Cloudflare WARP 作为 Mihomo 上游代理使用的场景,内容包括安装、配置摘要、启动步骤、验证方法与故障排查。文中命令均已去除本机专属路径,保留通用占位写法。

Updated 2026-03-24 Platforms: macOS / Windows Git Bash Script: install_mihomo_warp.sh
Mihomo Mixed Port 7890
DNS Listen 1053
WARP SOCKS5 40000
WARP Mode proxy

文档边界

当前方案是 `Client -> Mihomo -> WARP -> Internet`,不包含让 WARP 单独接管系统全局流量的配置。

链路摘要

  1. 1
    WARP
    运行在 warp-cli mode proxy,监听 127.0.0.1:40000
  2. 2
    Mihomo
    把 WARP 本地 SOCKS5 作为上游节点 WARP
  3. 3
    Rules
    国内直连,其他流量走 PROXYWARP

概览

当前方案不是让 WARP 接管全局路由,而是让 warp-cli 在本机以 proxy 模式提供 SOCKS5,再由 Mihomo 统一处理 TUN、DNS 与分流规则。这种方式更便于定位问题,也能避免双重隧道接管。

架构图

Client Browser / App Mihomo TUN + DNS + Rules 7890 / 1053 warp-cli proxy mode 127.0.0.1:40000 Net Internet
架构核心是由 Mihomo 统一承接客户端流量,WARP 只扮演本地上游代理,不直接控制系统默认网络路径。

流程图

1. 安装 script / brew / winget 2. WARP 代理模式 mode proxy / connect 3. 启动 Mihomo test config / run 4. 验证端口 40000 / 7890 5. 验证请求 curl through socks5h
执行顺序固定为:先安装,再把 WARP 切成代理模式,之后启动 Mihomo,最后做端口与流量验证。
关键约束。 本方案依赖 warp-cli mode proxy。不要同时让 WARP 和 Mihomo 都以全局隧道方式接管系统默认路由。

适用范围

  • macOS
  • Windows 上的 Git Bash
  • 需要将 WARP 作为 Mihomo 本地上游代理使用的场景
  • 不适用于让 WARP 单独承担全局代理接管的场景

前提条件

macOS

需要 brewcurl 和可执行 Bash 环境。

Windows

需要 Git Bashwinget.execurl

warp-cli --version
mihomo -v

安装

页面同时发布原始脚本文件: install_mihomo_warp.sh。 脚本负责安装 WARP,并将 Mihomo 下载到指定路径。

macOS

curl -fsSLO https://clash-static-20260324.pages.dev/install_mihomo_warp.sh
bash install_mihomo_warp.sh --path "$HOME/.local/mihomo-warp/bin"
export PATH="$HOME/.local/mihomo-warp/bin:$PATH"
WARP 通过 Homebrew cask 安装。

Windows Git Bash

curl -fsSLO https://clash-static-20260324.pages.dev/install_mihomo_warp.sh
bash install_mihomo_warp.sh --path "$HOME/.local/mihomo-warp/bin"
export PATH="$HOME/.local/mihomo-warp/bin:$PATH"
WARP 通过 winget.exe 安装。
脚本参数 --path--skip-warp--skip-mihomo
WARP 安装位置 由系统安装器决定,不受 --path 控制
Mihomo 安装位置 安装到 --path 指定目录
版本策略 默认拉取 MetaCubeX 官方最新 stable release

配置摘要

mixed-port 7890
DNS listen 127.0.0.1:1053
WARP upstream 127.0.0.1:40000
WARP mode warp-cli mode proxy
Rule strategy 私有地址与中国大陆流量直连,其余流量走 PROXYWARP

启动

01

进入配置目录

将当前终端切换到你的 Mihomo 配置目录。

cd /path/to/your/clash-config
02

启动 WARP 代理模式

固定监听端口为 40000,与当前配置保持一致。

warp-cli mode proxy
warp-cli proxy port 40000
warp-cli connect
warp-cli status
03

检查 Mihomo 配置

启动前先确认配置可被 Mihomo 正常解析。

mihomo -t -f mihomo.yaml
04

启动 Mihomo

可前台运行,也可挂后台运行。

mihomo -f mihomo.yaml

# 后台运行
nohup mihomo -f mihomo.yaml > mihomo.log 2>&1 &

验证

检查 WARP 代理端口

lsof -nP -iTCP:40000 -sTCP:LISTEN

检查 Mihomo 监听端口

lsof -nP -iTCP:7890 -sTCP:LISTEN

查看后台日志

tail -f mihomo.log

验证代理请求

curl --proxy socks5h://127.0.0.1:7890 \
  https://www.cloudflare.com/cdn-cgi/trace
说明。 `ruleset/` 初始为空是正常现象。Mihomo 首次成功启动后会自动下载 `rule-providers` 对应的规则文件。

故障排查

症状:WARP 显示已连接,但 Mihomo 不通

先检查 warp-cli status 是否仍处于代理模式,再确认 127.0.0.1:40000 是否在监听。

症状:40000 端口被占用

修改 WARP 端口后,必须同步修改 mihomo.yaml 中上游节点端口。

症状:Mihomo 已启动,但流量没有走 WARP

按顺序检查 WARP 状态、WARP 端口、Mihomo 日志,以及客户端是否连到 127.0.0.1:7890

症状:需要停用整套链路

先停 Mihomo,再执行 warp-cli disconnect。不要先断 WARP 再让 Mihomo 挂着运行。

附录

最短启动命令如下。

cd /path/to/your/clash-config
warp-cli mode proxy
warp-cli proxy port 40000
warp-cli connect
mihomo -t -f mihomo.yaml
mihomo -f mihomo.yaml
保持 40000 与当前配置一致。