【路由】OpenClash · 如何编辑分流规则

💠前言


  • 针对家中设备&软件有不同的分流规则要求,故而需要采取自己编辑分流规则,利用软路由中的OpenClash进而达到分流互不干扰.

💠正文


  • GitHub项目地址:寒江作者
  • 在上篇文章中提到的Yaml规则文件,大家已经不陌生了,那么本次就带大家熟悉一下如何分流.
  • 比如我想让家中电脑的刮削器软件TinyMediaManager,指定走对应的节点,那么首先需要确定该软件的ip&域名,才能编辑规则.
    • 我们可以借助软路由部署的AdGrard Home,在"查询日志"中找到对应软件的域名.
    • 我们也可以利用软路由中的"OpenClash"的"Yacd控制面板",找到"连接"菜单,查看"TinyMediaManager"走的是哪个代理规则和对应的域名是多少.
  • 如图所示:
  • tiny
  • 由于刮削软件的源是来自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
  • fakeip

  • 原因是手机APP需要获取真实ip地址,YouTube/GoogleStore等APP,才允许上网.

  • 通过上述的操作,手机wifi就可以通过软路由进行代理.(*通常情况,不需要去额外配置)

  • GoogleStore 谷歌商店无法下载APP,一直等待下载的情况?

    • 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等存储设备,就需要如此配置.

💠✍️鸣谢

💠✍️相关阅读

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息