在Clash VPN配置文件中,IP-CIDR规则格式为IP-CIDR,IP段/掩码,动作,用于匹配目标IP所属的特定地址段,最常用配置为IP-CIDR,192.168.0.0/16,DIRECT将内网流量直连放行。该规则与GEOIP规则的区别在于:IP-CIDR匹配用户指定的固定IP段,精确度高但需手动维护;GEOIP依赖内置Country.mmdb数据库匹配整个国家的IP段,宽泛但维护成本低,两者通常结合使用。no-resolve参数可避免不必要的DNS查询,适用于规则优先级低于其他域名规则的场景。SRC-IP-CIDR变体可匹配请求的源IP地址,用于为局域网中不同设备配置独立代理策略。当需要管理大量IP段时,使用rule-providers配合RULE-SET引用外部规则集(如anti-ip-attribution)可避免配置文件臃肿。在性能受限的设备上,建议使用Mihomo内核的mrs二进制格式规则集以减少资源占用。

IP-CIDR规则的基本概念与格式解析
基于IP地址段进行精确匹配
IP-CIDR规则是Clash VPN规则系统中用于匹配特定IP地址范围的规则类型,其判断依据是目标服务器的IP地址是否属于指定的CIDR网段。该规则的格式为IP-CIDR,IP地址段/子网掩码,动作,例如IP-CIDR,192.168.0.0/16,DIRECT表示将所有目标IP在192.168.x.x范围内的请求直连放行。IP-CIDR规则依赖于Clash内置的IP归属地数据库,但与GEOIP规则不同,用户可以在规则中直接指定任意IP段,而非仅限于国家层面的判断,因此在处理内网地址、特定服务IP和私有网段时非常灵活有效。
IPv4与IPv6的分别处理
Clash为IPv6地址提供了单独的规则类型IP-CIDR6,专门用于匹配IPv6格式的IP地址范围。在配置规则时需要区分使用:处理IPv4地址段时使用IP-CIDR,处理IPv6地址段时使用IP-CIDR6。例如IP-CIDR6,2402:4e00:1200:ed00::/64,PROXY可将特定IPv6段的流量送入代理通道。如果配置中同时存在IPv4和IPv6的流量,需要分别为两种协议配置对应的IP-CIDR规则以确保完整覆盖。
no-resolve参数的作用与使用场景
IP-CIDR规则支持no-resolve参数,该参数告诉Clash内核在匹配此规则时不要主动触发DNS解析。当请求的目标是域名而非IP地址时,若不添加no-resolve,Clash可能需要先进行DNS解析才能获得目标IP以完成IP-CIDR规则的匹配,这会增加额外的延迟和DNS查询开销。no-resolve的适用场景是:当用户希望该IP段规则仅匹配那些请求中已经包含IP地址的流量(如直接访问IP而非域名的请求),或该规则优先级低于其他域名类规则时,添加no-resolve可以避免不必要的DNS查询,提升匹配效率。
IP-CIDR与GEOIP规则的区别与选择
判断依据的不同:固定IP段vs动态国家代码
IP-CIDR和GEOIP规则虽然都是基于IP地址进行分流,但两者的判断逻辑和应用范围存在本质区别。IP-CIDR规则匹配的是用户指定的特定IP地址段,例如IP-CIDR,119.29.29.29/32,DIRECT仅匹配单个IP地址,范围精确但固定。GEOIP规则则依赖内置的Country.mmdb数据库,匹配的是某个国家的全部IP地址段,范围宽泛且会随数据库更新而变化。IP-CIDR更适合处理已知的、固定的IP段(如内网地址、特定服务器IP),而GEOIP更适合处理以国家为单位的大范围分流(如GEOIP,CN,DIRECT)。
精确度与维护成本
IP-CIDR规则的精确度远高于GEOIP规则,但维护成本也相应更高。当用户需要精确控制某个具体IP地址或小型IP段的流量走向时,IP-CIDR可以达到单IP级别的精度,而GEOIP只能进行国家级别的粗粒度分类。然而IP-CIDR规则需要用户手动维护IP地址列表,当目标IP发生变化时需要手动更新规则。相比之下,GEOIP规则通过更新数据库即可覆盖国家层面的变化,维护成本较低。在实际配置中,两者通常结合使用:用GEOIP处理大部分国家的通用分流,用IP-CIDR对特定IP进行精细调整。
规则优先级与匹配顺序的安排
在规则列表中,IP-CIDR规则与GEOIP规则的顺序安排直接影响分流结果。由于IP-CIDR规则的匹配范围更精确,通常建议将IP-CIDR规则放在GEOIP规则之前,让精确匹配优先于宽泛匹配。例如,当用户希望某个特定IP走代理而该IP所在国家整体走直连时,应先配置IP-CIDR,特定IP/32,PROXY,再配置GEOIP,CN,DIRECT。若顺序相反,GEOIP规则会在IP-CIDR规则之前匹配成功,导致该特定IP被直连而非代理。在排查分流问题时,客户端的「连接」面板可帮助查看每条流量具体命中了哪条规则。
适合使用IP-CIDR的典型场景
本地内网IP段直连配置
IP-CIDR规则最基础的应用场景是将本地局域网IP地址段设置为直连,避免内网流量被错误地送入代理通道。标准的配置是在规则列表的最前面添加IP-CIDR,10.0.0.0/8,DIRECT、IP-CIDR,172.16.0.0/12,DIRECT和IP-CIDR,192.168.0.0/16,DIRECT三条规则,覆盖所有常见的私有IP地址段。配置后,访问本地路由器(192.168.1.1)、NAS设备或局域网内其他电脑的流量将直接放行,不会经过代理节点。这些私有IP段在GEOIP数据库中通常被归类为private分类,但在分流配置中直接使用IP-CIDR规则更为明确和可靠。
屏蔽特定服务器的访问
IP-CIDR规则可以用于屏蔽特定IP地址或IP段的访问,实现类似防火墙的拦截功能。当用户发现某些IP地址存在安全风险、频繁发送恶意请求或属于已知的广告追踪服务器时,可在规则中添加IP-CIDR,问题IP/32,REJECT或IP-CIDR,可疑IP段/24,REJECT,让Clash直接在代理层丢弃这些请求,而不消耗节点带宽。在社区维护的反IP归属地规则集中,大量使用IP-CIDR规则配合REJECT动作来拦截用于检测IP归属地的特定服务器IP,避免真实IP暴露给特定网站。这种用法需要用户确认目标IP确实应被屏蔽,避免误拦正常服务。
为特定设备配置独立的代理策略
通过SRC-IP-CIDR规则,用户可以为局域网中不同IP地址的设备配置不同的代理策略,实现多设备流量的差异化处理。该规则的格式为SRC-IP-CIDR,设备IP/32,目标策略组,用于匹配发起请求的源IP地址而非目标IP地址。例如在家庭网络中,可为儿童设备配置SRC-IP-CIDR,192.168.1.100/32,限制节点组,为工作设备配置SRC-IP-CIDR,192.168.1.101/32,工作节点组。这种用法适用于需要按终端用户分流管理路由器的场景,相比在每台设备上单独配置代理更加集中和高效。但在单机Clash配置中较少使用,更常见于网关或旁路由部署。
在配置文件中编写IP-CIDR规则
标准格式与动作去向的指定
在config.yaml的rules字段中添加IP-CIDR规则时,需按照IP-CIDR,IP段/掩码,动作的标准格式编写。动作可以是策略组名称(如🚀 节点选择)、DIRECT(直连)或REJECT(拒绝)。例如IP-CIDR,192.168.0.0/16,DIRECT将内网流量直连,IP-CIDR,203.107.1.0/24,PROXY将特定IP段送入代理通道。若规则中包含no-resolve参数,应写在动作之后,如IP-CIDR,47.101.175.206/32,REJECT,no-resolve。IP-CIDR规则同样遵循“从上到下、先命中先生效”的匹配顺序,因此需要合理安排规则位置,将精确规则放在宽泛规则之前。
使用rule-providers管理大量IP段
当需要管理的IP段数量较多时,直接在rules字段中逐条添加会使配置文件臃肿且难以维护,此时可使用rule-providers机制将IP段列表放在外部文件中统一管理。在rule-providers中声明一个类型为ipcidr的数据源(本地文件或远程URL),然后在rules中使用RULE-SET引用该数据源。社区维护的IP段规则集(如anti-ip-attribution)提供了大量用于屏蔽IP归属地检测的IP-CIDR规则,用户可直接引用。使用rule-providers的优势在于规则集可独立更新,无需频繁修改主配置文件,且对性能受限的设备(如硬路由)更加友好。
避免过多的IP-CIDR规则影响性能
在性能受限的设备(如硬路由)上部署Clash时,过多的IP-CIDR规则可能增加内核匹配时的CPU开销。Clash在处理每个请求时需逐条匹配规则,IP-CIDR规则的匹配涉及IP地址计算,虽然效率较高但大量规则仍会积累性能损耗。建议将常用的内网直连规则(私有IP段)放在最前面,让大部分内网流量在匹配少量规则后即被放行。对于大量的IP段列表,建议使用Mihomo内核独有的mrs二进制格式规则集,可减少一半以上的规则文件大小和硬件资源占用。
常见问题FAQ
IP-CIDR规则和GEOIP规则有什么区别?
IP-CIDR匹配用户指定的特定IP地址段,精确但需手动维护;GEOIP依赖内置数据库匹配某个国家的全部IP段,宽泛但维护成本低。两者通常结合使用,IP-CIDR处理固定IP段的精细控制,GEOIP处理国家级别的大范围分流。
IP-CIDR规则中的no-resolve参数有什么作用?
no-resolve参数告诉Clash在匹配此规则时不要触发DNS解析。当请求目标为域名时,若不添加该参数,Clash可能需要先解析域名获取IP才能匹配规则。该参数适用于那些优先级低于其他域名类规则的IP段,或用户希望该规则仅匹配IP直连请求的场景。
局域网内的本地IP地址应该使用什么规则处理?
使用IP-CIDR规则将私有IP段直连放行,标准配置为IP-CIDR,10.0.0.0/8,DIRECT、IP-CIDR,172.16.0.0/12,DIRECT和IP-CIDR,192.168.0.0/16,DIRECT,并放在规则列表最前面确保优先匹配。此配置可确保访问路由器、NAS等内网设备的流量不会被送入代理通道。
大量IP-CIDR规则是否会影响Clash的性能?
会。每个IP-CIDR规则在匹配时涉及IP地址计算,虽然效率较高但大量规则仍会积累性能开销,尤其在性能受限的设备(如硬路由)上更为明显。建议将常用规则放在前面,并使用Mihomo内核的mrs二进制格式规则集减少文件大小和资源占用。