【科学上网】使用Clash for windows的Parsers功能实现对所有机场进行订阅转换

富强  ·  2023-03-26

免责声明

  • 转载自 Github并稍作修改
  • 本配置仅适用于更换了Clash Meta核心的Clash for Windows软件!!!
更新于2025/05/28:该软件已停止维护,且不适配最新Mihomo(原Clash Meta)核心!!!请勿使用!!!

配置

利用parsers功能,无论导入什么订阅链接,都会转化为自己的规则

parsers: # array  
  # - reg: ^.*$ 匹配所有订阅,或  - url: https://example.com/profile.yaml 指定订阅
  - reg: ^.*$ 
    # 删除服务商提供的策略组和规则  
    code: |
      module.exports.parse = (raw, { yaml }) => {  
        const rawObj = yaml.parse(raw)  
        const groups = []  
        const rules = []  
        return yaml.stringify({ ...rawObj, 'proxy-groups': groups, rules })  
      }   
    yaml: # 建立自己的配置  
      prepend-proxy-groups: # 建立策略组
        - name: Proxy 
          type: select
        - name: ??日本流媒
          type: select
        - name: ?AI应用
          type: select
        - name: ?TG消息
          type: select
        - name: ?广告拦截
          type: select
          proxies:
            - REJECT
        - name: ?直连
          type: select
          proxies:
            - DIRECT
          
  # 策略组说明  
       # - name: 分组名  
         # type: select       # 手动选点     
               # url-test     # 自动选择延迟最低的节点  
               # fallback     # 节点故障时自动切换下一个  
               # load-balance # 均衡使用分组内的节点  
         # url: http://www.gstatic.com/generate_204 # 测试地址 非select类型分组必要  
         # interval: 300 # 自动测试间隔时间,单位秒 非select类型分组必要  
         # tolerance: 50 # 允许的偏差,节点之间延迟差小于该值不切换 非必要  
         # proxies:    
           # - 节点名称或其他分组套娃  
            
      commands:
        # 向指定策略组添加订阅中的节点名,可使用正则过滤
        - proxy-groups.Proxy.proxies=[]proxyNames
        - proxy-groups.??日本流媒.proxies=[]proxyNames|^(.*)(日本|JP|Japan|Osaka|Tokyo|樱花|霓虹|xtom|??)+(.*)$
        - proxy-groups.?AI应用.proxies=[]proxyNames|^(.*)(美国|US|UnitedStates|United States|凤凰城|洛杉矶|圣何塞|San Jose|Los Angeles|Phoenix|??)+(.*)$
        - proxy-groups.?TG消息.proxies=[]proxyNames|^(.*)(新加坡|SG|狮城|坡|Singapore|SGP|??)+(.*)$
        # 为策略组添加一个Proxy,避免分组内筛选不到节点而报错
        - proxy-groups.??日本流媒.proxies.999+Proxy
        - proxy-groups.?AI应用.proxies.999+Proxy
        - proxy-groups.?TG消息.proxies.999+Proxy
        # commands说明:
        ## - proxy-groups.节点名字.proxies.0+DIRECT # 向指定分组第一个位置添加一个 DIRECT 节点名
        ## 一些可能用到的正则过滤节点示例,使分组更细致
        ## []proxyNames|a                         # 包含a
        ## []proxyNames|^(.*)(a|b)+(.*)$          # 包含a或b
        ## []proxyNames|^(?=.*a)(?=.*b).*$        # 包含a和b
        ## []proxyNames|^((?!b).)*a((?!b).)*$     # 包含a且不包含b
        ## []proxyNames|^((?!b|c).)*a((?!b|c).)*$ # 包含a且不包含b或c
        ## 更多正则教程,请看这里:https://deerchao.cn/tutorials/regex/regex.htm#top
      # 添加规则  
      prepend-rules: # 规则由上往下遍历,如上面规则已经命中,则不再往下处理
        - "AND,(AND,(DST-PORT,443),(NETWORK,UDP)),(NOT,((GEOIP,CN))),?广告拦截"
        # 放行一些可以不屏蔽的域名
        - DOMAIN-SUFFIX,baomitu.com,?直连 #360图片CDN-1
        - DOMAIN-SUFFIX,qhimg.com,?直连 #360图片CDN-2
        # 屏蔽搜狗 & 360
        - GEOSITE,sogou,?广告拦截
        - GEOSITE,qihoo360,?广告拦截
        # Palworld盗版防止存档变化
        - DOMAIN-SUFFIX,palworldgame.com,?广告拦截
        - DOMAIN-KEYWORD,pocketpair,?广告拦截
        # 老鹰讲AE
        - DOMAIN-SUFFIX,aic4d.com,?直连
        # 日本流媒体
        - DOMAIN-SUFFIX,jp,??日本流媒
        - GEOSITE,abema,??日本流媒
        - GEOSITE,niconico,??日本流媒
        - GEOSITE,dmm,??日本流媒
        - GEOSITE,hulu,??日本流媒
        - GEOSITE,pixiv,??日本流媒
        - DOMAIN-KEYWORD,asobistage,??日本流媒
        - GEOSITE,apple,??日本流媒
        # AI应用
        - GEOSITE,openai,?AI应用
        - DOMAIN-SUFFIX,bard.google.com,?AI应用
        - DOMAIN-SUFFIX,g4f.icu,?AI应用
        # 卡巴斯基
        - DOMAIN-KEYWORD,kaspersky,Proxy
        # Geosite
        - GEOSITE,category-scholar-!cn,Proxy
        - GEOSITE,youtube,Proxy
        - GEOSITE,google,Proxy
        - GEOSITE,bilibili@!cn,Proxy
        - GEOSITE,xbox,Proxy
        - GEOSITE,microsoft@cn,?直连
        - GEOSITE,microsoft,Proxy
        - GEOSITE,telegram,?TG消息
        - GEOSITE,microsoft,Proxy
        - GEOSITE,private,?直连
        - GEOSITE,steam@cn,?直连
        - GEOSITE,steam,Proxy
        - GEOSITE,steamunlocked,Proxy
        - GEOSITE,category-games@cn,?直连
        - GEOSITE,epicgames,?直连
        - DOMAIN-SUFFIX,cn,?直连
        - GEOSITE,geolocation-!cn,Proxy
        - GEOSITE,cn,?直连
        - GEOIP,private,?直连,no-resolve
        - GEOIP,telegram,?TG消息
        - GEOIP,google,Proxy
        - GEOIP,twitter,Proxy
        - GEOIP,CN,?直连
        - MATCH,Proxy

