规则
Egern 支持多种类型的规则,可以用于控制网络流量的代理行为,同时可以用于阻止某些流量。
支持的规则
类型 | 名称 | 说明 |
---|---|---|
domain | 域名完整匹配 | 完全匹配域名 |
domain_keywork | 域名关键词匹配 | 匹配含有输入关键词的域名 |
domain_suffix | 域名后缀匹配 | 匹配输入后缀的域名 |
domain_regex | 域名正则匹配 | 通过正则表达式匹配域名 |
geoip | IP 国家编码匹配 | 根据国家编码匹配IP地址 |
ip_cidr | IPv4 范围匹配 | 匹配指定IPv4地址范围 |
ip_cidr6 | IPv6 范围匹配 | 匹配指定IPv6地址范围 |
url_regex | URL 正则匹配 | 通过正则表达式匹配URL |
rule_set | 规则集合 | 本地文件或远程文件 |
asn | ASN 规则 | 匹配的 ASN 代码或者组织 |
default | 默认规则 | 当其他规则都不匹配时应用此规则 |
- match: 匹配值。
- policy: 策略名称。决定了匹配的流量应该如何处理,例如代理服务器、策略组、直连或拒绝。此值如果是
DIRECT
则匹配的流量不通过代理连接,此值如果是REJECT
则匹配的流量将被阻止。注意代理服务器和策率组的名称被应用在这里。
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地址的流量将被匹配。