规则
Egern 支持多种类型的规则,可以用于精细地控制网络流量的代理行为。每种规则类型都有其特定的用途和匹配模式。以下我们将详细介绍每种规则类型及其用途。
支持的规则
| 类型 | 名称 | 说明 |
|---|---|---|
| domain | 域名完整匹配 | 完全匹配所输入的域名。适用于只需要代理特定网站的情况 |
| domain_keywork | 域名关键词匹配 | 匹配含有输入关键词的域名。适用于需要代理所有包含特定关键词的网站的情况 |
| domain_suffix | 域名后缀匹配 | 匹配输入后缀的域名。适用于需要代理所有特定顶级域名或子域名的网站的情况 |
| domain_regex | 域名正则匹配 | 通过正则表达式匹配域名。适用于需要复杂匹配模式的情况 |
| geoip | IP 国家编码匹配 | 根据国家编码匹配IP地址。适用于需要代理或直连特定国家的IP地址的情况 |
| ip_cidr | IPv4 范围匹配 | 匹配指定IPv4地址范围。适用于需要代理或直连特定IP范围的情况 |
| ip_cidr6 | IPv6 范围匹配 | 匹配指定IPv6地址范围。适用于需要代理或直连特定IPv6范围的情况 |
| url_regex | URL 正则匹配 | 通过正则表达式匹配URL。适用于需要根据URL的特定部分(如路径或查询参数)来决定代理行为的情况 |
| rule_set | 规则集合 | 可以是本地文件,也可以是远程文件,包含一组规则。适用于需要复用或共享规则的情况 |
| asn | ASN 规则 | 匹配的 ASN 代码或者组织。适用于需要根据网络自治系统(如ISP)来决定代理行为的情况 |
| default | 默认规则 | 当其他规则都不匹配时,应用此规则 |
- match: 匹配值。
- policy: 策略名称。决定了匹配的流量应该如何处理,例如代理、直连或拒绝。
rules:
- domain:
match: www.google.com
policy: Proxy
- domain_keywork:
match: google
policy: Proxy
- domain_suffix:
match: google.com
policy: Proxy
- domain_regex:
match: google|gstatic|ytimg|youtube|ggpht
policy: Proxy
- geoip:
match: US
policy: Proxy
- ip_cidr:
match: 192.168.0.0/16
policy: DIRECT
- url_regex:
match: "https://www.google.com/"
policy: Proxy
- rule_set:
match: "./example.yaml"
policy: Proxy
- asn:
match: "1234"
policy: DIRECT
- default:
policy: DIRECT在这个示例中,我们设置了多种类型的规则。例如,我们使用 domain 规则将 www.google.com 的流量代理,使用 domain_keyword 规则将所有包含 google 的域名的流量代理,使用 geoip 规则将来自美国的IP地址的流量代理,等等。默认规则是直连,这意味着当其他规则都不匹配时,流量将不经过代理直接连接。
规则集合
规则集合可以是本地文件,也可以是远程文件。规则集合允许你在多个配置文件中复用或共享规则。
| 类型 | 名称 |
|---|---|
| domain_set | 域名集合 |
| domain_keyword_set | 域名关键词匹配集合 |
| domain_suffix_set | 域名后缀匹配集合 |
| domain_regex_set | 域名正则匹配集合 |
| geoip_set | IP 国家编码匹配集合 |
| ip_cidr_set | IPv4 范围匹配集合 |
| ip_cidr6_set | IPv6 范围匹配集合 |
| url_regex_set | URL 正则匹配集合 |
| asn_set | ASN 规则集合 |
规则集合示例
domain_set:
- www.google.com
- www.youtube.com
domain_keyword_set:
- google
- youtube
domain_suffix_set:
- google.com
- youtube.com
domain_regex_set:
- google|gstatic|ytimg|youtube|ggpht
geoip_set:
- US
- UK
ip_cidr_set:
- 192.168.0.0/16
url_regex_set:
- "https://www.google.com/"在这个示例中,我们为每种类型的规则集合设置了一些值。例如,我们的 domain_set 包含 www.google.com 和 www.youtube.com,这意味着当我们引用这个规则集合时,www.google.com 和 www.youtube.com 的流量将被匹配。同样,我们的 geoip_set 包含 US 和 UK,这意味着当我们引用这个规则集合时,来自美国和英国的IP地址的流量将被匹配。