使用方式
1. 下载软件
2. 关闭软件设置中的 DNS接管 和 域名嗅探接管
3. 修改软件外部资源中的 GeoIP和GeoSite 的链接 (使用其中一个即可)
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
⑤ 最后如果都解析不到那么会通过nameserver中的默认域名解析服务器来进行解析
没有打开Mihomo
① 系统直连
② 自动匹配推流规则
系统代理和虚拟网卡的区别?
系统代理
代理程序会在系统”约定”的特定位置(如注册表,系统变量等) 设置好代理程序监听请求的端口信息,进行网络请求的应用会自发性地尝试读取这部分信息,并将请求发送至代理程序. 不同操作系统的”约定”方式各异
系统代理更像是一种行业内的”约定”,并非所有程序都遵守这种非强制性的”约定”,最终采取哪种方式发生请求往往取决于开发人员的意愿
特点:
① 具有自发性,网络请求程序尝试使用”约定”配置或使用网络请求程序里额外指定的配置
② 不能代理UDP流量(如游戏数据包)
虚拟网卡(Tun模式)
代理程序会创建一张虚拟网卡,通过配置操作系统的路由将网络请求重定向到这张虚拟网卡,代理程序从虚拟网卡中读取并处理这些网络请求
与系统代理不同的是,该步骤发生在网络请求程序发出请求之后,因此这种方法不依赖开发人员的意愿
特点:
① 拦截和处理所有流量(TCP/UDP)重定向到本地的代理程序
② 网络请求程序无需额外配置
覆写使用方法
使用说明
仅在订阅链接不稳定,订阅链接频繁更换的情况下使用,这样可以将节点服务器保存到本地,从而不用频繁的去修改重构订阅平台了
使用时可以不订阅任何机场,已经选定了机场也没有关系,但覆写中也写入了这个机场那么会在列表中重复出现节点
覆写的模板尽量和surgio中的模板一致,仅将proxies:部分替换为覆写内容即可
只有在第一次获取链接的时候才会将文件保存到本地,之后更改链接也不会修改文件里的内容,需要先将原先保存的文件删除,才能能够重新拉取并保存新的订阅文件
文件保存目录在 .\data 或 %USERPROFILE%\AppData\Roaming\sparkle\work
覆写教程
关键部分
...
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:
...