1655 字
8 分钟
Clash 类工具覆写规则使用手册

使用方式#

1. 下载软件#

电脑-Mihomo
手机-FlClash

2. 关闭软件设置中的 DNS接管 和 域名嗅探接管#

3. 修改软件外部资源中的 GeoIP和GeoSite 的链接 (使用其中一个即可)#

Geo规则网址1
Geo规则网址2

4.Mihomo Party的 GeoIP数据模式 选择dat#

5.打开内核设置 -> 打开RTT延迟测试 + 打开TCP并发#

6.使用surgio+github+Netify#

实现自定义管理订阅链接,从而获取到自己整合的订阅链接,然后导入即可

7.本地规则配置文件#

在rule_providers文件夹下,在文件中填写对应域名来管理节点的使用

...
  userProxy:
    type: file
    behavior: classical
    path: ./rule_providers/userProxy.yaml
  userDirect:
    type: file
    behavior: classical
    path: ./rule_providers/userDirect.yaml
  userReject:
    type: file
    behavior: classical
    path: ./rule_providers/userReject.yaml
...

8.配置Tun + 打开虚拟网卡#

...
tun:
  enable: true
  device: kk
  stack: mixed
  dns-hijack:
    - any:53
  auto-route: true
  auto-detect-interface: true
...

9.系统代理和虚拟网卡只需要开一个就可以了#

10. 将配置文件转移到软件目录#

① 完全退出软件
② 进入软件的安装目录 (例如 D:\Resources\Sparkle)
③ 在该目录下新建一个文件夹, 命名为 data
④ 将 %USERPROFILE%\AppData\Roaming\sparkle\work 目录下的内容复制到 data 文件夹下, 并删除 work 文件夹
⑤ cmd 输入代码 mklink /J "%USERPROFILE%\AppData\Roaming\sparkle\work" "D:\Resources\Sparkle\data"
⑥ 重新启动软件, 此时所有配置文件、日志、Country.mmdb 等都会保存到 data 文件夹中, 而不是原来的 %USERPROFILE%\AppData\Roaming\sparkle\work

为什么要使用surgio+github+Netify?#

1. 使用默认的订阅链接:#

优点:
① 方便更新节点内容
② 机场链接直接使用

缺点:
① 规则写的不好,改起来太麻烦
② 机场多的话要来回切换,规则也各不相同

2. 使用覆写:#

优点:
① 可以自己写规则文件,文件中只要更改订阅链接即可
② 合并了机场,使用了同样一个规则文件

缺点:
① 无法手动更新节点内容
② 手机上修改覆写中的规则太麻烦
③ 覆写使用的订阅链接只能是Clash的

3. 使用surgio生成的本地文件:#

优点:
① 合并了机场,使用了同一个规则文件
② 能根据模板自动生成手机版和电脑版的规则文件
③ 能够使用V2ray类型的订阅链接生成订阅文件

缺点:
① 更新节点内容需要手动执行代码
② 只能在电脑上生成规则文件,修改规则模板和配置内容

4. 使用surgio+github+Netify获取到自己的订阅链接:#

优点:
① 生成订阅链接,方便电脑和手机使用
② 设置了CICD每天节点内容都会在Netify上自动更新
③ 合并了机场,使用了同样一个规则文件
④ 能够使用V2ray类型的订阅链接生成订阅内容

缺点:
① 修改规则模板和配置内容,需要在电脑上修改,然后提交到github
② 部署流程复杂繁琐

流量传输流程:#

打开Mihomo#

① 只要开启代理,无论是直连还是代理
② 都会通过DNS解析服务来分析流量
③ 首先会通过nameserver-policy中的域名来进行解析
④ 首先会通过指定域名查询解析服务来进行解析,然后会通过geosite,private中的域名来解析,再然后会通过geosite:geolocation-!cn中的域名(它会排除cn的域名)来解析
⑤ 最后如果都解析不到那么会通过nameserver中的默认域名解析服务器来进行解析

没有打开Mihomo#

① 系统直连
② 自动匹配推流规则

系统代理和虚拟网卡的区别?#

系统代理#

代理程序会在系统”约定”的特定位置(如注册表,系统变量等) 设置好代理程序监听请求的端口信息,进行网络请求的应用会自发性地尝试读取这部分信息,并将请求发送至代理程序. 不同操作系统的”约定”方式各异
系统代理更像是一种行业内的”约定”,并非所有程序都遵守这种非强制性的”约定”,最终采取哪种方式发生请求往往取决于开发人员的意愿

特点:
① 具有自发性,网络请求程序尝试使用”约定”配置或使用网络请求程序里额外指定的配置
② 不能代理UDP流量(如游戏数据包)

虚拟网卡(Tun模式)#

代理程序会创建一张虚拟网卡,通过配置操作系统的路由将网络请求重定向到这张虚拟网卡,代理程序从虚拟网卡中读取并处理这些网络请求
与系统代理不同的是,该步骤发生在网络请求程序发出请求之后,因此这种方法不依赖开发人员的意愿

特点:
① 拦截和处理所有流量(TCP/UDP)重定向到本地的代理程序
② 网络请求程序无需额外配置

覆写使用方法#

使用说明#

仅在订阅链接不稳定,订阅链接频繁更换的情况下使用,这样可以将节点服务器保存到本地,从而不用频繁的去修改重构订阅平台了
使用时可以不订阅任何机场,已经选定了机场也没有关系,但覆写中也写入了这个机场那么会在列表中重复出现节点
覆写的模板尽量和surgio中的模板一致,仅将proxies:部分替换为覆写内容即可
只有在第一次获取链接的时候才会将文件保存到本地,之后更改链接也不会修改文件里的内容,需要先将原先保存的文件删除,才能能够重新拉取并保存新的订阅文件
文件保存目录在 .\data%USERPROFILE%\AppData\Roaming\sparkle\work

覆写教程#

覆写案例1
覆写案例2

关键部分#

...
Balance: &Balance {type: load-balance, url: 'https://www.gstatic.com/generate_204', interval: 300, disable-udp: false, hidden: true, include-all: true}

# 覆写内容
Proxy_Config: &Proxy_Config {type: http, interval: 86400, health-check: {enable: true,url: "https://www.gstatic.com/generate_204", interval: 300}}   

proxy-providers:
  Jichang1: # 机场名称1
    url: "" # 机场订阅链接1
    <<: *Proxy_Config
    override:
      additional-prefix: "[Jichang1]" # 添加前缀,更好辨认
    path: ./proxy_providers/Jichang1.yaml # 将机场1的节点信息保存到本地文件内

  Jichang2: # 机场名称2
    url: "" # 机场订阅链接2
    <<: *Proxy_Config
    override:
      additional-prefix: "[Jichang2]" # 添加前缀,更好辨认
    path: ./proxy_providers/Jichang2.yaml # 将机场2的节点信息保存到本地文件内

# 策略组
proxy-groups:
...
Clash 类工具覆写规则使用手册
https://fuwari.vercel.app/posts/使用说明/clashtoolsinstruction/clash-类工具覆写规则使用手册/
作者
Ctory-Nily
发布于
2025-01-24
许可协议
CC BY-NC-SA 4.0