vernesong/OpenClash

[Bug] 升级到 v0.46.031-beta 无法启动 “failed to decode geosite file”

gemnioo opened this issue · 8 comments

Verify Steps

  • Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
  • Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
  • Definite 这确实是 OpenClash 出现的问题
  • Contributors 我有能力协助 OpenClash 开发并解决此问题
  • Meaningless 我提交的是无意义的催促更新或修复请求

OpenClash Version

v0.46.031-beta

Bug on Environment

Lean, Other

OpenWrt Version

OpenWrt R24.9.9

Bug on Platform

Linux-arm64

Describe the Bug

如下报错 日志, 显示无法启动 openclash

failed to decode geosite file

can't remove invalid GeoSite.dat

To Reproduce

执行 sudo rm /etc/openclash/GeoSite.dat 重新更新后依旧报错

更新地址改选为 GitHub 加速

https://ghp.p3terx.com/https://raw.githubusercontent.com/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat

OpenClash Log

2024-09-20 21:56:00 level=error msg="rules[55] [GEOSITE,adobe,REJECT] error: can't remove invalid GeoSite.dat: remove /etc/openclash/GeoSite.dat: permission denied"
2024-09-20 21:56:00 level=error msg="can't initial GeoSite: can't remove invalid GeoSite.dat: remove /etc/openclash/GeoSite.dat: permission denied"
2024-09-20 21:56:00 level=warning msg="GeoSite.dat invalid, remove and download: failed to decode geodata file: GeoSite.dat, base error: proto: cannot parse invalid wire-format data"
2024-09-20 21:56:00 level=warning msg="failed to decode geosite file: GeoSite.dat, fallback to the original ReadFile method"
2024-09-20 21:56:00 level=info msg="Load GeoSite rule: cn"
2024-09-20 21:56:00 level=info msg="Geosite Matcher implementation: succinct"
2024-09-20 21:56:00 level=info msg="Geodata Loader mode: memconservative"
2024-09-20 21:56:00 level=info msg="Start initial configuration in progress"


### OpenClash Config

_No response_

### Expected Behavior

无 

### Additional Context

_No response_
yxcqr commented

我也是,更新到这个版本,突然无法访问国内网站,
外网一切正常,正准备换回上一个版本!

gemnioo commented

更新 v0.46.032-beta 问题依旧, 再次尝试在备用机相同配置使用 v0.46.031-beta 相同的原因报错

搜索 mihomo 群组后没有找到原因 核对 ls /etc/openclash 内 GeoSite.dat GeoIP.dat 文件名称大小写正确

failed to decode geosite file 是否需要 opkg remove luci-app-openclash 后重新安装 ?

gemnioo commented

对比正常能够启动的日志 确认是 geosite.dat 文件无法读取导致的

2024-09-21 17:26:04 level=info msg="Initial configuration complete, total time: 3251ms"
2024-09-21 17:26:04 level=info msg="Finished initial GeoSite rule cn => dns.fake-ip-filter, records: 90172"
2024-09-21 17:26:04 level=info msg="Finished initial GeoIP rule cn => DIRECT, records: 18377"
2024-09-21 17:26:04 level=info msg="Finished initial GeoIP rule private => DIRECT, records: 18"
2024-09-21 17:26:04 level=info msg="Load GeoIP rule: private"
2024-09-21 17:26:04 level=info msg="Finished initial GeoIP rule cloudflare => 📌 手动选择, records: 897"
2024-09-21 17:26:04 level=info msg="Load GeoIP rule: cloudflare"
2024-09-21 17:26:04 level=info msg="Load GeoIP rule: cn"
2024-09-21 17:26:04 level=info msg="Finished initial GeoSite rule category-games@cn => DIRECT, records: 151"
2024-09-21 17:26:04 level=info msg="Load GeoSite rule: category-games@cn"
2024-09-21 17:26:04 level=info msg="Finished initial GeoSite rule steam@cn => DIRECT, records: 13"
2024-09-21 17:26:04 level=info msg="Load GeoSite rule: steam@cn"
2024-09-21 17:26:04 level=info msg="Finished initial GeoSite rule microsoft@cn => DIRECT, records: 144"
2024-09-21 17:26:04 level=info msg="Load GeoSite rule: microsoft@cn"
2024-09-21 17:26:04 level=info msg="Finished initial GeoSite rule adobe => REJECT, records: 263"
2024-09-21 17:26:04 level=info msg="Load GeoSite rule: adobe"
2024-09-21 17:26:01 level=info msg="Load GeoSite rule: cn"
2024-09-21 17:26:01 level=info msg="Geosite Matcher implementation: succinct"
2024-09-21 17:26:01 level=info msg="Geodata Loader mode: memconservative"
2024-09-21 17:26:01 level=info msg="Start initial configuration in progress"
gemnioo commented

okpg remove 重新安装 v0.46.032-beta 后, 依旧报错无法启动

2024-09-21 23:21:49 level=warning msg="failed to decode geosite file: GeoSite.dat, fallback to the original ReadFile method"
2024-09-21 23:21:49 level=info msg="Load GeoSite rule: cn"

备份能成功启动机器的 tar.gz 文件. 重置后上传就能启动!对比确认过两边 /etc/openclash/config 内配置

想不明白为什么. 并且昨晚是 okpg remove 重置安装的并物理断电重启的, 理应不该会有残留

#插件在卸载后会自动备份配置文件到 /tmp 目录下,除非路由器重启,在下次安装时将还原您的配置文件

这题我会,实际大家需要去覆写设置-DNS设置-Fake-IP-Filter,勾选开启。这个问题迎刃而解,我应该是在022版本的时候遇到过。

这题我会,实际大家需要去覆写设置-DNS设置-Fake-IP-Filter,勾选开启。这个问题迎刃而解,我应该是在022版本的时候遇到过。

其他issue 提到031是大版本更新. 应该是卸载还是会保留配置 恢复默认再导入才不会残留. 而你所说的勾选. 我对比过两者的 /etc/opencalsh/config enabl_fake_ip "1"

这题我会,实际大家需要去覆写设置-DNS设置-Fake-IP-Filter,勾选开启。这个问题迎刃而解,我应该是在022版本的时候遇到过。

其他issue 提到031是大版本更新. 应该是卸载还是会保留配置 恢复默认再导入才不会残留. 而你所说的勾选. 我对比过两者的 /etc/opencalsh/config enabl_fake_ip "1"

Fake-IP-Filter 和 Fake IP 概念应该是不一样的。
我根据你的标题写的 “failed to decode geosite file” 我也遇到过,重装了几次,不成功,恢复到014大版本。后面查了别人的案例后操作成功,在设置中开启Fake-IP-Filter 调用GeoSite.dat文件,openclash才不报错成功开启。我也是小白,以上经验仅供参考。