适用场景
Mihomo 已经在用,或准备接入。入口、规则和 DNS 继续交给 Mihomo,WARP 只负责出口。
Cloudflare WARP 可以接到 Mihomo 后面,作为本地上游出口。入口、规则和 DNS 留在 Mihomo,出口交给 WARP。下面依次说明用途、链路、安装、配置、启动、验证和排错。
Mihomo 已经在用,或准备接入。入口、规则和 DNS 继续交给 Mihomo,WARP 只负责出口。
本文档不讨论 WARP 单独接管系统网络,也不讨论多地区节点池、固定 IP 和复杂代理编排。
WARP 在这里的作用很简单,提供一个默认出口。维护对象集中在本地 SOCKS5 入口和固定链路,配置简单,排错路径也清楚。
需要出站的流量汇到同一个上游,不用为不同应用分别设置网络出口。
分流、DNS、TUN 和应用入口继续由 Mihomo 管理,现有配置方式可以保留。
只维护本地 SOCKS5 入口和固定链路,少一层系统代理,少一层网络接管。
链路固定为 Client -> Mihomo -> WARP -> Internet,端口、日志和请求都能单独验证。
链路分成两层。WARP 负责出口,Mihomo 负责控制。WARP 在本机提供 SOCKS5 入口,Mihomo 负责接入、分流、DNS 和规则。
127.0.0.1:40000WARPWARP,其余流量继续按规则处理127.0.0.1:40000 已经监听。当前写法不启用 WARP 和 Mihomo 的双重全局接管。
先看环境,再看端口。很多问题在这一步就能排掉。
brew、curl 和 BashGit Bash、winget.exe 和 curl40000、7890、1053warp-cli 和 mihomowarp-cli --version
mihomo -v
安装脚本如下。install_mihomo_warp.sh 负责安装 WARP,并把 Mihomo 下载到指定路径。
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"
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"
winget.exe 安装。
| 脚本参数 | --path、--skip-warp、--skip-mihomo |
|---|---|
| WARP 安装位置 | 由系统安装器决定,不受 --path 控制 |
| Mihomo 安装位置 | 安装到 --path 指定目录 |
| 版本策略 | 默认拉取 MetaCubeX 官方最新 stable release |
配置只看四个点:入口端口、DNS 监听、WARP 上游、规则去向。
应用连接 Mihomo 的入口端口。浏览器和客户端通常连接该端口,不直接连接 WARP。
让 DNS 解析也留在 Mihomo 体系里,避免流量分流和域名解析分成两套逻辑。
这是 WARP 在本机打开的 SOCKS5 入口。Mihomo 把它当成上游节点来使用。
私有地址和中国大陆流量直连,其余需要出站的流量经策略组汇入 WARP。
mixed-port: 7890
dns:
listen: 127.0.0.1:1053
proxies:
- name: WARP
type: socks5
server: 127.0.0.1
port: 40000
启动顺序固定。先起 WARP,再测配置,最后起 Mihomo。顺序固定以后,报错位置也固定。
将终端切到 Mihomo 配置目录,后续命令从该目录执行。
cd /path/to/your/clash-config
固定监听端口为 40000,确保它与当前 Mihomo 配置保持一致。
warp-cli mode proxy
warp-cli proxy port 40000
warp-cli connect
warp-cli status
先确认配置文件语法正确,再真正启动 Mihomo。
mihomo -t -f mihomo.yaml
前台和后台都可以。第一次排错时,前台输出更直接。
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
真正发一个经过 Mihomo 的请求,确认整条链路通了。
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 是否真的在监听。
更改 WARP 端口后,必须同步修改 mihomo.yaml 中上游节点的端口,否则链路会断在 Mihomo 到 WARP 这一段。
按顺序检查规则选择、WARP 端口、Mihomo 日志,以及客户端是否真的连到了 127.0.0.1:7890。
停用顺序为:先停 Mihomo,再执行 warp-cli disconnect。反向顺序会让 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 与当前配置一致。