Skip to content

[Bug] 对 external-ui 的存放路径进行检查导致 AUR 安装的 mihomo & metacubex 无法启动 #2004

@PeterWang-dev

Description

@PeterWang-dev

验证步骤

  • 我已经阅读了 文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我仔细看过 文档 并未解决问题
  • 我已在 Issue Tracker 中寻找过我要提出的问题,并且没有找到
  • 我是中文用户,而非其他语言用户
  • 我已经使用最新的 Alpha 分支版本测试过,问题依旧存在
  • 我提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
  • 我提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器或者堆砌大量对于复现无用的配置等。
  • 我提供了完整的日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
  • 我直接使用 Mihomo 命令行程序重现了错误,而不是使用其他工具或脚本。

操作系统

Linux

系统版本

Arch Linux

Mihomo 版本

Mihomo Meta alpha.20250501.3258.7e7016b5 linux amd64 with go1.24.2 2025年 05月 01日 星期四 02:09:23 UTC
Use tags: with_gvisor

配置文件

external-controller: 0.0.0.0:9090 # RESTful API 监听地址
# external-controller-tls: 0.0.0.0:9443 # RESTful API HTTPS 监听地址,需要配置 tls 部分配置文件
secret: "Mihomo-Administrator" # `Authorization:Bearer ${secret}`
# 配置 WEB UI 目录,使用 http://{{external-controller}}/ui 访问
external-ui: /usr/share/metacubexd
# external-ui-name: xd
# external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"


其余项保持默认即可

描述

Commit b4fe669 (chore: better path checks) 中,对 external-ui 项进行了校验,确保其在 /home 目录下:

b4fe669#diff-fe44f09c4d5977b5f5eaea29170b6a0748819c9d02271746a20d81a5f3efca17R757

这是一个Break Change,打破了Arch Linux中对mihomo的打包和对metacubex的安装方式,即安装在 /usr/share/metacubex 中(使用系统包管理器对依赖项进行管理,这样做是一个valid practice)。同时,对用户对UI的存放位置做过多的预想与限制相对不是很合理(这样做应该也会导致Nix发行版出现问题,因为其软件包安装在 /nix/store 目录下)。希望可以对这个commit做部分回滚。

重现方式

编译最新Alpha版本,设置 external-ui 项,指向不在 /home 下的路径即可复现该问题。

日志

mihomo[31828]: time="2025-05-01T10:24:13.699237341+08:00" level=info msg="Start initial configuration in progress"
mihomo[31828]: time="2025-05-01T10:24:13.699263828+08:00" level=fatal msg="Parse config error: path is not subpath of home directory: /usr/share/metacubexd"

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions