首页/教程/Clash vpn外部控制器怎么用?GUI界面在哪?
CLASH GUIDE

Clash vpn外部控制器怎么用?GUI界面在哪?

约 9 分钟阅读

Clash VPN的外部控制器(External Controller)是通过external-controller配置启用的RESTful API服务,默认监听127.0.0.1:9090。该服务本身不提供GUI界面,用户需通过第三方Web Dashboard面板(如YACD(http://yacd.haishan.me)、zashboard连接API来获得可视化管理界面,配置API地址和secret密钥即可进行节点切换、延迟测试、连接查看和配置管理等操作。在Linux无图形界面服务器上,用户也可通过curl命令直接调用API端点(如GET /proxies获取节点列表、PUT /proxies/:name切换节点、GET /connections查看连接)实现命令行管理。若需远程访问,将external-controller设为0.0.0.0:9090并放行防火墙端口即可从外部设备通过Dashboard管理Clash。secret字段用于设置访问密钥保护API安全。本地部署Dashboard面板可将静态文件托管在内部HTTP服务器上,实现离线管理。

外部控制器的基本概念与配置方法

外部控制器是Clash的API管理接口

Clash VPN的“外部控制器”(External Controller)本质上是一个通过HTTP协议暴露的管理API接口,用于让外部程序或Web界面与Clash内核进行交互。外部控制器本身不包含图形界面,而是将Clash的管理能力(如切换节点、查看连接、重新加载配置)封装为标准的HTTP端点,供第三方GUI管理面板或自动化脚本调用。通过在配置文件中启用external-controller字段,用户可开启该管理接口,实现对Clash的远程或本地管理。

在配置文件中启用外部控制器

config.yaml配置文件中添加external-controller: 127.0.0.1:9090即可启用外部控制器,该配置定义了API服务的监听地址和端口号。127.0.0.1表示仅允许本机访问,9090为默认端口。若需局域网或远程访问,将监听地址改为0.0.0.0:9090。配置完成后需重启Clash内核使修改生效。该端口与HTTP代理端口(7890)和SOCKS5代理端口(7891)独立,专用于管理请求。

secret认证密钥的配置

为保护外部控制器的访问安全,可在配置文件中通过secret字段设置认证密钥。配置示例为secret: "your-password",连接API时需要提供该密钥才能执行管理操作。若secret留空或不配置,API无需认证即可访问,适合本地使用场景。在开放网络环境中建议设置secret,避免他人通过API修改代理配置或获取敏感信息。

通过Web Dashboard访问GUI界面

YACD面板的访问与配置

YACD(Yet Another Clash Dashboard)是最常用的Clash Web管理面板之一,访问http://yacd.haishan.me即可打开该页面。在YACD面板的登录设置中,填写Clash API的地址(如127.0.0.1:9090服务器IP:9090)和secret密钥(若有配置),点击连接即可进入管理界面。连接成功后,YACD会通过外部控制器的API获取Clash的全部运行状态数据,并在界面中呈现为可视化操作面板。

zashboard面板的使用方法

zashboard是另一款常用的Clash Web管理面板,提供与YACD类似的功能但界面风格和交互方式有所不同。访问部署好的zashboard页面(如自建或公共实例),在设置中填入API地址和密钥即可连接。zashboard支持节点切换、延迟测试、连接查看和配置管理等核心功能,用户可根据个人偏好选择使用YACD、zashboard或Clash.razord.top等不同面板。

Dashboard面板连接失败时的排查

Dashboard无法连接外部控制器时,首先检查external-controller配置是否已正确添加到config.yaml并重启了Clash。确认API地址和端口是否与配置中的external-controller值一致。若配置了secret密钥,检查Dashboard登录时是否已正确填入该密钥。若Clash运行在Docker容器中,确认容器的9090端口已映射到宿主机(如ports: - "9090:9090")。排查外部访问时还需检查防火墙是否已放行9090端口。

通过命令行使用外部控制器API

使用curl获取节点列表

通过curl命令可直接调用外部控制器的API端点,获取Clash的运行状态数据。执行curl http://127.0.0.1:9090/proxies可获取当前所有节点和策略组的完整列表,返回的数据为JSON格式。若配置了secret密钥,需在请求头中添加Authorization: Bearer your-password。该命令在Linux无图形界面的服务器上尤为实用,用户无需登录Dashboard即可通过命令行获取节点信息。

使用curl切换代理节点

外部控制器支持通过PUT请求切换当前使用的代理节点,格式为curl -X PUT http://127.0.0.1:9090/proxies/策略组名 -d '{"name":"节点名称"}'。示例为curl -X PUT http://127.0.0.1:9090/proxies/Proxy -d '{"name":"香港节点01"}',将名为Proxy的策略组切换到香港节点01。该操作实时生效,无需重新加载配置。此功能可通过脚本实现自动化节点切换,例如在节点不可用时自动切换到备用节点。

查看活跃连接和关闭连接

外部控制器提供GET /connections端点查看当前所有活跃连接,以及DELETE /connections端点关闭所有连接。执行curl http://127.0.0.1:9090/connections可查看当前Clash处理的所有网络连接的详细信息,包括目标地址、协议类型、传输速率等。执行curl -X DELETE http://127.0.0.1:9090/connections可强制关闭所有活跃连接,在切换节点后需要立即生效的场景中尤为有用。

外部控制器的GUI界面所在地

外部控制器本身不包含GUI界面

外部控制器(External Controller)的本质是一个RESTful API服务,其本身不提供任何图形界面。它只负责接收和响应HTTP请求,将Clash的运行状态以JSON数据格式返回,或执行管理操作。用户需要通过第三方GUI面板(如Dashboard网页)或命令行工具来调用这个API,才能获得可视化的操作界面。因此“外部控制器的GUI界面”并不存在于Clash软件内部,而是由第三方前端页面提供。

第三方Dashboard是主要的GUI方案

YACD(http://yacd.haishan.me)和zashboard是Clash社区最常用的两种Web Dashboard面板,它们通过调用外部控制器API将管理功能呈现为可视化界面。这些Dashboard面板完全在浏览器端运行,不依赖Clash自带的任何UI组件,只需配置API地址和密钥即可连接。此外,Clash Verge Rev等图形界面客户端也通过外部控制器API连接内核,其内置的「代理」页面和「连接」面板本质上也是外部控制器API的可视化呈现。

本地部署Dashboard面板

除了使用公共的Dashboard页面(如http://yacd.haishan.me),用户也可将Dashboard面板的静态文件部署到本地或内部服务器上。从GitHub下载YACD或zashboard的发布文件,通过Nginx或任意HTTP服务器托管静态文件后,即可通过内网地址访问Dashboard,无需依赖外部网络。本地部署的Dashboard可同时管理多个Clash实例,在局域网或内网环境中配置更加灵活。

外部控制器的典型使用场景

远程管理无图形界面的Linux服务器

在Linux服务器上,Clash通常以命令行方式运行,没有图形界面。用户可通过外部控制器API,在任意设备的浏览器中访问Dashboard面板(如http://yacd.haishan.me),填入服务器的API地址和密钥即可远程管理Clash。这种方式让命令行环境下的Clash管理变得直观便捷,降低了Linux服务器的使用门槛。

自动化脚本与节点轮换

外部控制器API可通过curl命令或程序调用,轻松集成到自动化脚本中。例如在数据采集程序中,可编写脚本定期检测当前节点是否返回429状态码,若触发则自动调用PUT /proxies/:name接口切换至下一个可用节点,实现IP的自动轮换。这种自动化能力让Clash不再只是一个手工操作的工具,而是可以作为程序化网络管理的组件使用。

多设备集中管理

在拥有多台Clash设备的环境中,外部控制器API可实现集中管理。将每台设备的external-controller监听地址设为0.0.0.0并配置防火墙放行后,管理员可在任一设备上通过Dashboard面板连接所有Clash实例的API,实现统一管理和监控。每个实例在Dashboard中可配置为一个独立的“环境”,方便在不同设备间快速切换管理。

常见问题FAQ

外部控制器在哪里配置?

外部控制器在config.yaml配置文件中通过external-controller字段配置,格式为external-controller: 127.0.0.1:9090127.0.0.1为监听地址,9090为默认端口。配置完成后需重启Clash内核使配置生效。若需远程访问,将监听地址改为0.0.0.0:9090

外部控制器的GUI界面在哪里?

外部控制器本身不包含GUI界面,它只是一个API服务。GUI界面需要通过第三方Web Dashboard(如http://yacd.haishan.me或zashboard)连接外部控制器API来呈现。在Dashboard中填入API地址和secret密钥即可获得可视化管理界面,支持节点切换、连接查看和配置管理等操作。

如何通过外部控制器切换节点?

通过curl命令调用PUT /proxies/:name接口即可切换节点,示例为curl -X PUT http://127.0.0.1:9090/proxies/Proxy -d '{"name":"节点名称"}'。在Dashboard面板中,点击任一节点即可完成切换,操作通过同一API端点实现。

外部控制器连接失败如何排查?

首先确认external-controller配置已添加到config.yaml中且Clash已重启。检查API地址和端口是否与配置一致。若配置了secret密钥,确认连接时已正确提供。若在Docker中运行,确认端口已映射(ports: - "9090:9090")。若从远程访问,检查防火墙是否放行9090端口。

使用提醒

请从可信来源获取软件与配置,并遵守所在地法律法规和相关服务条款。