clash的代理模式与BYPASS的规则写法

clash 的模式介绍

clash 默认提供的是端口代理,所以需要开启系统代理(system proxy)来对浏览器的所有网络访问进行代理(浏览器默认走的系统代理,CFW 中打开系统代理会设置 windows 系统设置下,代理部分的系统代理为 127.0.0.1:Mixed-port),对于 windows 中部分软件不走系统代理的,则要单独指定其代理才能成功代理(如 telegram),而 UWP,还需要使用 UWP Loopback 解除其可能导致的 bug 问题。

clash 提供三种代理模式,分别为 Global, Rule, Direct, clash premium 版本提供 Script 模式。这四种模式指的是对于所有通过端口代理软件访问的网络请求(后简略为 clash 网络请求)的不同配置。

  • Golbal 指的是全局代理的模式,即所有 clash 网络请求走固定一个代理;
  • Rule 指的是按照设置的规则走所需的代理的模式,即所有 clash 网络请求根据相应的 rules 的规则,去匹配对应的策略组,最终匹配到策略组中选择的代理或者直接匹配到指定的代理;
  • Direct 指的是直连的模式,即所有的 clash 网络请求直接访问,不走任何策略组中的任何代理;
  • Script 模式则是对 Rule 模式的补充,主要是针对特殊的代理请求等做个人的设置,此处不做介绍,建议看 官方 Wiki 或 Wiki 中指出的 文档 。

image

Rule 模式中,规则有多种方式对clash 网络请求进行匹配,然后根据从上往下,按照第一个匹配到的规则走相对应设置的 代理或者策略组。如果是代理,则直接走对应的代理,如果是策略组,则按照策略组中选择可能动态调整。
一般规则部分最好找现成的或者按照默认的,这样覆盖面比较全面,会对需要走流媒体的走流媒体以保证足够好的网络访问,如果需要自己制作,则找找各种教程,这里仅提供 官方 Wiki 或者 Wiki 中指出的 文档 作为参考。

对于不走系统代理的软件的处理,或者有所有的网络请求都走规则的想法,包括终端(当然,也可以单独对其设置代理)等,则需要使用 TAP 模式和 TUN 模式。此处给出 CFW 的 TAP 配置文档 和 TUN 配置文档 以供参考。

系统代理的两种方式

Bypass(http模式)和 PAC 模式是系统代理的两种方式。

1、Bypass 模式

Bypass匹配的内容将不走系统代理,也就不会走端口代理。
匹配规则写法:
打开设置界面

image

匹配以baidu.com, www.baidu.com. 等以 baidu.com 为结尾的域名

bypass:
 - "*baidu.com"

不匹配baidu.com, 匹配 www.baidu.com, wenku.baidu.com 等以 baidu.com 为根域名的三级域名(四级及以上未测试)|

bypass:
- "*.baidu.com"

仅匹配 baidu.com 的域名|

bypass:
- baidu.com  #此时可不加引号,加上也无妨

image

注意,如果不走代理,仍然会走 dns ,如果系统的 dns 的解析有误,仍然可能访问有误。

2、PAC 模式

PAC 模式则是按照 pac 文件提前对走系统代理的网络请求进行分流(直连或者走特定类型的端口代理),有时系统应用或者奇怪的代理无效问题可以切换到这个模式以解决。