Geodata: Support automatically updating .dat files and hot reloading#5992
Geodata: Support automatically updating .dat files and hot reloading#5992
Conversation
|
为什么不做成tls证书那样1800秒reload一次 |
|
有道理,现在还得依赖 API 那 API 还要不 |
|
api就不要了 |
|
本来想的是用户自己 cron |
|
新开个配置块吧 |
|
现在这样就差不多了 还搞个下载就太麻烦了 |
|
singbox倒是喜欢自己下这玩意 |
|
还真的,本以为他也没有 我倾向于 cron 格式,比较自由 |
|
那环境变量里写cron也行 |
|
居然没有个轻量级的现成的 cron 库 |
|
为了一个这玩意还要弄个cron引擎。。 那还是直接间隔算了吧 |
|
所以才想着 api 来的 |
|
cron + 下载文件一起做了比较好 docker 环境还是无 shell 的 |
{
"geodata": {
"cron": "0 4 * * *",
"outbound": "proxy",
"assets": [
{ "url": "https://example.com/geoip.dat", "file": "geoip.dat" },
{ "url": "https://example.com/geosite.dat", "file": "geosite.dat" }
]
}
} |
|
我的意见就是 |
|
api 确实太重了 cron 还是 interval 其实不是很重要 下载感觉是刚需,不然用户自己弄下来的玩意失败了,一时半会发现不了 引入了热更带来了更多麻烦 |
前几天内网端自动更新的人好像刚被骂过 |
|
我先糊个下载看看吧,对我来说是一样的 不在 core 糊,就得在 shell 糊 |
|
这个 PR 后基本我要的功能都有了 鉴于上游已经烂完了 |
This reverts commit b390687.
|
完事了 |
|
|
|
好的,这个引入了一个轻量的外部依赖 cron 之所以把下载一起给干了,考量是失败能回滚 以及 ghcr.io/xtls/xray-core 是无 shell 的 面板、一键脚本啥的还得各造各的轮子 |
|
本来想着有没有外部程序想要自己下载文件然后 call Xray reload,后来想想全做 Xray 里效果相同,打算先合了跟着新版测测
除非以后还要自动下载更新别的东西。。。本来想着做成 crons 但想想连接观测已经是独立配置了,以后有新东西再 转译 吧
|
或许实现个被删的分类留着旧数据,而其它的用新数据? |
b390687 最开始就是这么做的,下游自己下载了然后调 API reload,如果失败了下游想办法回滚 interval 方案也不行,一些人的洋垃圾受不了,会希望避开高峰期 reload |
|
那就不太好搞 breaking changes 了 |
也可以,状态会变得比较复杂 |
|
@yuhan6665 https://github.com/XTLS/Xray-install 那边的 PR 你看一下 |
|
|
site 没什么好办法这是个无限集 geoip 的话,准备多个来源交叉比对,然后结合 bgp 数据做到尽量精准 目前上游的 geoip base maxmind 基本就图一乐,除 cn 外其它国家的分流基本没用 我这两天先自己折腾看看 |
|
Maybe we should rename "outbound" to "outboundTag"? Throughout the project, the suffix "Tag" is used for both inbound and outbound |
|
可以配置文件加几个方言,我无所谓的 |
|
标准方法是加sockopt 能直连能选出站 |
core 我目前为止只摸了有限的几个模块 |
|
参考echsockopt就是了 json解析是现成的类型 dial的时候直接整个塞给dialer不需要管任何 |
|
|
说白了 core 里的这些 TLS 请求还涉及到,就比如 domain fronting 要不要有,我觉得先写 outbound,有空时统一整一下吧
|
|
现在的行为是不填走路由,填了走指定的出,够用了反正 |
低内存设备慎用,会 boom