vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
17.51k stars 3.18k forks source link

[Bug] mata内核与metacubexd面板无法正常使用 #3791

Closed GuangYu-yu closed 3 weeks ago

GuangYu-yu commented 8 months ago

Verify Steps

OpenClash Version

v0.46.003-248

Bug on Environment

Official OpenWrt, Immortalwrt, Other

OpenWrt Version

openwrt-23.05

Bug on Platform

Linux-amd64(x86-64)

Describe the Bug

mata内核使用后,提示无法获取 General 部分的转发端口设置以及dns端口等问题。metacubexd面板完全空白,一直是这样。

To Reproduce

不使用mata内核,就能够正常启动使用了。

OpenClash Log

日志丢失

OpenClash Config

No response

Expected Behavior

正常使用mata内核以及面板

Additional Context

No response

pgw308 commented 8 months ago

嘗試 設置-切換後端-填入後台地址端口 密鑰

pandamelive commented 7 months ago

我也遇到相同的问题

Rangtian commented 7 months ago

应该是 Metacubexd 的问题。

我发现主力机 Metacubexd 空白后,翻出备用机,备用机的旧版 Metacubexd 一切正常。 更新备用机的 Metacubexd 后,也变成空白了。

GuangYu-yu commented 7 months ago

应该是 Metacubexd 的问题。

我发现主力机 Metacubexd 空白后,翻出备用机,备用机的旧版 Metacubexd 一切正常。 更新备用机的 Metacubexd 后,也变成空白了。

检查并更新下载来的Meta有问题,我手动上传后面板能正常使用了

GuangYu-yu commented 7 months ago

应该是 Metacubexd 的问题。

我发现主力机 Metacubexd 空白后,翻出备用机,备用机的旧版 Metacubexd 一切正常。 更新备用机的 Metacubexd 后,也变成空白了。

也许更新的mata版本可能不是最新的,也可能是不兼容最新的Meta内核

garryshield commented 6 months ago

自动更新的 版本是 MetaCubeX/metacubexd V1.138.1 面板自动获取后台地址和密码是在 setup 路由里

/src/main.tsx#L28

   ...
        <Route path={ROUTES.Setup} component={Setup} />
        <Route path="*" component={Overview} /> // 默认路由
   ...

/src/pages/Setup.tsx#L110


  onMount(() => {
    const query = new URLSearchParams(location.search)

    if (query.has('hostname')) {
      void onSubmit({
        url: `${window.location.protocol}//${query.get('hostname')}${
          query.get('port') ? `:${query.get('port')}` : ''
        }`,
        secret: query.get('secret') ?? '',
      })
    } else if (endpointList().length === 0) {
      /**
        we only try auto login when there is nothing in endpoint list
        or user who is using default config won't be able to switch to another endpoint ever
      */
      void onSubmit({
        url: 'http://127.0.0.1:9090',
        secret: '',
      })
    }
  })

后台生成面板地址用的是 '/ui/metacubexd/#/?hostname=' 主路由 * /luci-app-openclash/luasrc/view/openclash/status.htm#L851

    function meta_dashboard(btn)
    {
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "status")%>', null, function(x, status) {
        btn.disabled = true;
        btn.value    = '<%:Metacubexd Control Panel%>';
        if (status.daip && window.location.hostname == status.daip) {
            url9='<%="http://'+window.location.hostname+':'+status.cn_port+'/ui/metacubexd/#/?hostname='+ window.location.hostname + '&port=' + status.cn_port + '&secret=' + status.dase +'"%>';
        }
        else if (status.daip && window.location.hostname != status.daip && status.db_foward_domain && status.db_foward_port) {
            var ui_proto = status.db_forward_ssl == 0 ? 'http://' : 'https://';
            url9='<%="'+ui_proto+status.db_foward_domain+':'+status.db_foward_port+'/ui/metacubexd/#/?hostname='+ status.db_foward_domain + '&port=' + status.db_foward_port + '&secret=' + status.dase +'"%>';
        }
        else {
            url9='<%="http://'+window.location.hostname+':'+status.cn_port+'/ui/metacubexd/"%>';
        }
        winOpen(url9);
        return false;
        });
    };

