官方多平台完整配置¶
examples/official/multi-platform.yaml 是项目维护的完整客户端基线。它不是字段展览,而是能够通过配置编译器、启动远程 订阅、刷新规则集并进入运行时的正式示例。
配置默认从仓库拉取 provider-demo.yaml。 该订阅只提供 Direct 节点,所以克隆仓库后无需私人凭据即可验证完整数据流。它不是 免费代理服务。需要代理时,把 feeds.primary.url 换成自己的订阅地址。
已覆盖的功能¶
| 部分 | 官方配置内容 |
|---|---|
| 平台 | Windows、macOS、Linux、Android root TUN、Android VpnService |
| 订阅 | HTTPS 拉取、定时更新、响应大小限制、请求头、过滤、重命名、磁盘缓存 |
| 策略组 | 两层嵌套 manual 分流组,smart、fast、stable、spread 节点组 |
| 分流 | 域名、IP、网络、端口、进程、协议嗅探、最终规则 |
| 规则集 | 23 个远程 MRS 集合和 1 个内联集合 |
| DNS | 国内与公共服务组、多出口、自适应选择、Fallback、策略和 Fake IP |
| 接管 | 双栈 TUN、自动路由、DNS 劫持、LAN 保留、EIM NAT |
| 管理 | 本机 Mixed 端口、本机面板、原生 API、Clash 兼容 API、Smart 解释 |
直接使用¶
推荐使用默认 standard 组件集构建。自定义精简构建至少需要保留配置中实际使用的 with_tun、订阅协议和节点协议组件,否则 check 会明确报告缺失的编译组件。
Linux 和 macOS:
cp examples/official/multi-platform.yaml config.yaml
./wuther-core check config.yaml
./wuther-core feeds refresh config.yaml --cache-dir data/feeds
./wuther-core ruleset refresh config.yaml --cache-dir data/rulesets
sudo ./wuther-core run -c config.yaml
Windows PowerShell:
Copy-Item examples\official\multi-platform.yaml config.yaml
.\wuther-core.exe check config.yaml
.\wuther-core.exe feeds refresh config.yaml --cache-dir data\feeds
.\wuther-core.exe ruleset refresh config.yaml --cache-dir data\rulesets
.\wuther-core.exe run -c config.yaml
Windows 启动 TUN 时需要管理员权限。Linux 与 macOS 需要 root 或等效网络能力。 只使用本地 Mixed 代理时,可以先把 capture.on 改成 false。
替换远程订阅¶
只修改这一项即可接入自己的 provider:
支持 Clash、Mihomo、节点 URI、base64 和 WutherCore 原生订阅。订阅 URL 属于敏感 凭据,不要提交到仓库。官方配置给节点统一增加 [订阅] 前缀,策略组的地区偏好在 重命名后执行。
如果订阅首次拉取失败,DIRECT-FALLBACK 仍能让内核保持可用,但此时流量是直连, 不具备代理提供的出口位置或隐私属性。面板和日志会显示当前选择,不能把直连兜底 误认为代理成功。
策略组¶
| 组名 | 策略 | 用途 |
|---|---|---|
节点选择 | manual | 全局分流入口,可从地区组和通用节点组中选择 |
人工智能 | manual | AI 规则的独立地区选择 |
流媒体 | manual | 流媒体规则的独立地区选择 |
游戏加速 | manual | 游戏规则的独立地区选择 |
开发服务 | manual | GitHub, Git, SSH 和开发站点的独立地区选择 |
即时通信 | manual | Telegram 等消息服务的独立地区选择 |
智能节点 | smart | 综合延迟, 成功率, 稳定性和站点记忆 |
最低延迟节点 | fast | 健康检查后选择低延迟节点 |
故障转移节点 | stable | 按候选顺序选择首个可用节点 |
负载均衡节点 | spread | 按会话分散连接 |
配置明确分成两层。上层是路由引用的中文分流策略组,只负责选择下级节点组。下层是 地区节点组和通用节点组,只负责从静态节点与 provider 中选择实际节点。运行时会 解析完整链路,例如 人工智能 -> 美国节点 -> [订阅] US-01。DNS 的命名出口也使用 同一套递归选路,不会把策略组名误当成普通 outbound。
地区节点组包括 香港节点, 台湾节点, 日本节点, 新加坡节点, 韩国节点, 美国节点, 加拿大节点, 英国节点, 德国节点, 法国节点, 澳大利亚节点, 印度节点 和 其他地区。每个地区组使用独立正则过滤节点名, 同时识别中文地区名, 英文名称, 常用国家代码和旗帜字符。没有该地区节点时只使用 DIRECT-FALLBACK,不会拿其它地区节点伪装成地区命中。
所有策略组的图标都来自 luestr/IconResource。功能组使用对应应用或 功能图标,地区组使用 120px 国旗资源。人工智能 明确使用该仓库的 ChatGPT 图标。
项目当前会拒绝 chain,不会把未实现的多跳组降级为单跳。因此官方配置覆盖全部可 执行策略,但不写不可执行的示例。
这些组都支持 Clash API 持久 pin。Manual 会一直保持直接选择,Clash API 额外返回 selectedChain 和 resolvedNow,方便面板展示最终地区节点与实际节点。Smart, Fast, Stable 和 Spread 的固定节点失活时临时回退,成功执行组测速后解除旧 pin 并恢复自动选择。官方配置为自动组设置了 expected-status, interval, idle-timeout, unified-delay, 失败阈值和切换迟滞。没有参与真实选路的组不会 在后台扫描订阅。负载均衡节点 使用 strategy: sticky-sessions,不要把 Smart 的 sticky 字段 误当成 Spread 算法。
规则集¶
远程 MRS 来自 MetaCubeX meta-rules-dat,配置使用 meta 分支的原始文件,并为每个集合设置独立缓存路径和刷新周期。
规则顺序是安全边界:
- 用户例外、私有域名和私有地址先直连。
- 广告集合随后阻断。
- 中国大陆服务和地址直连。
- AI、流媒体、消息、开发和游戏进入专用组。
- 其它非中国大陆域名进入
节点选择。 - 最终规则进入
节点选择。
MRS 文件下载失败时不会用空集合替换上次成功缓存。首次运行尚无缓存时,未加载集合 不会伪造命中,最终规则仍会处理流量。
下载的规则数据适用上游项目自己的许可证。WutherCore 仓库只保存 URL 和配置,不把 上游规则正文复制进源码。
DNS¶
国内DNS 并发查询 AliDNS 和 DNSPod。国外DNS 通过 节点选择, 故障转移节点 或 Direct 访问 Cloudflare, Google 与 Quad9。默认 nameserver 是 国内DNS,fallback 是 国外DNS,方向不会颠倒。
已知中国大陆域名直接进入 国内DNS。已知国外分类进入 国外DNS。尚未被规则集 分类的域名先查询国内 DNS,返回非中国大陆地址,保留地址或污染地址时再查询国外 DNS。geoip-code: CN 对应配置中的 geoip-cn MRS 集合,因此不是只有字段外观而 没有真实 GeoIP 数据。
代理节点域名使用独立的 节点域名DNS。该组只访问 IP 字面地址的国内 DoH,不依赖 尚未建立的代理隧道,避免启动阶段出现 DNS 与代理互相等待。
DNS 规则与路由规则使用同一批规则集:
resolver:
nameserver: [国内DNS]
fallback: [国外DNS]
rules:
- "set:ads -> nxdomain"
- "set:cn-domain -> route:国内DNS?strategy=parallel"
- "set:ai-global -> route:国外DNS?strategy=adaptive"
- "any -> route:default?strategy=parallel"
Fake IP 与 capture.resolver: hijack 配套启用。关闭 TUN 并只使用 Mixed 代理时, 应用是否使用该 DNS 取决于系统代理和应用自身设置。
平台行为¶
| 平台 | method: auto 的实际入口 | 启动条件 |
|---|---|---|
| Windows | Wintun TUN | 管理员权限和可用的 Wintun |
| macOS | 系统 TUN | root 或宿主授予的网络权限 |
| Linux | root 管理的 TUN | root 或有效 CAP_NET_ADMIN |
| Android root | /dev/net/tun | 整个 daemon 以 root 或有效 capability 运行 |
| Android 非 root | VpnService TUN fd | 宿主先创建 VPN,再向内核注入 fd |
Android 的 auto 只选择 TUN,不会在 TPROXY 和 REDIRECT 之间自动切换。需要 root 透明代理时继续使用 Android root TPROXY 或 Android root REDIRECT。
capture.tun.auto_redirect 明确保持关闭,因为它只属于 Linux 的独立 TUN 快路径, 不能放进跨平台配置。
上线检查¶
wuther-core check config.yaml
wuther-core explain config.yaml
wuther-core feeds list config.yaml
wuther-core feeds refresh config.yaml --cache-dir data/feeds
wuther-core ruleset list config.yaml
wuther-core ruleset refresh config.yaml --cache-dir data/rulesets
确认订阅节点数、全部规则集更新时间、节点选择 的完整选择链和 DNS 查询结果后再把配置加入 系统服务。完整字段仍以逐字段索引和 check 的严格校验为准。