hermes

# ==============================================================================
# config-fixed.yaml —— 基于本机实测证据的修复版(= data/config.yaml 当前内容)
#
# 与原始 config.yaml 的差异(每条都有实测依据):
#   1. 分组改为「国家关键字 filter 动态匹配」+ url-test 延迟排序;
#      节点只在 proxy-providers 定义一次,不写死任何节点名。
#   2. 自动组剔除结构性坏节点:exclude-filter 排除 ipv6-only 与「有效期/剩余」信息行
#      (实测 v6 节点 100% 不通;信息行不是真节点)。
#   3. 自动组加 expected-status(坏节点曾以 delay=0 记录,会被误判成最快);
#      加 interval/tolerance/lazy 让选择不会被长期卡在某个坏节点上。
#   4. 自动组把健康检查指向【你真正要下载的那台主机】上的小文件:
#      https://cache.nixos.org/nix-cache-info(仅 51 字节,几乎零流量,可 300s 一测)。
#      实测这几乎完美预测 cache.nixos.org 真实吞吐;而通用 CDN 目标会骗人——
#      例如 日本-TY-3-2 测 jsdelivr 只有 79ms,但对 cache.nixos.org 只有 20KB/s;
#      换成这个 URL 后它直接超时被淘汰,单线程吞吐 0.017→0.49 MiB/s(28 倍)。
#   5. 全局性能开关:unified-delay / tcp-concurrent / find-process-mode off。
#   6. 新增「下载聚合」load-balance 组(并行下载带宽叠加,实测 8 并发 3.07→4.58MiB/s)。
#   7. 测试地址统一改 HTTPS(mihomo 警告 HTTP 测试地址会被机场劫持)。
#   8. DNS fallback 的 1.1.1.1/8.8.8.8 换成本机可达的国内 DoH,并补 fallback-filter。
#
# 根因结论:之前 nixos-rebuild 慢(21~170KB/s)是因为自动选择长期停在
#   爱沙尼亚-EE-1(cache.nixos.org 实测 41KB/s)。同配置换节点后实测 3.4MB/s,
#   节点间差异达 100 倍。
# ==============================================================================
# ==============================================================================
# mihomo (Clash.Meta) 配置  ——  max2 / Docker
#
# 改这个文件前先读这三条设计原则:
#  1) 节点只在 proxy-providers 里定义一次。所有分组一律 use: [lite20280602]
#     + filter / exclude-filter 按「国家关键字」动态匹配;
#     订阅更新后新节点自动进组,本文件不写死任何节点名 / 服务器 / 端口。
#  2) 组类型统一 url-test:按真实延迟排序,自动使用最快的节点。
#     每个组都显式写 url / interval / tolerance / expected-status,
#     避免「选中一个坏节点后长期不改选」。
#  3) exclude-filter 剔除结构性不可用节点(ipv6-only、订阅到期信息行)。
#
# 实测依据(2026-10-06 本机 35 节点逐点吞吐,目标 cache.nixos.org):
#   澳-3 5.2MB/s · 荷-1 4.2 · 美-2 4.2 · 澳-1 3.6 · 日-TY-5 2.1 · 德-3 1.9
#   港-1 1.7KB/s · 台-1 0 · 新-1 5.9KB/s · 日-TY-3 2.1KB/s · 荷-4 0 · 爱沙尼亚-EE 41KB/s
#   → 选错节点 = 慢 100 倍,这就是之前 nixos-rebuild 慢的根因。
#   ⚠ 不要在这里把 nixos.org 写成 DIRECT:cache.nixos.org 直连是不通的。
# ==============================================================================

# ---------------------------------------------------
# 1. 基础连接
# ---------------------------------------------------
mixed-port: 7890
allow-lan: true
mode: rule
log-level: info
external-controller: '0.0.0.0:9090'
# ⚠ 目前 API 没有任何口令,局域网/Tailscale 上任何机器都能改你的代理设置。
#   要加口令就取消注释,并在 clash-ui 里填同样的 secret。
# secret: "换成你自己的随机口令"

# ---------------------------------------------------
# 2. 全局性能 / 延迟口径
# ---------------------------------------------------
ipv6: false                    # 与 dns.ipv6 一致;v6-only 节点由分组 exclude-filter 剔除
unified-delay: true            # 统一延迟口径(抹掉握手差异),url-test 排序才可信
tcp-concurrent: true           # 多 IP 域名并发建连,建连更快
find-process-mode: 'off'       # 容器内看不到宿主进程,关掉省 CPU
keep-alive-interval: 30
keep-alive-idle: 30

