机场自定义分流规则教程:AI 固定节点、流媒体走解锁节点、国内与 Steam 直连怎么写
机场订阅自带的规则够日常用,但 AI 服务被频繁换 IP 限流、Netflix 走到了不解锁的节点、Steam 下载跑掉几十 GB 流量,就需要自己加规则。本文讲规则从上到下匹配的原则和常用规则类型,Clash 系客户端(Clash Verge Rev / FlClash)用覆写加策略组和规则的完整写法,Shadowrocket 的两种规则添加方式,并给出 AI 固定节点、流媒体走解锁节点、国内与 Steam 直连三类可直接照抄的示例和常见错误。
什么时候需要自己写规则
机场订阅自带的分流规则一般是「国内直连、国外代理、广告拦截」三件事,日常够用。以下情况需要自己加几条:
- AI 服务被限流或提示地区不支持:策略组用了自动选择,每次请求的出口 IP 不同。要把 AI 域名固定到一个节点。
- 流媒体提示检测到代理:Netflix、Disney+ 走到了不解锁的节点。要让流媒体域名走标注了解锁的节点。
- 流量跑得快:Steam 下载、系统更新、国内 CDN 走了代理。要把它们显式直连。
- 特定服务打不开:某个网站被 GEOIP,CN 判为国内却实际在国外,或反过来。
规则模式、全局模式的基础概念见 规则模式、全局模式、直连模式的区别,本文直接讲写法。
规则的匹配原则
不管哪个客户端,规则引擎都是同一套逻辑:
- 从上到下逐条匹配,第一条命中即停止。 所以顺序决定结果。
- 具体在前,宽泛在后。 单个域名 → 域名后缀 → 域名关键词 → IP 段 → GEOIP → MATCH(兜底)。
- 自己加的规则放在订阅规则之前。 否则订阅里的宽泛规则先命中,你的规则永远轮不到。
- 规则指向策略组,策略组指向节点。 规则里写的是组名(如「AI」「流媒体」「DIRECT」),节点换了只改组,规则不用动。
常用规则类型:
| 类型 | 写法示例 | 匹配什么 |
|---|---|---|
| DOMAIN | DOMAIN,chat.openai.com,AI | 完全等于这个域名 |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,openai.com,AI | 该域名及其所有子域名 |
| DOMAIN-KEYWORD | DOMAIN-KEYWORD,netflix,流媒体 | 域名里含这个词(易误伤,慎用) |
| GEOSITE | GEOSITE,netflix,流媒体 | 内置分类列表里的全部域名(Mihomo 内核) |
| IP-CIDR | IP-CIDR,91.108.4.0/22,节点选择 | 目标 IP 在这个段里 |
| PROCESS-NAME | PROCESS-NAME,steam.exe,DIRECT | 发起请求的进程名(桌面端) |
| GEOIP | GEOIP,CN,DIRECT | 目标 IP 归属国家 |
| MATCH | MATCH,节点选择 | 兜底,前面都没命中时 |
Clash 系:用覆写加规则
Clash Verge Rev、FlClash、Clash Party、ClashMeta for Android 都支持「覆写」或「配置扩展」,把你的内容合并到订阅配置之上,订阅更新也不会丢。各客户端入口:Clash Verge Rev 在「订阅 → 右键订阅卡片 → 编辑覆写」或全局「覆写」页;FlClash 在「配置 → 覆写」;详细位置见 Clash Verge Rev 新手教程 和 FlClash 使用教程。
第一步:加策略组
在覆写的 proxy-groups 里新增组。prepend 表示加到原有组列表的前面:
prepend-proxy-groups:
- name: AI
type: select
proxies:
- 美国 01 # 换成你订阅里的实际节点名
- 新加坡 01
- name: 流媒体
type: select
proxies:
- 美国 流媒体
- 日本 解锁
- name: 游戏专线
type: select
proxies:
- 香港 IEPL
节点名必须和订阅里一字不差。有的客户端支持用 filter 正则按名字自动筛选节点(例如 filter: "美国|US"),这样机场改节点名也不怕。
第二步:加规则
prepend-rules:
# —— AI:固定到一个节点 ——
- DOMAIN-SUFFIX,openai.com,AI
- DOMAIN-SUFFIX,chatgpt.com,AI
- DOMAIN-SUFFIX,oaistatic.com,AI
- DOMAIN-SUFFIX,oaiusercontent.com,AI
- DOMAIN-SUFFIX,anthropic.com,AI
- DOMAIN-SUFFIX,claude.ai,AI
- DOMAIN-SUFFIX,gemini.google.com,AI
- DOMAIN-SUFFIX,aistudio.google.com,AI
# —— 流媒体:走解锁节点 ——
- GEOSITE,netflix,流媒体
- GEOSITE,disney,流媒体
- DOMAIN-SUFFIX,tiktok.com,流媒体
- DOMAIN-SUFFIX,tiktokv.com,流媒体
# —— 直连:国内与 Steam 下载 ——
- DOMAIN-SUFFIX,steamcontent.com,DIRECT
- DOMAIN-SUFFIX,steamserver.net,DIRECT
- DOMAIN-SUFFIX,steamstatic.com,DIRECT
- PROCESS-NAME,steam.exe,DIRECT
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
说明:
prepend-rules会把这些规则插在订阅规则之前,保证优先匹配。- Steam 的商店和社区(
steampowered.com、steamcommunity.com)不要写直连,它们国内访问经常有问题,让订阅的默认规则把它们走代理即可;只把下载域名直连。 GEOSITE规则需要 Mihomo(Clash Meta)内核,上述客户端都是。老版 Clash 内核不认,用 DOMAIN-SUFFIX 列举代替。no-resolve让 GEOIP 规则不主动解析域名,避免 DNS 污染干扰,也减少泄露。
第三步:保存并验证
保存覆写后客户端会重新加载。打开「连接」或「日志」面板,访问 chat.openai.com,确认该连接的规则列显示你的 AI 规则、节点列显示 AI 组里的节点。流媒体和 Steam 同样验证一遍。
另一种方式:直接改配置
如果客户端不支持覆写,可以把订阅下载为本地文件后手动编辑 rules 和 proxy-groups,但每次订阅更新都要重做,不推荐。
Shadowrocket:规则写法
Shadowrocket 的规则在「配置」页。订阅导入时它会生成一个配置文件,默认用「远程配置」或内置规则。自定义有两种做法。
做法一:直接在当前配置里加规则
- 「配置」→ 当前配置右侧「i」→「规则」→ 右上角「+」。
- 类型选
DOMAIN-SUFFIX,内容填openai.com,策略选一个具体节点或策略组。 - 重复添加其他域名。添加后长按可拖动排序,把自己的规则拖到最前面。
做法二:导入自定义规则文件
写一个 Surge 格式的规则文件,放在任何可访问的位置(iCloud、自己的服务器、GitHub 私有 Gist 的 raw 链接),在 Shadowrocket「配置」里添加远程配置。格式示例:
[Rule]
# AI 固定节点(策略写策略组名或节点名)
DOMAIN-SUFFIX,openai.com,AI
DOMAIN-SUFFIX,chatgpt.com,AI
DOMAIN-SUFFIX,anthropic.com,AI
DOMAIN-SUFFIX,claude.ai,AI
# 流媒体
RULE-SET,https://raw.githubusercontent.com/.../Netflix.list,流媒体
DOMAIN-SUFFIX,tiktok.com,流媒体
# 直连
DOMAIN-SUFFIX,steamcontent.com,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
Shadowrocket 的策略组在「配置 → 策略组」里新建,类型选 select,加入指定节点。规则里的策略名填这个组名。FINAL 等同于 Clash 的 MATCH,必须在最后。更多操作见 Shadowrocket 小火箭教程。
Stash、Surge、Loon、Quantumult X 的规则语法与此接近,差别主要在配置文件结构,各客户端教程里有说明。
三类场景的要点
AI 固定节点:组里只放一个节点,不要用 url-test 自动测速组,否则还是会换 IP。节点选美国、新加坡、日本,香港和台湾对部分服务不友好。换节点后清一次网站 Cookie。节点选择的详细建议见 用机场跑 ChatGPT、Claude、Gemini 节点怎么选。
流媒体走解锁节点:节点名带「流媒体」「Netflix」「解锁」的放进组里。Netflix 要把 GEOSITE,netflix 或完整域名列表(含 nflxvideo.net、nflximg.net)都指向这个组,漏一个 CDN 域名就会「只能看自制剧」。
国内和 Steam 直连:GEOSITE,cn 和 GEOIP,CN 两条都要有,前者按域名、后者按 IP。国内 App 的海外 CDN(例如部分游戏的更新服务器)如果被代理,在「连接」面板找到域名单独加 DIRECT。
常见错误
- 规则写在 MATCH / FINAL 之后:永远匹配不到。
- 策略组名有空格或大小写不一致:规则指向不存在的组,客户端报错或回落到默认。
- YAML 缩进用了 Tab:Clash 配置只认空格。
- 用 DOMAIN-KEYWORD 写
google:把所有带 google 的域名都代理了,包括国内能直连的部分服务。 - 只改了订阅文件没用覆写:下次更新全没了。
- 开了 TUN 但系统代理也开着:部分流量重复经过,表现为规则命中异常。关一个。
规则正确但 DNS 解析不对,流媒体和 AI 一样会出问题,这部分见 Clash DNS 设置教程。
相关
Clash 机场推荐 · 规则 / 全局 / 直连模式 · Clash DNS 设置 · AI 机场推荐
常见问题
机场订阅自带的规则能改吗?改了会不会被更新覆盖?
直接改订阅文件会在下次更新时被覆盖。Clash 系客户端要用「覆写」(Override / Script)功能把自己的规则叠加在订阅之上,Shadowrocket 则是在配置里单独维护规则列表,都不受订阅更新影响。
分流规则的先后顺序重要吗?
非常重要。规则从上到下逐条匹配,第一条命中就停止。所以具体的(某个域名)放前面、宽泛的(GEOIP、MATCH)放后面,自己加的规则要插在订阅规则之前。
怎么让 ChatGPT、Claude 固定走一个节点?
新建一个只含一个节点的策略组,把 openai.com、chatgpt.com、anthropic.com、claude.ai 等域名用 DOMAIN-SUFFIX 规则指向这个组,并放在规则列表前部。
DOMAIN-SUFFIX、DOMAIN-KEYWORD、GEOSITE 有什么区别?
DOMAIN-SUFFIX 匹配域名后缀(含子域名),最常用;DOMAIN-KEYWORD 匹配域名里包含某个词,范围大容易误伤;GEOSITE 引用内置的域名分类列表(如 geosite:netflix),一条规则覆盖一整类服务,需要 Mihomo 内核。
规则写错了怎么排查?
在客户端的「连接」面板里看具体请求命中了哪条规则、走了哪个节点。常见错误是规则放在 MATCH 之后永远匹配不到、策略组名写错、yaml 缩进不对。
本文为信息整理与个人经验,不构成购买建议。机场政策与软件界面可能变化,以官方为准。发现过期内容请 联系纠错。