github.com/igoogolx/clash@v1.19.8/docs/zh_CN/configuration/rules.md (about) 1 --- 2 sidebarTitle: Rules 规则 3 sidebarOrder: 5 4 --- 5 6 # Rules 规则 7 8 在[快速入手](/zh_CN/configuration/getting-started)中, 我们介绍了Clash中基于规则的匹配的基本知识. 在本章中, 我们将介绍最新版本的 Clash 中所有可用的规则类型. 9 10 ```txt 11 # 类型,参数,策略(,no-resolve) 12 TYPE,ARGUMENT,POLICY(,no-resolve) 13 ``` 14 15 `no-resolve` 选项是可选的, 它用于跳过规则的 DNS 解析. 当您想要使用 `GEOIP`、`IP-CIDR`、`IP-CIDR6`、`SCRIPT` 规则, 但又不想立即将域名解析为 IP 地址时, 这个选项就很有用了. 16 17 [[toc]] 18 19 ## 策略 20 21 目前有四种策略类型, 其中: 22 23 - DIRECT: 通过 `interface-name` 直接连接到目标 (不查找系统路由表) 24 - REJECT: 丢弃数据包 25 - Proxy: 将数据包路由到指定的代理服务器 26 - Proxy Group: 将数据包路由到指定的策略组 27 28 ## 规则类型 29 30 以下部分介绍了每种规则类型及其使用方法: 31 32 ### DOMAIN 域名 33 34 `DOMAIN,www.google.com,policy` 将 `www.google.com` 路由到 `policy`. 35 36 ### DOMAIN-SUFFIX 域名后缀 37 38 `DOMAIN-SUFFIX,youtube.com,policy` 将任何以 `youtube.com` 结尾的域名路由到 `policy`. 39 40 在这种情况下, `www.youtube.com` 和 `foo.bar.youtube.com` 都将路由到 `policy`. 41 42 ### DOMAIN-KEYWORD 域名关键字 43 44 `DOMAIN-KEYWORD,google,policy` 将任何包含 `google` 关键字的域名路由到 `policy`. 45 46 在这种情况下, `www.google.com` 或 `googleapis.com` 都将路由到 `policy`. 47 48 ### GEOIP IP地理位置 (国家代码) 49 50 GEOIP 规则用于根据数据包的目标 IP 地址的**国家代码**路由数据包. Clash 使用 [MaxMind GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) 数据库来实现这一功能. 51 52 ::: warning 53 使用这种规则时, Clash 将域名解析为 IP 地址, 然后查找 IP 地址的国家代码. 54 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 55 ::: 56 57 `GEOIP,CN,policy` 将任何目标 IP 地址为中国的数据包路由到 `policy`. 58 59 ### IP-CIDR IPv4地址段 60 61 IP-CIDR 规则用于根据数据包的**目标 IPv4 地址**路由数据包. 62 63 ::: warning 64 使用这种规则时, Clash 将域名解析为 IPv4 地址. 65 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 66 ::: 67 68 `IP-CIDR,127.0.0.0/8,DIRECT` 将任何目标 IP 地址为 `127.0.0.0/8` 的数据包路由到 `DIRECT`. 69 70 ### IP-CIDR6 IPv6地址段 71 72 IP-CIDR6 规则用于根据数据包的**目标 IPv6 地址**路由数据包. 73 74 ::: warning 75 使用这种规则时, Clash 将域名解析为 IPv6 地址. 76 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 77 ::: 78 79 `IP-CIDR6,2620:0:2d0:200::7/32,policy` 将任何目标 IP 地址为 `2620:0:2d0:200::7/32` 的数据包路由到 `policy`. 80 81 ### SRC-IP-CIDR 源IP段地址 82 83 SRC-IP-CIDR 规则用于根据数据包的**源 IPv4 地址**路由数据包. 84 85 `SRC-IP-CIDR,192.168.1.201/32,DIRECT` 将任何源 IP 地址为 `192.168.1.201/32` 的数据包路由到 `DIRECT`. 86 87 ### SRC-PORT 源端口 88 89 SRC-PORT 规则用于根据数据包的**源端口**路由数据包. 90 91 `SRC-PORT,80,policy` 将任何源端口为 `80` 的数据包路由到 `policy`. 92 93 ### DST-PORT 目标端口 94 95 DST-PORT 规则用于根据数据包的**目标端口**路由数据包. 96 97 `DST-PORT,80,policy` 将任何目标端口为 `80` 的数据包路由到 `policy`. 98 99 ### PROCESS-NAME 源进程名 100 101 PROCESS-NAME 规则用于根据发送数据包的进程名称路由数据包. 102 103 ::: warning 104 目前, 仅支持 macOS、Linux、FreeBSD 和 Windows. 105 ::: 106 107 `PROCESS-NAME,nc,DIRECT` 将任何来自进程 `nc` 的数据包路由到 `DIRECT`. 108 109 ### PROCESS-PATH 源进程路径 110 111 PROCESS-PATH 规则用于根据发送数据包的进程路径路由数据包. 112 113 ::: warning 114 目前, 仅支持 macOS、Linux、FreeBSD 和 Windows. 115 ::: 116 117 `PROCESS-PATH,/usr/local/bin/nc,DIRECT` 将任何来自路径为 `/usr/local/bin/nc` 的进程的数据包路由到 `DIRECT`. 118 119 ### IPSET IP集 120 121 IPSET 规则用于根据 IP 集匹配并路由数据包. 根据 [IPSET 的官方网站](https://ipset.netfilter.org/) 的介绍: 122 123 > IP 集是 Linux 内核中的一个框架, 可以通过 ipset 程序进行管理. 根据类型, IP 集可以存储 IP 地址、网络、 (TCP/UDP) 端口号、MAC 地址、接口名称或它们以某种方式的组合, 以确保在集合中匹配条目时具有闪电般的速度. 124 125 因此, 此功能仅在 Linux 上工作, 并且需要安装 `ipset`. 126 127 ::: warning 128 使用此规则时, Clash 将解析域名以获取 IP 地址, 然后查找 IP 地址是否在 IP 集中. 129 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 130 ::: 131 132 `IPSET,chnroute,policy` 将任何目标 IP 地址在 IP 集 `chnroute` 中的数据包路由到 `policy`. 133 134 ### RULE-SET 规则集 135 136 ::: info 137 此功能仅在 [Premium 版本](/zh_CN/premium/introduction) 中可用. 138 ::: 139 140 RULE-SET 规则用于根据 [Rule Providers 规则集](/zh_CN/premium/rule-providers) 的结果路由数据包. 当 Clash 使用此规则时, 它会从指定的 Rule Providers 规则集中加载规则, 然后将数据包与规则进行匹配. 如果数据包与任何规则匹配, 则将数据包路由到指定的策略, 否则跳过此规则. 141 142 ::: warning 143 使用 RULE-SET 时, 当规则集的类型为 IPCIDR , Clash 将解析域名以获取 IP 地址. 144 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 145 ::: 146 147 `RULE-SET,my-rule-provider,DIRECT` 从 `my-rule-provider` 加载所有规则 148 149 ### SCRIPT 脚本 150 151 ::: info 152 此功能仅在 [Premium 版本](/zh_CN/premium/introduction) 中可用. 153 ::: 154 155 SCRIPT 规则用于根据脚本的结果路由数据包. 当 Clash 使用此规则时, 它会执行指定的脚本, 然后将数据包路由到脚本的输出. 156 157 ::: warning 158 使用 SCRIPT 时, Clash 将解析域名以获取 IP 地址. 159 如果要跳过 DNS 解析, 请使用 `no-resolve` 选项. 160 ::: 161 162 `SCRIPT,script-path,DIRECT` 将数据包路由到脚本 `script-path` 的输出. 163 164 ### MATCH 全匹配 165 166 MATCH 规则用于路由剩余的数据包. 该规则是**必需**的, 通常用作最后一条规则. 167 168 `MATCH,policy` 将剩余的数据包路由到 `policy`.