geoip.dat 和 geosite.dat 占用内存也太大了,有优雅的方案吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
f1ynnv2
V2EX    问与答

geoip.dat 和 geosite.dat 占用内存也太大了,有优雅的方案吗

  •  
  •   f1ynnv2 3 天前 1676 次点击
    macOS 上用 clashmac, mihomo 内核,之前用的配置文件是基于某个订阅文件手搓的,列了上万条规则,domian-suffix, domain-keyword 之类的。

    今天偶然发现原来可以直接使用 geoip.dat 和 geosite.dat ,规则写起来非常优雅,只写了几十个规则就 OK 了。

    结果刚刚发现 clashmac 占用内存达到了 320M ,还以为出 bug 了,切换回原来自己手搓的上万条规则的配置文件立刻又降回 40M 。

    毕竟是笔记本,内存和耗电还得考虑在内,占用这么多内存有点夸张了。搜了一下大概知道原理其实就是 clash 会把两个 dat 全都载入内存加快查询速度,因为记录实在太多所以占内存。

    有一个方案是使用精简版的的 geoip_only_cn.dat, 但是也有个问题比如 telegram 其实有很多直连 ip 的还得依赖 cn 之外的 ip 来判断。

    不知道有没有什么更优雅的方案,既省内存又能复用这种 geoip.dat 的规则写法?
    18 条回复    2026-01-03 08:49:48 +08:00
    aerAzLNE
        1
    aerAzLNE  
       3 天前
    到底有多少规则要写……一个!cnip 兜底,常用的 AI/流媒体单独拉出来,去广告交给浏览器插件,小几十行几百行解决问题
    FrankAdler
        3
    FrankAdler  
       3 天前 via Android
    我是完全手搓规则,自己常访问的网站就那么多,配到打不开的配合 chrome 扩展 zeroomega 快速配置,用不了多少功夫
    FrankAdler
        4
    FrankAdler  
       3 天前 via Android
    如果用 singbox ,他把 geosite geoip 拆成了一个个小文件,你可以按需引入,应该可以节省非常多内存和硬盘
    Lightbright
        5
    Lightbright  
       3 天前
    @FrankAdler #4 geosite+geip 也就 13M ,mihomo 核心 33M ,singbox 核心 50M (个别平台 60M ),内存不知道,硬盘肯定是省不了的
    f1ynnv2
        6
    f1ynnv2  
    OP
       3 天前
    @MacTavish123 感谢,试了一下 geoip-lite.dat 和 geosite-lite.dat ,内存确实少了一半但还是占到了 160MB 。我打算准备两个配置文件了,一个是软路由上用的 openclash 就直接用完整版的 geoip/geosite ,反正配置够。笔记本上偶尔出的还是手搓 rule-set 吧
    hefish
        7
    hefish  
       3 天前
    换台高配 mac 吧。。。
    电池的话。。。插着电用。
    flynaj
        8
    flynaj  
       3 天前 via Android
    在路由器上搞,轻轻松松,需要可以刷机的路由器 https://m.tb.cn/h.76Ek0QU?tk=qyO0fAEpbIX
    FrankAdler
        9
    FrankAdler  
       3 天前
    @Lightbright 夸张了,只有一个 60 的,其他都是 15m 上下 https://github.com/SagerNet/sing-box/releases/tag/v1.12.14
    valuedlute
        10
    valuedlute  
       3 天前
    rules:
    - IP-CIDR,223.5.5.5/32,DIRECT,no-resolve

    - GEOIP,lan,DIRECT,no-resolve
    - GEOSITE,private,DIRECT
    # - RULE-SET,advertising,REJECT
    - GEOSITE,google-gemini, 日本 01

    - GEOSITE,geolocation-!cn@cn,DIRECT
    - GEOIP,cn,DIRECT,no-resolve
    - GEOSITE,geolocation-cn@!cn,Proxy
    - GEOSITE,geolocation-cn,DIRECT
    - GEOSITE,geolocation-!cn,Proxy

    - MATCH,Proxy

    我从哪里抄的改了下 好像也不同特别复杂 advertising 自己找个就行
    Lightbright
        11
    Lightbright  
       3 天前
    @FrankAdler 你解压再看看,这里基本都是有压缩的
    IamJ
        12
    IamJ  
       3 天前
    规则集是目前比较好的方案
    jamme
        13
    jamme  
       3 天前
    https://wiki.metacubex.one/config/rule-providers/

    想要细分的话,可以自己写规则集,甚至可以直接自己搭一个 converter 服务,然后订阅自己的转换地址,一些熟知、主流的工具基本都支持转换,哪怕手机、平板、PC 和 Mac 使用的工具都不相同,这样可以一劳永逸,还可以创建自义 list 去维护自己想要的分流规则。
    f1ynnv2
        14
    f1ynnv2  
    OP
       3 天前
    @valuedlute 这种使用 GEOIP 和 GEOSITE 讲法来写规则的确实简洁,但是 GEOIP 和 GEOSITE 两个数据包需要一直载入内存,内存占用会特别高,我提到的就是这个问题,占了 320MB 内存。即使使用 geoip-lite 和 geosite-lite 也会占到 160MB 。台式机或者软路由确实无所谓,但是笔记本一方面要考虑内存占用更要考虑耗电
    f1ynnv2
        15
    f1ynnv2  
    OP
       3 天前
    @jamme 感谢,昨天研究了一晚上,也确定是使用这种方案。一些比较大的规则集直接引用别人写好的 mrs ,自己定义规则集就直接用 yaml 。目前简单折腾了一下内存已经在 46M 左右了
    guzzhao
        16
    guzzhao  
       3 天前
    win11 mihomo 占用 38.9mb 也还可以吧 可能是我的规则简单


    - GEOSITE,github, 节点选择
    - GEOSITE,win-update,DIRECT
    - GEOSITE,microsoft@cn,DIRECT
    - GEOSITE,microsoft,microsoft
    - GEOIP,lan,DIRECT
    - GEOIP,private,DIRECT
    - GEOIP,CN,DIRECT
    - GEOSITE,private,DIRECT
    - GEOSITE,CN,DIRECT
    - MATCH, 漏网之鱼
    f1ynnv2
        17
    f1ynnv2  
    OP
       1 天前
    最后的方案,加载了 10 个 mrs ,目前完全替代了 geoip 和 geosite ,内存占用在 40~50MB 左右。

    ```
    - DOMAIN-KEYWORD,vscode,GitHub 节点
    - DOMAIN-KEYWORD,visualstudio,GitHub 节点
    - DOMAIN-KEYWORD,copilot,GitHub 节点
    - DOMAIN-SUFFIX,apple.com,DIRECT
    # Rule-set
    - RULE-SET,Advertising,REJECT
    - RULE-SET,YouTube,机场-JMS
    - RULE-SET,Google,Google 节点
    - RULE-SET,GitHub,GitHub 节点
    - RULE-SET,AI,OpenAI 节点
    - RULE-SET,PayPal, 美国
    - RULE-SET,Crypto, 日本
    - RULE-SET,Proxy,机场-JMS
    - RULE-SET,Private,DIRECT
    - RULE-SET,PrivateIP,DIRECT
    ## 默认
    - MATCH,DIRECT
    ```
    SenLief
        18
    SenLief  
       3 小时 56 分钟前
    用 rule-set 啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2356 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 04:45 PVG 12:45 LAX 20:45 JFK 23:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86