【路由】OpenClash · 如何编辑分流规则
💠前言
- 针对家中设备&软件有不同的分流规则要求,故而需要采取自己编辑分流规则,利用软路由中的OpenClash进而达到分流互不干扰.
💠正文
- GitHub项目地址:寒江作者
- 在上篇文章中提到的Yaml规则文件,大家已经不陌生了,那么本次就带大家熟悉一下如何分流.
- 比如我想让家中电脑的刮削器软件TinyMediaManager,指定走对应的节点,那么首先需要确定该软件的ip&域名,才能编辑规则.
- 我们可以借助软路由部署的AdGrard Home,在"查询日志"中找到对应软件的域名.
- 我们也可以利用软路由中的"OpenClash"的"Yacd控制面板",找到"连接"菜单,查看"TinyMediaManager"走的是哪个代理规则和对应的域名是多少.
- 如图所示:
- 由于刮削软件的源是来自https://www.themoviedb.org, 故而还需要添加这个域名.
- 打开Yaml规则文件,在末尾处进行编辑,插入到中间任意一行:
- DOMAIN-SUFFIX,tinymediamanager.org,TinyMM
- DOMAIN-SUFFIX,themoviedb.org,TinyMM
- 上方规则末尾中的"TinyMM",须与代理组的"name"一致.
- DOMAIN-SUFFIX,是指所有的以这个域名结尾的网站,都走"TinyMM"节点规则的意思.
- DOMAIN,表示只识别当前的固定域名.通常采用DOMAIN-SUFFIX,更有广泛性.
- 最后在上方内容的代理组,插入以下内容即可
# TinyMediaManager
- name: "Tinymm"
type: select # 下面开启了自动测速
use:
- zgzu
filter: "TW"
- 引号内的name内容,需要根据在末尾处填写的名称一致;filter的内容,是录入节点名称;use的内容,是订阅的地址名称(可自定义).
- 这样就实现了流量的指定分流.
- 再比如电报消息,想指定节点分流,但是通过GitHub查询到有多个域名,不可能按照刚才"TinyMediaManager"的规则添加,毕竟现在有很多域名,依次填写就很繁琐.
- GitHub查询地址:https://github.com/v2fly/domain-list-community
- 打开网站后,选择上方的"Data"目录,左上角的搜索框,进行搜索,比如搜"telegram",能找到文件,就表示可以一键添加.
- 在Yaml规则文件中,在末尾处进行编辑,插入到中间任意一行:
- GEOSITE,telegram,Telegram
- 最后在上方内容的代理组,插入以下内容即可
# 电报
- name: "Telegram"
type: select # 下面开启了自动测速
use:
- zgzu
filter: "JP|TW|SG"
- 保存Yaml规则文件且运行后,你就可以在OpenClash的"METACUBEXD 控制面板"中,看见有刚才配置的"电报消息"与"TinyMediaManager"了.
- 附图:
- 如果想实现自动分流,选择延迟低的节点链接,可以如此配置:
# 迪士尼
- name: "🐭Disney"
type: url-test # 下面开启了自动测速
use:
- msio
filter: "US|SG"
url: "http://cp.cloudflare.com/generate_204"
interval: 300 #自动测速周期,单位:秒
💠✍️常见问题
- 添加了"- GEOSITE,youtube,Youtube"规则后,发现网页访问正常,但是手机APP无法访问,很有可能是GEO数据库没有更新订阅
- 打开OpenClash的插件设置,选择"GEO数据库订阅"--依次更新下方三个数据库,且查看日志,是否订阅更新成功.
- 电脑的代理皆正常访问,手机的YouTube/Google Store都无法访问?
- 在软路由"OpenClash"的Yaml规则文件中,增加相应的代理规则:增加到# WiFi-Calling规则末尾即可
+.services.googleapis.cn
+.xn--ngstr-lra8j.com
-
原因是手机APP需要获取真实ip地址,YouTube/GoogleStore等APP,才允许上网.
-
通过上述的操作,手机wifi就可以通过软路由进行代理.(*通常情况,不需要去额外配置)
-
GoogleStore 谷歌商店无法下载APP,一直等待下载的情况?
- OpenClash的覆写设置--DNS设置,勾选Fake-IP-Filter
--在下方添加以下规则
- OpenClash的覆写设置--DNS设置,勾选Fake-IP-Filter
#Google
+.services.googleapis.cn
+.xn--ngstr-lra8j.com
-
群晖NAS无法通过外网访问?
- OpenClash的插件设置--黑白名单--绕过核心来源的端口,选择NAS的端口号,或者自定义.
-
允许日志报错:警告 : 设置仅允许内网功能失败,无法获取IPv4 的 WAN 接口名称,请确保防火墙设置中 IPv4 WAN 区域的名称为 wan,如设备无 WAN口请忽略此提示...
- OpenClash的插件设置--流量控制--WAN 接口名称,进行绑定,LAN 接口名称,进行绑定即可.
💠✍️METACUBE(XD)面板 不显示节点信息?
- 打开控制面板,点击上方的"设置"菜单,选择"切换后端"
- 输入局域网的ip:9090,例如:http://192.168.1.1:9090
- 密码就是OpenClash面板界面显示的密码.
- 点击登陆,就可以看见节点信息了.
💠✍️如何直连
- 找到yaml规则文件这行内容"fake-ip-filter: #这里可以填写不使用fakeip的域名",进行域名新增:
- '*.weibo.com' #表示weibo国内直连,无需代理;*号表示相关的子域名也直连.
- 找到yaml规则文件末尾内容"rules",在下方列表中新增直连的域名:
- DOMAIN-SUFFIX,weibo.com,DIRECT #DIRECT,表示直连;PROXY,表示代理.
- 通常家中有群晖NAS等存储设备,就需要如此配置.
💠✍️鸣谢
💠✍️相关阅读
- 如何免费部署Clash订阅规则转换服务.
- 链接直达:利用CF进行永久订阅规则转换