Sukka 写前端、网络和基础设施时,习惯先把边界和代价摊开。把「生活在字典树上 —— 存储和匹配海量的域名和 IP 地址 | Sukka's Blog」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。
开胃小菜:规则集
不然某些核心,30 万域名和 1 万个 IP 竟然要用 200 MiB 内存,这真的很难让人绷住,你们知道吗?
DOMAIN-SUFFIX,google.com IP-CIDR,8.8.8.0/24 IP-CIDR,114.51.4.0/24,no-resolve DOMAIN,ip.skk.moe AND,((PROCESS-NAME,Telegram),(IP-CIDR,91.0.0.0/8)) DOMAIN-KEYWORD,facebook 这个规则文件包含了常见的规则类型,有域名规则,有需要触发 DNS 解析的 IP 规则,有 no-resolve 这样的规则修饰符,也包含了复杂的逻辑组合。这种规则集文件的格式适用于 Surge、Loon、Surfboard 等软件的 RULE-SET 和 Mihomo 的 classical 类型的 Rules Provider。
高效地存储和匹配海量域名
关于为什么 IP-CIDR 规则在匹配过程就需要触发 DNS 解析,推荐阅读我之前的博客「 浅谈在代理环境中的 DNS 解析行为 」、「 我有特别的 Surge 配置和使用技巧 」,和 Surge 的中文白皮书「 Surge 官方中文指引:理解 Surge 原理 」
这样的规则文件通常会被引用到主配置文件中,并被分配一个策略(如 Global 或者 Proxy 之类):
融汇贯通,高效储存和匹配海量关键词
[ Rule ] RULE-SET,https://example.com/ruleset.txt,Proxy 现在请大家思考一个问题:像这样的 RULE-SET 文件内部的多条规则,它们的顺序重要吗?换句话说,如果你把同一个规则文件、打乱其中的规则顺序,最终的匹配结果会发生变化吗?
先不要着急回答,你可以在下面的交互式演示中试试看打乱规则的顺序、以及输入不同的域名和 IP 地址,看看最终的匹配结果。
高效地储存和匹配海量 IP 地址段
— / — 我们可以注意到,虽然我们的 RULE-SET 规则集中包含了不同类型的多条规则,其中有的规则还需要触发 DNS 解析,但是不论我们如何打乱规则的顺序,最终的匹配结果都是不会发生变化的。
虽然 RULE-SET 与 RULE-SET 多个规则集之间确实存在先后顺序关系 ,但是对于每个 RULE-SET 来说,规则匹配引擎只关心这个 RULE-SET 规则集本身是否被匹配:只要这个 RULE-SET 之中有任何一条规则匹配了当前请求,那么这个请求就需要走 Proxy 策略;如果 RULE-SET 中没有任何一条规则匹配当前请求,那么这一整个 RULE-SET 就没有被匹配,规则匹配引擎需要继续匹配其它规则。 换句话说,在一个 RULE-SET 文件内部的多条规则之间的逻辑关系是「或」 。相同的结论在 DOMAIN-SET 等格式的规则集文件也同样成立。
值得单独记下的点
- Internal Bitmap :记录停在这个节点上的规则,「走到这里时是不是已经匹配了」
落地时建议先做的 5 件事
- 用自己的流量和设备测,不要只抄厂商推荐最小配置。
- DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。
- 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。
- 基础设施变更走 Git,能复现、能回滚。
- 结论写成可检查的清单:接口、超时、失败样本、回滚版本。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,网络、DNS 和前端性能笔记最有用的是「边界」:哪一层该加速、哪一层不该假装智能。数字员工调用外部能力前,先把超时和失败路径写死。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是AI智能系统?
「AI智能系统」可概括为:不然某些核心,30 万域名和 1 万个 IP 竟然要用 200 MiB 内存,这真的很难让人绷住,你们知道吗? 本文从定义、方法与实践要点展开说明。
为什么要关注AI智能系统?
关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:不然某些核心,30 万域名和 1 万个 IP 竟然要用 200 MiB 内存,这真的很难让人绷住,你们知道吗?
如何落地AI智能系统?有哪些关键步骤?
建议按以下路径推进AI智能系统:1) Internal Bitmap :记录停在这个节点上的规则,「走到这里时是不是已经匹配了」;2) 用自己的流量和设备测,不要只抄厂商推荐最小配置。;3) DNS、CDN、代理分流先画清 Fake IP 和 Real IP 的边界。;4) 前端性能看 CLS、白屏和重复渲染,而不是只看打包体积。;5) 基础设施变更走 Git,能复现、能回滚。。细节见正文对应章节。
AI智能系统适合哪些人或团队?
AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「开胃小菜:规则集」,本文给出了什么结论?
在「开胃小菜:规则集」部分,要点是:IDR,91.0.0.0/8)) DOMAIN-KEYWORD,facebook 这个规则文件包含了常见的规则类型,有域名规则,有需要触发 DNS 解析的 IP 规则,有 no-resolve 这样的规则修饰符,也包含了复杂的逻辑组合。这种规则集文件的格式适用于 Surge、Loon、Surfboard 等软件的 RULE-SET 和 Mihomo 的 classical 类型的 Rules Provider。 高效地存储和匹配海量域名
关于「高效地存储和匹配海量域名」,本文给出了什么结论?
在「高效地存储和匹配海量域名」部分,要点是:以注意到,虽然我们的 RULE-SET 规则集中包含了不同类型的多条规则,其中有的规则还需要触发 DNS 解析,但是不论我们如何打乱规则的顺序,最终的匹配结果都是不会发生变化的。 虽然 RULE-SET 与 RULE-SET 多个规则集之间确实存在先后顺序关系 ,但是对于每个 RULE-SET 来说,规则匹配引擎只关心这个 RULE-SET 规则集本身是否被匹配:只要这个 RULE-SET 之中有任何一条规则匹配了当前请求,那么这个请求