vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
16.81k stars 3.1k forks source link

openwrt 19.07 里的openclash插件启动失败 版本v0.45.06-beta, 提示 libcap 问题 #2289

Closed cnsheds closed 2 years ago

cnsheds commented 2 years ago

2022-04-20 11:21:23 第一步: 备份当前策略组状态... 2022-04-20 11:21:23 OpenClash 开始关闭... ---------- https://mirrors.cloud.tencent.com/lede/snapshots/packages/ ---------- 2022-04-20 11:21:19 提示: 你可以尝试从给出的地址中查找、下载并重新安装架构对应的 libcap 和 libcap-bin 依赖 2022-04-20 11:21:19 Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well 2022-04-20 11:21:16 第二步: 组件运行前检查... 2022-04-20 11:21:16 第一步: 获取配置... 2022-04-20 11:21:16 OpenClash 开始启动...

但是我用SSH到 /etc/openclash/core/ 目录下, 手动运行 clash 是可以正常启动的

ppyohhh commented 2 years ago

少依赖 装进去

cnsheds commented 2 years ago

libcap2.63的问题, 换成2.48版正常了

github-actions[bot] commented 2 years 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

wjcroom commented 1 year ago

参考: luci-app-openclash/root/etc/init.d/openclash if [ -z "$_koolshare" ]; then if ! capsh --is-uid=0 >/dev/null || ! capsh --has-ambient >/dev/null; then LOG_OUT "Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well" 然后这样: 进入shell运行 capsh --is-uid=0 capsh --has-ambient 如果输出异常,系统可能不支持libcap。但是如果系统是koolshare的,就不需要使用licap中的capsh命令,也许可以启动。openshell这样判断:

_koolshare=$(cat /usr/lib/os-release 2>/dev/null |grep OPENWRT_RELEASE 2>/dev/null |grep -i koolshare 2>/dev/null)

所以尝试在,shell中 vi /usr/lib/os-release 最后一行,参数值字段,随便一个地方加入 koolshare. 欺骗openclash本系统是 koolshare. 这会跳过libcap的使用。

这个办法在2022-10-07时,NAS 6.22 synolony 中的docker. 使用sulinggg/openwrt:x86_64时,出现相同错误时的解决办法。

但是相同在问题,同一个img在synolony 7.0版本中没有再次出现。可能是个系统环境的问题,可以尝试绕过使用

wjcroom commented 1 year ago

libcap2.63的问题, 换成2.48版正常了

然而并不行,我试过了 2.43, 2.66-1都不行。的。 进入shell运行 capsh --is-uid=0 capsh --has-ambient 各位可以这样判断 如果报错。 可以尝试在/usr/lib/os-release 相关位置,系统名称中加入koolshare. 绕过capsh的使用。在2022-10-9发布的openclash中应该可以如此使用。

我是手工尝试clash -d / -f /config.yaml.运行http代理能运后才发现这个办法在。 最好, 手工运行,测试一下 核心功能。

mzying2013 commented 1 year ago

有解决办法吗?

wjcroom commented 1 year ago

koolshare. 更改一下linux内核信息文件,我提交过

在 2022-11-08 19:54:02,"bill" @.***> 写道:

有解决办法吗?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>