profile:
  store-selected: true         # 重启后记住手动选择
  store-fake-ip: true

sniffer:                       # 按真实域名分流(HTTP/TLS/QUIC 嗅探)
  enable: true
  sniff:
    HTTP:
      ports: [80, 8080-8880]
      override-destination: true
    TLS:
      ports: [443, 8443]
    QUIC:
      ports: [443, 8443]
  skip-domain:
    - 'Mijia Cloud'
    - '+.push.apple.com'

# ---------------------------------------------------
# 3. TUN 模式(Docker 容器环境建议关闭)
# ---------------------------------------------------
tun:
  enable: false
  stack: gvisor                 # 容器环境推荐 gvisor
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - "any:53"
    - "tcp://any:53"

# ---------------------------------------------------
# 4. 订阅来源(节点的唯一权威来源)
# ---------------------------------------------------
proxy-providers:
  lite20280602:
    type: http
    url: "https://s2.trojanflare.one/clashx/38f04999-a09c-4c06-8de7-f8c12697ad95"   # <<<<<< 你的订阅链接
    interval: 1800
    path: ./sub.yaml
    health-check:
      enable: true
      url: "https://www.gstatic.com/generate_204"
      interval: 300
      timeout: 5000
      lazy: false              # 不用时也定期测,避免「选了坏节点后长期不改选」

# ---------------------------------------------------
# 5. 策略组
#    - 顶层「节点选择」只列组,具体节点靠 use + filter 动态带出来
#    - 每个 url-test 组按国家关键字 filter 分组,组内按延迟自动取最快
#    - 正则约定:国家用中文名(订阅里最稳定),代码用 -xx- 带横杠写法,
#      避免 "us" 误匹配 "aUStralia" 这类子串事故
# ---------------------------------------------------
proxy-groups:
  # ---- 顶层出口选择器(默认走「自动选择」) ----
  - name: 节点选择
    type: select
    proxies: [自动选择, 下载聚合, 中国势力, 欧美势力, 美国, 谷歌, DIRECT]
    use: [lite20280602]        # ← 动态:订阅里的节点也会直接出现在这个选择列表里
    exclude-filter: "(?i)v6|剩余|有效期|到期|官网|Expire"   # 别把 v6-only / 到期信息行列进来

  # ---- 自动选择:所有可用节点里按延迟挑最快(默认出口) ----
  - name: 自动选择
    type: url-test
    use: [lite20280602]
    exclude-filter: "(?i)v6|剩余|有效期|到期|官网|Expire"
    url: "https://cache.nixos.org/nix-cache-info"
    expected-status: 200
    interval: 300
    timeout: 2000
    tolerance: 200             # 新节点要快 200ms 以上才切换,防止来回抖动
    lazy: false

  # ---- 并行下载聚合:轮询把「并发连接」分散到多个节点 → 多线程下载带宽叠加 ----
  #      适合 nix / apt / aria2 等并行下载;单个 TCP 大文件下载不受益。
  #      会话绑 IP 的站点可能异常,所以只作可选项、不作默认出口。
  - name: 下载聚合
    type: load-balance
    use: [lite20280602]
    exclude-filter: "(?i)v6|剩余|有效期|到期|官网|Expire"
    strategy: round-robin     # ⚠ 轮询会把连接发给任意成员,单线程下载可能抽到弱节点而卡住;
                              #   只建议给 nix/aria2 这类多线程下载器用,别当浏览器的默认出口
    url: "https://cache.nixos.org/nix-cache-info"
    expected-status: 200
    interval: 300
    timeout: 2000
    lazy: false

  # ---------------- 按国家/地区关键字动态分组(全世界合并为 3 组) ----------------
  #   中国势力 = 香港 + 台湾 + 新加坡
  #   欧美势力 = 欧洲各国 + 澳大利亚 + 日本
  #   美国     = 仅美国本土节点
  # 组类型统一 url-test:按延迟自动取最快;订阅更新后新节点自动进组,不写死节点名。
  - name: 中国势力
    type: url-test
    use: [lite20280602]
    filter: "(?i)香港|hong ?kong|-hk-|台湾|台灣|taiwan|-tw-|新加坡|狮城|singapore|-sg-"
    exclude-filter: "(?i)v6"
    url: "https://www.gstatic.com/generate_204"
    expected-status: 204
    interval: 300
    timeout: 5000
    tolerance: 100
    lazy: false

  - name: 欧美势力
    type: url-test
    use: [lite20280602]
    filter: "(?i)荷兰|德国|英国|法国|爱沙尼亚|爱尔兰|瑞士|瑞典|波兰|奥地利|比利时|芬兰|挪威|丹麦|西班牙|意大利|葡萄牙|捷克|乌克兰|俄罗斯|netherlands|germany|united ?kingdom|france|estonia|-nl-|-de-|-uk-|-fr-|-ee-|-ie-|-ch-|-se-|-pl-|-fi-|-no-|-dk-|-es-|-it-|澳大利亚|澳洲|australia|-au-|日本|japan|-jp-|-ty|-os"
    exclude-filter: "(?i)v6"
    url: "https://www.gstatic.com/generate_204"
    expected-status: 204
    interval: 300
    timeout: 5000
    tolerance: 100
    lazy: false

  - name: 美国
    type: url-test
    use: [lite20280602]
    filter: "(?i)美国|united ?states|-us-|-us[0-9]"
    exclude-filter: "(?i)v6"
    url: "https://www.gstatic.com/generate_204"
    expected-status: 204
    interval: 300
    timeout: 5000
    tolerance: 100
    lazy: false

  # ---------------- Google 体系专属出口 ----------------
  #   目标 = 「美国」 + 「欧美势力」(url-test 在两个区域组之间按延迟取最快)
  - name: 谷歌
    type: url-test
    proxies: [美国, 欧美势力]
    url: "https://www.gstatic.com/generate_204"
    expected-status: 204
    interval: 300
    timeout: 5000
    tolerance: 100
    lazy: false

