最近研究代理工具上瘾, 其实也是为了更好地上网😂 前面研究了 clash for windows mixin 的多机场切换, 昨天研究了安卓如何不开 vpn 进行上网. 因为不想在前台挂一个软件, 还有小锁的图标.
于是就发现了 clash for magisk. 其实 cfm 有两种, 一种是原始的核, 好像叫 premium, 还有一个就是本文所讲的 meta 核了.
我发现 meta 核相较 premium 核多了很多功能, 参见完整配置示例:
https://docs.metacubex.one/example/ex1
比如,
1, dns.nameserver 支持 doq
2, dns.fallback 支持 group, 新手看着可能很奇怪, 举个例子就知道了: 🔰国外流量
3, dns.fallback-filter 支持 geosite , 你可以在这多加个 geosite: geolocation-!cn 让非 cn 的域名走 fallback dns.
4, dns.proxy-server-nameserver, 是指如果梯子节点是域名的话, 用此 dns 来解析. 这个就非常实用了, 因为最近研究的这么多机场, 基本节点服务器都是域名.
5, proxy-groups.filter, 这个是支持正则表达式筛选的, 可以非常方便地筛掉带 "官网, 群组, 直连" 之类无用的节点.
6, rule-providers.url 支持走代理访问, 有些规则比如去广告的, 或者 google 的, 一整个列表以订阅的方式获取, 这个 url 可能来自 githubusercontent 或者别的被屏蔽的域名, 这时候 clash meta 会自动从 rules 里判断此 url 是否该走代理.
以上是我这次研究总结出的 meta 核的亮点. 看得云里雾里的是吧, 我写这篇文章的目的就是为了避免谁再折腾 cfm 折腾十几个小时才有结果.
clash meta for magisk 是利用 tun 网口来实现代理的(在 clash meta for magisk 开着时, 不能开启 vpn 工具, 比如 httpcanary), 我在 telegram 频道和 github 上找了一些 cfm 但效果都不满意, 有的模块完全就是大杂烩, 在我手机上装完 cpu 直接起飞了... 我的需求是 clash for magisk 能正常运行, 并且和我的 dns, 也就是 adguard home magisk 正常对接. 我的 ahm 里面做了分流, 国内的域名写了个名单, 走国内的 dns over https, 国外的域名和我没有维护的域名, 全部走谷歌的 doh, 也就是 https://8.8.8.8/dns-query https://8.8.4.4/dns-query. 解析出来以后, 该直连的直连, 该代理的代理.
流程图如下图所示, 分流的同时保护了自己的隐私:
geodata-loader: memconservative #geodata载入内存用小内存模式还是标准模式, 标准模式就换成 standard 我的geoip只有170多K, 也不用geosite, 所以测试看不出两者差距.
proxies: #静态配置, 维护起来较为麻烦, 我建议留空, 去配置下面的proxy-providers
proxy-providers:
机场1:
type: http
url: "clash格式的订阅链接"
path: 机场1.yaml
interval: 21600 #这么多秒更新一次订阅, 21600s=6h
health-check:
enable: false #健康检查, 用下面的url来检查这个组里面所有的节点
url: http://www.gstatic.com/generate_204 #HTTP204状态的链接
interval: 300 #每5分钟检查一次
机场2:
type: http
url: "clash格式的订阅链接"
path: 机场2.yaml
interval: 21600
health-check:
enable: false
url: http://www.gstatic.com/generate_204
interval: 300
机场3:
type: http
url: "clash格式的订阅链接"
path: 机场3.yaml
interval: 21600
health-check:
enable: false
url: http://www.gstatic.com/generate_204
interval: 300
#机场4, 可以继续写, 把上面的一段复制下来, 防止空格问题
proxy-groups:
- name: Proxy
type: select
proxies: #下面写每个订阅里面包含所有节点的group name. 在你订阅里找proxy-groups, 里面选一个包含全部节点的组名, 注意名字后面 type 是 select.
- 🚀 节点选择 #记住这些 proxy-groups.name
- port1
- port2
#- 机场4的 proxy-groups.name, 可以继续写, 记住这些顺序
- name: 🚀 节点选择 #改这
type: select
use:
- 机场1
filter: ^((?!(IAPL|群组|直连|官网|群组|套餐|剩余|更新订阅)).)*$ #排除正则, 排除这些关键字. 包含正则请自己发挥
- name: port1 #改这
type: select
use:
- 机场2
filter: ^((?!(IAPL|群组|直连|官网|群组|套餐|剩余|更新订阅)).)*$
- name: port2 #改这
type: select
use:
- 机场3
filter: ^((?!(IAPL|群组|直连|官网|群组|套餐|剩余|更新订阅)).)*$
#- name: 机场多可以继续写...
rules:
#- PROCESS-NAME,com.kiwibrowser.browser,DIRECT #配合第一段代码中的enable-process: true使用, 中间是包名, DIRECT则是指定这个应用程序直连.
- IP-CIDR,8.8.8.8/32,Proxy #adguardhome magisk里的两个dns, 我单独拉出来了, 让它们走代理.
- IP-CIDR,8.8.4.4/32,Proxy
- GEOIP,PRIVATE,DIRECT #内网IP直连, 如192.168
- GEOIP,CN,DIRECT #adguardhome magisk解析出来的CN IP走直连
- IP-CIDR,255.255.255.255/32,REJECT,no-resolve #adguardhome magisk专用的拦截IP, 比如拦截了sentry.io这个域名, 那么adguardhome magisk将返回255.255.255.255这个IP, 又因为rules这里面, 255.255.255.255这个IP是REJECT(拦截), 所以达到了去广告的效果.
- MATCH,Proxy #除了以上几条规则以外, 其它的全部走代理. 注意这个 Proxy 是我在proxy-groups里面起的组名, 不要以为Proxy就是代理, 它是个组名, 只不过组名里都是代理节点, 所以它才走了代理.
我用到的 clash meta for magisk 模块:
https://t.me/MagiskChangeKing/126
这个模块还带一个安卓APK的图形界面, 目前有这些功能: 开关, 查看流量使用/内存和CPU占用, 热更新配置(不用重启clash meta内核, 就可以让改动后的clash meta配置生效), 更新geo文件, 内部打开网页面板(不需要调起浏览器), IP检查, fast.com测速.
https://t.me/MagiskChangeKing/159
还有一个配置检测工具:
0 条评论:
发表评论