控制口是什么
内核启动时会在本机开一个 HTTP 接口,配置里叫 external-controller,默认常见 127.0.0.1:9090。客户端自己的连接页、规则页、日志页读的就是它——界面只是这个接口的一层皮。既然是公开接口,别的程序当然也能读。
external-controller: 127.0.0.1:9090
secret: "换成一串你自己的随机字符"
external-ui: ui
secret 是访问口令,面板连接时要填。留空意味着任何能访问这个地址和端口的程序都能切你的节点、改模式、读你访问过的域名。external-ui 是可选项:把面板的静态文件放进那个目录,直接用 9090 端口打开,不用依赖外部站点。
面板分三类
- 客户端内置的。Clash Verge Rev、Mihomo Party 这些桌面端把连接、规则、日志都做进了界面,日常够用,不用再折腾。
- 开源 Web 面板,metacubexd、yacd、zashboard 是比较常见的几个名字。列更多、排序更灵活、能批量断连,功能比内置的细。
- 远程管理场景。软路由或者家里那台常开的机器跑着内核,你想用笔记本的浏览器管它——这时候外部面板才是刚需,而不是锦上添花。
接上去
- 先确认配置里
external-controller写的是哪个地址和端口。改过就要重载配置,光重启界面不算。 - 打开面板页面,在连接设置里填地址(本机就是 127.0.0.1)、端口、以及 secret。
- 连不上先分清是端口不通还是口令不对:口令错一般直接提示未授权,端口不通是一直转圈或者超时。
- 用 https 托管的面板去连本机的 http 接口会被浏览器按混合内容拦掉。要么用本地部署的面板,要么在浏览器里对这个站点放行。
面板比界面强在哪
- 追一个域名。在连接列表里搜域名,能看到它命中了哪条规则、从哪个出口出去、建立了多久、上下行各多少。你写的规则没生效,这里一眼就看得出是被前面某条截走了。
- 找带宽大户。按上行或下行排序,正在跑满的那个进程或域名立刻浮到最上面。十次里有八次是某个软件在后台更新。
- 断掉僵住的连接。某条连接长时间不动又占着节点,直接断开,程序会重连并重新过一遍规则。改完规则也常用这招——旧连接不会自己搬家,还挂在老出口上。
别把它绑到 0.0.0.0
把 external-controller 从 127.0.0.1 换成 0.0.0.0,同一个网络里的任何设备就都能连上这个接口了。而这个接口能改配置、能切节点、能看你访问过的域名。宿舍、公司、咖啡馆的网络下,这等于把遥控器放在桌上。
确实需要远程管理的话:设一个足够长的 secret,只在可信网络里开,或者让它走 SSH 端口转发,别直接暴露端口。用别人托管的面板页面时,请求是从你的浏览器直接发到你本机接口的,数据不经过对方服务器,但页面上跑什么脚本由对方决定——介意就把面板文件下下来自己放,或者用 external-ui。
改了 secret 或端口要重载配置才生效,面板那边也得重新填一次。如果一直提示未授权,先看看 secret 那行是不是被订阅更新覆盖掉了——写进覆写片段比直接改生成出来的文件靠谱。