附上mixin规则

mixin: # object
  mode: rule                            # 规则模式:rule(规则) / global(全局代理)/ direct(全局直连)/ script (脚本)
  ipv6: true                            # 开启 IPv6 总开关,关闭阻断所有 IPv6 链接和屏蔽 DNS 请求 AAAA 记录
  log-level: info                       # 设置日志输出级别 (5 个级别:silent / error / warning / info / debug)
  mixed-port: 20810                     # 混合端口,HTTP和SOCKS5用一个端口
  unified-delay: true                   # 统一延迟,更换延迟计算方式,去除握手等额外延迟
  tcp-concurrent: true                  # 【Meta专属】TCP 并发连接所有 IP, 将使用最快握手的 TCP
  keep-alive-interval: 15               # TCP keep alive interval

  geodata-mode: true                    # 【Meta专属】使用geoip.dat数据库(默认:false使用mmdb数据库)
  geodata-loader: standard              # 【Meta专属】使用标准加载器加载GEO文件(会提升内存占用)
  geox-url:                             # 自定义GEO文件下载地址
    geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
    geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
    mmdb: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"
  geo-auto-update: true                 # 【Meta专属】启用自动更新GEO文件
  geo-update-interval: 24               # 【Meta专属】自动更新GEO文件间隔
  global-ua: clash.meta                 # 【Meta专属】自定义全局更新文件时的下载UA(默认:clash.meta)

  find-process-mode: strict             # 匹配所有进程(always/strict/off)
  global-client-fingerprint: chrome     # 全局 TLS 指纹,优先低于 proxy 内的 client-fingerprint
                                        # 可选: "chrome","firefox","safari","ios","random","none" options.

  profile:
    store-selected: true                # 存储 select 选择记录
    store-fake-ip: true                 # 持久化 fake-ip

  dns:
    enable: true                        # 关闭将使用系统 DNS
    ipv6: true                          # IPV6解析开关;如果为false,将返回ipv6结果为空
    enhanced-mode: fake-ip              # 模式:redir-host或fake-ip
    listen: 0.0.0.0:1053                # DNS 监听地址
    use-hosts: true                     # 是否查询系统 hosts
    fake-ip-range: 198.18.0.1/16        # fakeip 下的 IP 段设置,tun 网卡的默认 ip 也使用此值
    fake-ip-filter: ['+.lan', '+.msftncsi.com', 'msftconnecttest.com', '+.msftconnecttest.com', '*.msftncsi.com', '*.msftconnecttest.com']
                                        # Fake-ip 过滤,列表中的域名返回真实IP
    default-nameserver: [223.5.5.5, 119.29.29.29]
                                        # 解析非IP的dns用的dns服务器,只支持纯IP,(Meta可为其加密)
    nameserver: ["https://1.1.1.1/dns-query#Proxy", "https://dns.google/dns-query#Proxy"]
                                        # 默认DNS服务器,支持udp/tcp/dot/doh/doq
    proxy-server-nameserver: [https://223.5.5.5/dns-query, https://1.12.12.12/dns-query]
                                        # 代理DNS服务器,支持udp/tcp/dot/doh/doq
    nameserver-policy:
      "geosite:cn,private,bytedance,steam@cn,epicgames,microsoft@cn,apple@cn": [https://223.5.5.5/dns-query, https://120.53.53.53/dns-query]
      "geosite:steam,speedtest": ["https://1.1.1.1/dns-query#Proxy"]
                                        # 指定域名查询的解析服务器,可使用 geosite, 优先于 nameserver/fallback 查询
 
评论
猫の博客. All Rights Reserved. Theme Jasmine by Kent Liao.
当前博客已在风雨中运行了:
渝ICP备2024020975号 | 渝公网安备50010802006020号 | 萌ICP备20240422号
AniLive放映室 | AniLive资料库