Clash Verge Rev 的 Web 面板并不是独立运行的管理程序,它本质上是通过 Clash 内核提供的 External Controller(外部控制器)接口,读取代理、连接、规则和配置状态。Windows 用户如果只打开 Clash Verge Rev 主界面,却没有正确启用外部控制器,常见表现就是 Web 面板提示「无法连接后端」「API 连接失败」或一直停留在加载状态。本文以 Windows 版 Clash Verge Rev 为例,从软件界面入口、监听地址、端口和密钥填写开始,完整说明如何开启外部控制器,并通过浏览器和命令行验证配置是否生效。
先了解外部控制器和 Web 面板的关系
外部控制器可以理解为 Clash 内核开放出来的一组 HTTP API。Clash Verge Rev 的桌面界面、Metacubexd、Yacd-meta 等 Dashboard,都是通过这些 API 获取信息或发送操作请求。例如,面板显示当前节点、读取代理组、查看实时连接、更新订阅和切换策略组,都需要访问外部控制器提供的接口。
它通常由三个关键参数组成:
- 监听地址和端口:决定 API 服务在哪个网络地址上监听。常见写法是
127.0.0.1:9090,其中127.0.0.1代表仅允许本机访问,9090是 API 端口。 - Secret 密钥:用于 API 身份验证。Dashboard 连接时需要将它作为 Bearer Token 发送,防止其他程序未经授权控制 Clash。
- External UI:指定本地 Dashboard 文件目录。有些版本可以自动下载面板,也可以只使用在线 Web 面板,不一定要配置本地 UI。
需要注意,外部控制器端口与代理端口不是一回事。mixed-port、http-port 或 socks-port 用于承载浏览器和应用的代理流量;external-controller 只用于管理 API。把代理端口填到 Dashboard 的后端地址中,通常会导致连接失败。
127.0.0.1,端口使用未被占用的 9090,同时设置一组较长且随机的 Secret。这样既能让本机 Dashboard 正常连接,也不会把管理接口暴露给局域网。在 Clash Verge Rev 中找到外部控制器设置
不同版本的 Clash Verge Rev 在界面文字上可能略有差异,但设置思路基本一致。请先确认软件已经安装并正常启动,随后按照下面的路径查找相关选项:
- 在 Windows 中启动 Clash Verge Rev,等待主窗口加载完成。
- 在左侧导航栏中打开「设置」「Settings」或带有齿轮图标的页面。
- 切换到「内核设置」「Core」「Clash 设置」或「基础设置」区域。
- 查找名称包含 External Controller、外部控制器、API 监听地址 的输入框。
- 如果当前界面提供「Secret」「API 密钥」「外部控制器密钥」字段,也应在同一位置完成填写。
- 点击「保存」「应用」或「重启内核」。部分配置不会立即作用于正在运行的内核,必须重启 Clash 核心。
如果设置页面只显示简化选项,而没有外部控制器字段,可以打开当前使用的配置文件,或者进入「配置」页面查看活动配置。Clash Verge Rev 通常会把配置文件保存在应用数据目录中,但不同安装方式和版本的路径可能不同,因此不建议直接凭经验修改某个固定文件。更稳妥的做法是使用软件提供的「打开配置文件夹」「编辑配置」或「打开配置目录」按钮。
在 Windows 上编辑 YAML 时要特别注意缩进。YAML 使用空格表示层级,不能随意混用 Tab;字段名称中的连字符也不能改成下划线。保存后如果软件提示配置解析失败,应先查看错误行号,再检查冒号、缩进和引号是否完整。
正确填写地址、端口与 Secret
最常见的本机配置如下。它只允许当前 Windows 用户所在的计算机访问,不会直接接受来自其他设备的请求:
external-controller: 127.0.0.1:9090 secret: change-this-to-a-long-random-secret
127.0.0.1 和 localhost 在多数本机使用场景下效果相近,但建议优先使用 127.0.0.1,因为它不会受到 Windows 主机名解析或 IPv6 优先级的影响。端口可以使用 9090、9091 等未被占用的端口;如果修改了端口,Dashboard 后端地址也必须同步修改。
Secret 不建议使用简单的数字、用户名、软件名称或订阅名称。例如 123456、clash 和 password 都不适合作为管理密钥。可以使用至少 20 位的随机字符串,并避免在截图、公开配置仓库或群聊中完整发布。Secret 为空时,某些 Clash 内核仍可能允许未认证请求,这在本机测试时看似方便,但不适合作为长期配置。
| 配置项 | 推荐值 | 作用与注意事项 |
|---|---|---|
external-controller | 127.0.0.1:9090 | 仅本机访问,适合 Windows 电脑上的 Dashboard |
secret | 随机长字符串 | API 认证密钥,Dashboard 中必须填写相同内容 |
0.0.0.0:9090 | 仅在确有需要时使用 | 允许局域网访问,必须配合强密钥和防火墙规则 |
| 代理端口 | 例如 7890 | 用于 HTTP、SOCKS 或混合代理,不能代替 API 端口 |
如果希望手机或局域网中的另一台电脑访问 Windows 上的 Dashboard,可以把监听地址改成 0.0.0.0:9090,然后在 Dashboard 中填写 Windows 的局域网 IP,例如 http://192.168.1.20:9090。不过这会使 API 暴露到网络接口,不能只修改监听地址而忽略安全控制。
连接 Web 面板并验证是否成功
外部控制器配置保存并重启内核后,可以使用在线 Dashboard 或 Clash Verge Rev 内置的面板进行连接。以常见的 Metacubexd 为例,打开面板后通常需要填写两个字段:
- 后端地址:本机填写
http://127.0.0.1:9090;如果从局域网其他设备访问,则填写 Windows 的局域网 IP 和 API 端口。 - 密钥:填写配置中的
secret内容,不要把字段名secret:一起复制进去,也不要额外添加引号。
成功连接后,面板一般可以看到代理组、节点延迟、当前连接和规则信息。可以先进入「代理」页面切换一次策略组,再进入「连接」页面观察是否出现新的连接记录。如果这些操作都能实时反映,说明外部控制器地址、端口和 Secret 已经匹配。
不想打开 Dashboard 时,也可以用 Windows PowerShell 验证 API。下面的命令会访问 Clash 的版本接口,并通过请求头传递密钥:
$secret = "change-this-to-a-long-random-secret"
$headers = @{ Authorization = "Bearer $secret" }
Invoke-RestMethod -Uri "http://127.0.0.1:9090/version" -Headers $headers
如果配置正确,PowerShell 会返回包含版本信息的 JSON 内容。若出现连接被拒绝,通常表示端口没有监听、内核没有启动或配置尚未生效;若返回 401 或 403,则重点检查 Secret;若浏览器页面打不开但 PowerShell 可以返回结果,则问题更可能出在 Dashboard 地址、浏览器缓存或面板自身。
Windows 防火墙与安全访问建议
外部控制器拥有较高权限,通常可以切换节点、读取连接信息、更新配置,甚至执行部分控制操作。因此,它不应当像普通网页服务器一样随意暴露到公网。尤其不要把 0.0.0.0:9090 配合路由器端口转发直接发布到互联网,也不要在不清楚风险的情况下关闭 Windows 防火墙。
如果只是本机使用,使用 127.0.0.1 就不需要为外部控制器创建入站防火墙规则。若确实需要局域网访问,可以按照以下原则限制风险:
- 为 Secret 生成不可猜测的随机值,并定期更换。
- 在 Windows 防火墙中只允许「专用网络」访问,不要对「公用网络」开放。
- 尽量限制允许访问的远程 IP 或局域网网段,而不是对所有来源开放。
- 不要将管理端口映射到公网;远程管理优先使用 VPN、Tailscale 或 SSH 隧道。
- 使用完远程访问后,把监听地址恢复为
127.0.0.1,并删除不再需要的防火墙放行规则。
external-controller 和 secret 中的敏感信息。常见连接失败原因与排查顺序
当 Dashboard 显示无法连接时,建议按照「内核是否启动—端口是否监听—地址是否正确—密钥是否匹配」的顺序排查,不要一开始就反复更换面板。
检查端口是否被占用或正在监听
打开 Windows PowerShell,执行以下命令,将端口号替换成你的实际配置:
Get-NetTCPConnection -LocalPort 9090 -ErrorAction SilentlyContinue netstat -ano | findstr :9090
如果没有任何输出,说明当前没有程序监听该端口,可能是内核没有启动、配置没有被加载,或者 Clash Verge Rev 使用的不是你修改的那份配置。如果显示端口已被其他进程占用,可以换成 9091 或其他未使用端口,并同步修改 Dashboard 后端地址。
检查配置没有被覆盖
Clash Verge Rev 可能同时存在多个配置文件、订阅配置和配置覆盖项。你修改的文件不一定就是当前运行的配置。请在软件的「配置」页面确认当前活动配置,再使用「编辑」或「打开目录」功能查看实际内容。若软件提供配置覆盖(Merge)功能,也要检查覆盖文件是否重新定义了 external-controller 或 secret。
修改后必须重新加载配置或重启内核。仅仅保存文本文件,不代表正在运行的 Clash 核心已经读取新内容。重启后再测试,能够避免把旧状态误认为新配置的结果。
根据错误提示定位问题
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| ERR_CONNECTION_REFUSED | 端口未监听、内核未启动或地址错误 | 检查核心状态、端口号和 127.0.0.1 拼写 |
| 401 Unauthorized | Secret 不正确或格式多了引号 | 重新复制密钥,确认使用 Bearer Token 认证 |
| 页面打开但没有节点 | Dashboard 连到了错误的端口或配置为空 | 确认后端地址是 API 端口,不是代理端口 |
| 局域网设备无法连接 | 仍绑定本机地址或被防火墙拦截 | 检查监听地址、防火墙网络类型和局域网 IP |
| 重启后设置消失 | 编辑了非活动配置或被订阅覆盖 | 在活动配置和 Merge 覆盖项中重新确认参数 |
完成排查后,建议先用 PowerShell 请求 /version,再连接 Dashboard。这样可以把问题拆成两层:如果 API 本身无法访问,先修复 Clash Verge Rev 的监听配置;如果 API 可以访问而面板仍失败,再检查面板地址、缓存和认证方式。这个顺序比直接更换多个 Dashboard 更高效。
一份适合 Windows 本机的最终配置
对于只想在 Windows 本机使用 Web 面板的用户,下面这组配置足够稳定,也符合最小暴露原则:
# Proxy ports handle application traffic mixed-port: 7890 # External Controller handles Dashboard API requests external-controller: 127.0.0.1:9090 secret: replace-with-your-random-secret
配置完成后,重启 Clash Verge Rev 的内核,在 Dashboard 中填写 http://127.0.0.1:9090 和相同的 Secret 即可。记住,7890 是应用连接代理时使用的混合端口,9090 才是 Web 面板访问的外部控制器端口。只要地址、端口、密钥和活动配置四项保持一致,Windows 上的 Clash Verge Rev Web 面板通常就能正常工作。