规则

规则

Egern 支持多种类型的规则,可以用于精细地控制网络流量的代理行为。每种规则类型都有其特定的用途和匹配模式。以下我们将详细介绍每种规则类型及其用途。

支持的规则

类型名称说明
domain域名完整匹配完全匹配所输入的域名。适用于只需要代理特定网站的情况
domain_keywork域名关键词匹配匹配含有输入关键词的域名。适用于需要代理所有包含特定关键词的网站的情况
domain_suffix域名后缀匹配匹配输入后缀的域名。适用于需要代理所有特定顶级域名或子域名的网站的情况
domain_regex域名正则匹配通过正则表达式匹配域名。适用于需要复杂匹配模式的情况
geoipIP 国家编码匹配根据国家编码匹配IP地址。适用于需要代理或直连特定国家的IP地址的情况
ip_cidrIPv4 范围匹配匹配指定IPv4地址范围。适用于需要代理或直连特定IP范围的情况
ip_cidr6IPv6 范围匹配匹配指定IPv6地址范围。适用于需要代理或直连特定IPv6范围的情况
url_regexURL 正则匹配通过正则表达式匹配URL。适用于需要根据URL的特定部分(如路径或查询参数)来决定代理行为的情况
rule_set规则集合可以是本地文件,也可以是远程文件,包含一组规则。适用于需要复用或共享规则的情况
asnASN 规则匹配的 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_setIP 国家编码匹配集合
ip_cidr_setIPv4 范围匹配集合
ip_cidr6_setIPv6 范围匹配集合
url_regex_setURL 正则匹配集合
asn_setASN 规则集合

规则集合示例

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.comwww.youtube.com,这意味着当我们引用这个规则集合时,www.google.comwww.youtube.com 的流量将被匹配。同样,我们的 geoip_set 包含 USUK,这意味着当我们引用这个规则集合时,来自美国和英国的IP地址的流量将被匹配。