# ---------------------------------------------------
# 6. 路由规则
# ---------------------------------------------------
rules:
  # 本地 / 内网直连
  - GEOIP,lan,DIRECT,no-resolve
  - GEOSITE,private,DIRECT

  # 自己域名直连
  - DOMAIN-SUFFIX,atibm.com,DIRECT
  # 国内镜像源直连
  - DOMAIN-SUFFIX,hf-mirror.com,DIRECT
  - DOMAIN-KEYWORD,tuna.tsinghua,DIRECT
  - DOMAIN-KEYWORD,ustc.edu,DIRECT
  - DOMAIN-KEYWORD,mirrors.aliyun,DIRECT
  - DOMAIN-KEYWORD,mirrors.tencent,DIRECT
  - DOMAIN-KEYWORD,mirrors.cloud.tencent,DIRECT
  - DOMAIN-KEYWORD,huaweicloud,DIRECT
  # 国内直连
  - DOMAIN-SUFFIX,126.com,DIRECT
  - DOMAIN-SUFFIX,163.com,DIRECT
  - DOMAIN-SUFFIX,1688.com,DIRECT
  - DOMAIN-SUFFIX,360buyimg.com,DIRECT
  - DOMAIN-SUFFIX,36kr.com,DIRECT
  - DOMAIN-SUFFIX,alicdn.com,DIRECT
  - DOMAIN-SUFFIX,alicloud.com,DIRECT
  - DOMAIN-SUFFIX,alipay.com,DIRECT
  - DOMAIN-SUFFIX,aliyun.com,DIRECT
  - DOMAIN-SUFFIX,aliyuncs.com,DIRECT
  - DOMAIN-SUFFIX,amemv.com,DIRECT
  - DOMAIN-SUFFIX,baidu.com,DIRECT
  - DOMAIN-SUFFIX,baidubce.com,DIRECT
  - DOMAIN-SUFFIX,baiducontent.com,DIRECT
  - DOMAIN-SUFFIX,baidustatic.com,DIRECT
  - DOMAIN-SUFFIX,bdimg.com,DIRECT
  - DOMAIN-SUFFIX,bdstatic.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.com,DIRECT
  - DOMAIN-SUFFIX,bilibili.tv,DIRECT
  - DOMAIN-SUFFIX,bytedance.com,DIRECT
  - DOMAIN-SUFFIX,caixin.com,DIRECT
  - DOMAIN-SUFFIX,cctv.com,DIRECT
  - DOMAIN-SUFFIX,chinanews.com,DIRECT
  - DOMAIN-SUFFIX,chinaso.com,DIRECT
  - DOMAIN-SUFFIX,dangdang.com,DIRECT
  - DOMAIN-SUFFIX,dianping.com,DIRECT
  - DOMAIN-SUFFIX,dingtalk.com,DIRECT
  - DOMAIN-SUFFIX,douyin.com,DIRECT
  - DOMAIN-SUFFIX,douyu.com,DIRECT
  - DOMAIN-SUFFIX,eastmoney.com,DIRECT
  - DOMAIN-SUFFIX,ele.me,DIRECT
  - DOMAIN-SUFFIX,hdslb.com,DIRECT
  - DOMAIN-SUFFIX,hicloud.com,DIRECT
  - DOMAIN-SUFFIX,honor.com,DIRECT
  - DOMAIN-SUFFIX,huawei.com,DIRECT
  - DOMAIN-SUFFIX,huaweicloud.com,DIRECT
  - DOMAIN-SUFFIX,huya.com,DIRECT
  - DOMAIN-SUFFIX,ifeng.com,DIRECT
  - DOMAIN-SUFFIX,iqiyi.com,DIRECT
  - DOMAIN-SUFFIX,iqiyipic.com,DIRECT
  - DOMAIN-SUFFIX,ithome.com,DIRECT
  - DOMAIN-SUFFIX,ixigua.com,DIRECT
  - DOMAIN-SUFFIX,jd.com,DIRECT
  - DOMAIN-SUFFIX,jd.hk,DIRECT
  - DOMAIN-SUFFIX,jdcloud.com,DIRECT
  - DOMAIN-SUFFIX,kuaishou.com,DIRECT
  - DOMAIN-SUFFIX,kwimgs.com,DIRECT
  - DOMAIN-SUFFIX,le.com,DIRECT
  - DOMAIN-SUFFIX,meituan.com,DIRECT
  - DOMAIN-SUFFIX,meituan.net,DIRECT
  - DOMAIN-SUFFIX,meizu.com,DIRECT
  - DOMAIN-SUFFIX,mgtv.com,DIRECT
  - DOMAIN-SUFFIX,mi.com,DIRECT
  - DOMAIN-SUFFIX,miimg.com,DIRECT
  - DOMAIN-SUFFIX,miui.com,DIRECT
  - DOMAIN-SUFFIX,myhuaweicloud.com,DIRECT
  - DOMAIN-SUFFIX,myqcloud.com,DIRECT
  - DOMAIN-SUFFIX,nubia.com,DIRECT
  - DOMAIN-SUFFIX,oneplus.com,DIRECT
  - DOMAIN-SUFFIX,oppo.com,DIRECT
  - DOMAIN-SUFFIX,oppomobile.com,DIRECT
  - DOMAIN-SUFFIX,opencode.ai,DIRECT
  - DOMAIN-SUFFIX,pinduoduo.com,DIRECT
  - DOMAIN-SUFFIX,pptv.com,DIRECT
  - DOMAIN-SUFFIX,qcloud.com,DIRECT
  - DOMAIN-SUFFIX,qingcloud.com,DIRECT
  - DOMAIN-SUFFIX,qiniu.com,DIRECT
  - DOMAIN-SUFFIX,qiyi.com,DIRECT
  - DOMAIN-SUFFIX,qq.com,DIRECT
  - DOMAIN-SUFFIX,realme.com,DIRECT
  - DOMAIN-SUFFIX,smartisan.com,DIRECT
  - DOMAIN-SUFFIX,so.com,DIRECT
  - DOMAIN-SUFFIX,sogou.com,DIRECT
  - DOMAIN-SUFFIX,sogoucdn.com,DIRECT
  - DOMAIN-SUFFIX,sohu.com,DIRECT
  - DOMAIN-SUFFIX,sohucs.com,DIRECT
  - DOMAIN-SUFFIX,suning.com,DIRECT
  - DOMAIN-SUFFIX,taobao.com,DIRECT
  - DOMAIN-SUFFIX,tencent-cloud.com,DIRECT
  - DOMAIN-SUFFIX,tencentcloud.com,DIRECT
  - DOMAIN-SUFFIX,tmall.com,DIRECT
  - DOMAIN-SUFFIX,toutiao.com,DIRECT
  - DOMAIN-SUFFIX,transsion.com,DIRECT
  - DOMAIN-SUFFIX,upyun.com,DIRECT
  - DOMAIN-SUFFIX,vip.com,DIRECT
  - DOMAIN-SUFFIX,vivo.com,DIRECT
  - DOMAIN-SUFFIX,vmall.com,DIRECT
  - DOMAIN-SUFFIX,volcengine.com,DIRECT
  - DOMAIN-SUFFIX,volces.com,DIRECT
  - DOMAIN-SUFFIX,wechat.com,DIRECT
  - DOMAIN-SUFFIX,weibo.com,DIRECT
  - DOMAIN-SUFFIX,weixin.com,DIRECT
  - DOMAIN-SUFFIX,weixinbridge.com,DIRECT
  - DOMAIN-SUFFIX,west263.com,DIRECT
  - DOMAIN-SUFFIX,xhscdn.com,DIRECT
  - DOMAIN-SUFFIX,xiaohongshu.com,DIRECT
  - DOMAIN-SUFFIX,xiaomi.com,DIRECT
  - DOMAIN-SUFFIX,xinhuanet.com,DIRECT
  - DOMAIN-SUFFIX,yangkeduo.com,DIRECT
  - DOMAIN-SUFFIX,yicai.com,DIRECT
  - DOMAIN-SUFFIX,youku.com,DIRECT
  - DOMAIN-SUFFIX,youkucdn.com,DIRECT
  - DOMAIN-SUFFIX,youzan.com,DIRECT
  - DOMAIN-SUFFIX,yy.com,DIRECT

  # nix 多线程并发 0.49→2.42 MiB/s「下载聚合」
  - DOMAIN-SUFFIX,cache.nixos.org,下载聚合

  # GitHub:下载 CDN 域名走「下载聚合」。
  - DOMAIN-SUFFIX,codeload.github.com,下载聚合
  - DOMAIN-SUFFIX,objects.githubusercontent.com,下载聚合
  - DOMAIN-SUFFIX,release-assets.githubusercontent.com,下载聚合
  - DOMAIN-SUFFIX,github-releases.githubusercontent.com,下载聚合
  - DOMAIN-SUFFIX,media.githubusercontent.com,下载聚合
  - DOMAIN-SUFFIX,raw.githubusercontent.com,下载聚合

  # GEOSITE 分组处理
  #   ⚠ IP-ASN 依赖本目录的 ASN.mmdb(容器内 /root/.config/mihomo/ASN.mmdb)。
  #     该文件缺失时 mihomo 会尝试联网下载,失败即 fatal(Parse config error),
  #     所以 data 目录备份/迁移时必须带上它。
  # Google 体系(域名 + 全部 Google 持有的 IP/ASN 15169)单独走「谷歌」组(= 美国 + 欧美势力)
  - DOMAIN-SUFFIX,googletagmanager.com,谷歌
  - DOMAIN-SUFFIX,google-analytics.com,谷歌
  - GEOSITE,category-ai-!cn,节点选择
  - GEOSITE,google,谷歌
  - IP-ASN,15169,谷歌
  # 中国直连
  - GEOSITE,apple-cn,DIRECT
  - GEOSITE,microsoft@cn,DIRECT
  - GEOSITE,category-games@cn,DIRECT
  - GEOSITE,steam@cn,DIRECT
  - GEOSITE,cn,DIRECT
  - GEOIP,cn,DIRECT
  # 其它
  - GEOSITE,youtube,节点选择
  - GEOSITE,telegram,节点选择
  - GEOSITE,twitter,节点选择
  - GEOSITE,netflix,节点选择
  - GEOSITE,github,节点选择
  - GEOSITE,geolocation-!cn,节点选择
  # other
  - MATCH,节点选择

# ---------------------------------------------------
# 7. DNS
#    ⚠ 原来的 fallback 是 https://1.1.1.1/dns-query 和 https://8.8.8.8/dns-query,
#      这两个 DoH 在国内会被丢包/阻断 → 国外域名首访可能卡住。
#      已换成国内可达的 DoH,并补上 fallback-filter(只有主 DNS 结果被判为
#      污染或境外时才启用 fallback)。
# ---------------------------------------------------
dns:
  enable: true
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16

  # 启动时解析 DoH 域名和订阅链接的纯 IP DNS
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29

  # 解析代理节点域名,必须是纯 IP
  proxy-server-nameserver:
    - 223.5.5.5
    - 119.29.29.29

  # 常规 DNS,国内直连
  nameserver:
    - 223.5.5.5
    - 119.29.29.29
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

  # 国外域名走 DoH(国内可达)
  fallback:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query

  fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
      - 240.0.0.0/4
      - 0.0.0.0/32
      - 127.0.0.1/32

  fake-ip-filter:
    - "+.lan"
    - "+.local"
    - "time.*.com"
    - "stun.*.*"