sbwml / luci-app-mosdns

一个 DNS 转发器 - OpenWrt 🎁 MosDNS v5 is Ready! 🎉
https://github.com/IrineSistiana/mosdns
1.13k stars 219 forks source link

建议对 v5 版本增加 geosite 和 geoip 的自定义选项 #70

Closed trantuan-20048607 closed 1 year ago

trantuan-20048607 commented 1 year ago

如题,由于 mosdns 内核在 v5 版本去除了 geoip.dat 和 geosite.dat 的支持,v5 版本的 luci 使用了 v2dat 在运行前解包的做法,但没有在 luci 中暴露具体的 tag 列表。现阶段要修改 init.d 脚本才能增加更多的 tag,这对使用自定义脚本的用户不友好。建议在 luci 界面中增加要解包的 tag 列表以方便有使用其他 tag 需求的用户。

sbwml commented 1 year ago

geosite 和 geoip? geoip 是轻量化的版本,它只包含了cn ip

trantuan-20048607 commented 1 year ago

geosite 和 geoip? geoip 是轻量化的版本,它只包含了cn ip

我自行修改了路径,替换成了这个项目提供的 dat 文件:https://github.com/Loyalsoldier/v2ray-rules-dat ,用于配合 OpenClash 实现分流。

sbwml commented 1 year ago

我想一下吧,看看在哪添加合理

sbwml commented 1 year ago

https://github.com/sbwml/luci-app-mosdns/commit/2511b9c6f0195f40b3f980d069224b71b2b5b595

trantuan-20048607 commented 1 year ago

2511b9c

添加多个 geosite tag 后出现此错误提示:

Error: accepts 1 arg(s), received 5
Usage:
  v2dat unpack geosite [-o output_dir] [-f tag[@attr]...]... geosite.dat

Flags:
  -f, --filter stringArray   unpack given tag and attrs
  -h, --help                 help for geosite
  -o, --out string           output dir

已添加的 tag 经过 /usr/share/mosdns/mosdns.sh 脚本中的分割处理后输出了不正确的结果:

$ uci -q get mosdns.config.geosite_tags
cn apple-cn google-cn tld-cn steam@cn gfw greatfire
$ echo $(uci -q get mosdns.config.geosite_tags) | sed -r 's/\w+/-f &/g'
-f cn -f apple--f cn -f google--f cn -f tld--f cn -f steam@-f cn -f gfw -f greatfire
sbwml commented 1 year ago

https://github.com/sbwml/luci-app-mosdns/commit/452249cacf250ec5683e39a13e844d47366f9962

trantuan-20048607 commented 1 year ago

452249c

问题已解决,感谢。