'/ui/metacubexd/#/setup?hostname=' 这里应该更新下 完整的自动填充后台地址的密码的链接应该是 'http://10.10.1.1:9090/ui/metacubexd/#/setup?hostname=10.10.1.1&port=9090&secret=XXX'

XinSSS commented 5 months ago

我也遇到了相同的问题,我尝试着直接clone metacubexd build运行是没有问题的

@garryshield 有用,在openclash原先打开的链接中加入了setup后能正常使用了

Chever-John commented 5 months ago

@GuangYu-yu hi,我理解你这里所说的 meta 指的是 metacubexd 是吧? 因为我也遇到了 openclash 默认安装 的 metacubexd 访问直接白屏,我尝试了很多方法,升级这个 metacubexd 到最新的版本,通过页面的插件中的 “外部访问” 里提供的升级按钮。我也尝试过 setup 添加到 url 中。

请问还有其他可以尝试的方法吗?

github-actions[bot] commented 3 months ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

46319943 commented 3 months ago

自动更新的 版本是 MetaCubeX/metacubexd V1.138.1 面板自动获取后台地址和密码是在 setup 路由里

/src/main.tsx#L28

   ...
        <Route path={ROUTES.Setup} component={Setup} />
        <Route path="*" component={Overview} /> // 默认路由
   ...

/src/pages/Setup.tsx#L110

  onMount(() => {
    const query = new URLSearchParams(location.search)

    if (query.has('hostname')) {
      void onSubmit({
        url: `${window.location.protocol}//${query.get('hostname')}${
          query.get('port') ? `:${query.get('port')}` : ''
        }`,
        secret: query.get('secret') ?? '',
      })
    } else if (endpointList().length === 0) {
      /**
        we only try auto login when there is nothing in endpoint list
        or user who is using default config won't be able to switch to another endpoint ever
      */
      void onSubmit({
        url: 'http://127.0.0.1:9090',
        secret: '',
      })
    }
  })

后台生成面板地址用的是 '/ui/metacubexd/#/?hostname=' 主路由 * /luci-app-openclash/luasrc/view/openclash/status.htm#L851

  function meta_dashboard(btn)
    {
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "status")%>', null, function(x, status) {
        btn.disabled = true;
        btn.value    = '<%:Metacubexd Control Panel%>';
        if (status.daip && window.location.hostname == status.daip) {
            url9='<%="http://'+window.location.hostname+':'+status.cn_port+'/ui/metacubexd/#/?hostname='+ window.location.hostname + '&port=' + status.cn_port + '&secret=' + status.dase +'"%>';
        }
        else if (status.daip && window.location.hostname != status.daip && status.db_foward_domain && status.db_foward_port) {
            var ui_proto = status.db_forward_ssl == 0 ? 'http://' : 'https://';
            url9='<%="'+ui_proto+status.db_foward_domain+':'+status.db_foward_port+'/ui/metacubexd/#/?hostname='+ status.db_foward_domain + '&port=' + status.db_foward_port + '&secret=' + status.dase +'"%>';
        }
        else {
            url9='<%="http://'+window.location.hostname+':'+status.cn_port+'/ui/metacubexd/"%>';
        }
        winOpen(url9);
        return false;
        });
    };

'/ui/metacubexd/#/setup?hostname=' 这里应该更新下 完整的自动填充后台地址的密码的链接应该是 'http://10.10.1.1:9090/ui/metacubexd/#/setup?hostname=10.10.1.1&port=9090&secret=XXX'

方法有用。我全新安装的0.46.016-beta,使用meta内核下metacubexd面板就进不去。 把上面这个链接中,两处的10.10.1.1换成自己的软路由IP地址,然后在“插件设置-外部控制-管理页面登录密钥”中查看密钥,把secret=XXX中的XXX替换成密钥,浏览器访问这个修改后的链接就可以正常使用了。

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days