“国内直连、国外代理”是中文用户最常用的分流策略:访问国内网站保持原速不耗流量,访问境外网站自动走节点。绝大多数订阅自带的就是这套思路,本文展示它的完整结构,便于你理解和修改。

方案结构

规则自上而下分为四层:

  1. 私有地址直连:局域网、回环地址永远不该进代理。
  2. 明确的拦截/例外:广告拦截、个别强制走代理或直连的域名。
  3. 国内流量直连:国内域名集合 + GEOIP,CN。
  4. 兜底走代理:其余全部交给代理组。

完整示例(基于规则集)

rule-providers:
  reject:
    type: http
    behavior: domain
    url: "https://cdn.example.com/reject.txt"
    path: ./ruleset/reject.yaml
    interval: 86400
  direct-cn:
    type: http
    behavior: domain
    url: "https://cdn.example.com/direct.txt"
    path: ./ruleset/direct.yaml
    interval: 86400
  cncidr:
    type: http
    behavior: ipcidr
    url: "https://cdn.example.com/cncidr.txt"
    path: ./ruleset/cncidr.yaml
    interval: 86400

rules:
  # 1. 私有网段
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  # 2. 拦截与个人例外
  - RULE-SET,reject,REJECT
  - DOMAIN-SUFFIX,my-bank.com,DIRECT
  # 3. 国内直连
  - RULE-SET,direct-cn,DIRECT
  - RULE-SET,cncidr,DIRECT,no-resolve
  - GEOIP,CN,DIRECT
  # 4. 兜底
  - MATCH,节点选择

示例中的规则集 URL 请替换为你选用的社区规则源(如 Loyalsoldier/clash-rules 的对应文件)。

黑名单与白名单之辨

  • 上面的写法是白名单思路:明确认识的国内流量直连,其余默认走代理。冷门国外网站不会漏。
  • 反过来(默认直连、维护“需代理清单”)是黑名单思路,省流量但清单永远追不上新网站。日常推荐白名单思路。
提示:直连了不该直连的网站(或反之)时,别急着改集合,先加一条前置的个人规则覆盖即可,方法见自定义规则示例