适用条件:服务地址变了要维护哪些行
当某服务对外的目标 IP 发生变化,原先按旧地址写的 IP-CIDR、IP-CIDR6 或 IP-SUFFIX 可能指向已经无关的范围,或再也覆盖不到新地址。适用条件是:现网策略依赖这些目标 IP 规则,并且你已经知道新的目标地址,或已经确认旧地址废弃。来源侧的 SRC-IP-CIDR、SRC-IP-SUFFIX、SRC-GEOIP、SRC-IP-ASN 描述的是客户端地址,不随远端服务 IP 改变而必须改写,除非划分策略的依据本来就是来源。
规则按从上到下顺序匹配,列表顶部优先级更高。维护时既要改 payload,也要确认该行仍在 MATCH 之前,且没有被更早的域名规则或更宽的 GEOIP 抢走新地址上的请求。MATCH 匹配所有请求、无需条件。IP-CIDR 与 IP-CIDR6 效果相同,后者只是别名;服务从 IPv4 改到 IPv6 或两者并存时,要改对应写法,而不是只改点分十进制文本。
按新目标地址改写并处理旧网段
先用新目标地址重写 CIDR:单台新主机使用该地址族下足够长的前缀;若新地址落在另一连续块,按新块调整前缀,不要把旧前缀原样留着指望仍能罩住。官方示例 IP-CIDR,127.0.0.0/8,DIRECT,no-resolve 与 IP-CIDR6,2620:0:2d0:200::7/32,auto 都是明确范围,维护时同样应写成明确范围。旧网段若已不再属于该服务,应删除或改策略,避免把随后使用该地址的其它主机继续送进原出站。
若服务 IP 频繁变化,继续堆单条 CIDR 会难以维护,可评估改为 IP-ASN(匹配 IP 所属 ASN)或 GEOIP(匹配 IP 所属国家代码),前提是新地址仍落在同一 ASN 或同一国家代码所对应的策略意图内。多条网段可收入 RULE-SET,并配置 rule-providers。主机名仍然稳定时,也可把该用途迁到域名规则,减少对易变目标 IP 的依赖;两条路径不要同时保留相同策略,以免抢优先级。
no-resolve 在维护后仍只作用于目标 IP 规则:域名开始匹配这类规则时,mihomo 将触发 DNS 解析以检查目标 IP,选择 no-resolve 可跳过;若更早匹配已触发解析,则依旧会匹配到带该选项的目标 IP 类规则。服务改 IP 后,解析结果与字面旧 CIDR 更容易不一致,需要重新决定是否保留 no-resolve。附加参数 src 会把目标匹配转为来源匹配,维护服务 IP 时不应把它加到目标网段行上。逻辑规则 AND / OR / NOT 以及 SUB-RULE 都要注意括号,避免只改了地址、复合条件再也无法同时成立。
维护是否完成的判断依据与失败时下一步
判断依据:新目标地址能命中更新后的那一行策略;已废弃的旧地址不再命中该服务用途的规则;列表仍是较具体的网段在前、较宽的 GEOIP 与 MATCH 在后;地址族与 IP-CIDR / IP-CIDR6 写法一致。
失败时下一步:若新地址未命中,检查前缀是否仍按旧块书写、基地址是否未改。若新地址命中了更早的 DOMAIN、GEOSITE 或另一条过期 CIDR,先调整顺序或删除过期行。若只有域名访问失败而字面新 IP 正常,核对该行 no-resolve 与解析是否得到新地址。若 IPv4 与 IPv6 只改了一边,补另一族或确认服务已不再提供该族。回退时用整段 rules 原文覆盖,避免只改一半导致 MATCH 提前或旧网段残留。不要在未确认新地址归属前用更短前缀扩大范围,那会把无关 IP 一并划进原策略。