功能矩阵¶
本页描述当前代码边界。WutherCore 仍在 1.0 之前;“已实现”表示存在对应代码路径,不等同于对所有服务端版本、传输组合和网络环境作出兼容承诺。
核心能力¶
| 能力 | 状态 | 说明 |
|---|---|---|
| Friendly YAML | 已实现 | Profile 默认值、显式覆盖、check 与 explain |
| Mixed 入站 | 已实现 | 一个监听端口同时接受 HTTP 和 SOCKS5 |
| 订阅管理 | 已实现 | 原生 YAML/JSON、Young、格式与协议探测、HTTP/文件/内联、Age 解密、Mihomo 26 类节点、过滤与安全缓存 |
| 外部规则集 | 已实现 | Mihomo YAML/文本/MRS v1,sing-box JSON/SRS v1-v5,内联 Payload,RRS v3,兼容 RRS v1/v2 |
| 路由匹配 | 已实现 | Mihomo 全部官方规则,逻辑规则,子规则,按序 DNS 与 no-resolve |
| 策略组 | 已实现 | 嵌套 Manual 分流, Smart, URLTest, Fallback, Load Balance, Random, Weighted, glob 成员来源, 持久 pin |
| DNS | 已实现 | 多上游、缓存、Hosts、Fallback、Fake IP、IPv6 策略 |
| 独立 DNS 服务 | 已实现 | 同一地址提供 UDP 与 TCP DNS |
| 透明代理 | 平台相关 | TUN、TPROXY、REDIRECT 与 Android VpnService |
| API | 已实现 | 原生 /v1 与 Clash/Mihomo 兼容接口 |
| 可观测性 | 已实现 | 日志、任意精度持久流量、低争用连接统计、策略组和节点状态 |
| 持久化 | 已实现 | Smart 学习、手动选择、Pin 和节点历史 |
| 配置迁移 | 已实现 | Mihomo 配置迁移到 WutherCore YAML |
平台能力¶
| 平台 | HTTP / SOCKS5 | TUN | TPROXY | REDIRECT | 特殊接入 |
|---|---|---|---|---|---|
| Windows | 是 | 是 | 无 | 无 | Wintun 与系统路由 |
| Linux | 是 | 是 | 是 | 是 | 策略路由、iptables/nftables 环境 |
| macOS | 是 | 是 | 无 | 无 | 系统 TUN 与路由 |
| Android | 宿主决定 | root 或 VpnService | root,TCP 与 UDP | root,仅 TCP | root daemon 或 VpnService fd |
表中的“无”表示该平台没有对应实现路径。透明代理通常需要管理员或 root 权限,并可能受防火墙、虚拟网卡和其他 VPN 软件影响。
出站实现¶
| 类别 | 协议或动作 | 说明 |
|---|---|---|
| 内置动作 | Direct、Block、DNS Hijack | 直连、拒绝和 DNS 劫持 |
| 通用代理 | HTTP、SOCKS5 | 支持认证;UDP 能力由具体实现决定 |
| Shadowsocks | Shadowsocks、Shadowsocks 2022、SSR | 全加密族 TCP/UDP 客户端与服务端、SIP003 插件、SIP022 EIH 多用户;SSR 保持独立实现 |
| 经典 TLS | Trojan、VLESS、VMess | 支持对应 TLS、UUID 与安全参数 |
| 现代隧道 | AnyTLS、Hysteria、Hysteria 2、TUIC、Naive | AnyTLS v2 包含官方认证、动态 padding scheme、会话池、SYNACK 与 UoT v2,见 AnyTLS 指南;Hysteria ½ 包含官方 TCP/UDP、packet obfs、端口跳跃与两代 Brutal,见 Hysteria 指南;Naive 为可选 feature,见 Naive 指南 |
| 专用协议 | Snell、Mieru、Sudoku、TrustTunnel | 按各自握手、加密和复用模型实现 |
| 系统隧道 | WireGuard、SSH | WireGuard 支持用户态 TCP/UDP、双栈、多 Peer 与服务端;密钥或主机校验需要单独配置 |
WireGuard 的字段、约束和完整示例见 WireGuard 配置。
传输与解析¶
代码中包含 TCP、TLS、WebSocket、HTTP、HTTP/2、gRPC 与 XHTTP 等传输配置路径。XHTTP 的客户端、服务端、TLS/ECH 和完整字段说明见 XHTTP / SplitHTTP 配置。可用组合由具体协议、节点字段和服务端实现共同决定;不要假设任意协议都能与任意传输组合。
节点来源支持:
- 配置文件中的手动节点;
- 订阅中的 URI;
- WutherCore 原生
nodes/outbounds文档与紧凑type节点; - Mihomo/Clash 风格节点;
- 配置迁移生成的节点;
- 运行时订阅更新。
原生自由订阅、Mihomo provider、Age 密钥、请求头、过滤语义和协议边界见 自由订阅与 Mihomo 代理提供者。
规则集运行时支持 Mihomo YAML/文本/MRS v1,sing-box JSON/SRS v1-v5 和 WutherCore RRS v3,并兼容读取 RRS v1/v2。Classical YAML/文本支持除 RULE-SET,SUB-RULE 外的全部 Mihomo 官方规则类型,包括逻辑规则,域名通配符与正则,GeoSite,GeoIP,ASN,源/目的 IP,端口,入站,进程,UID,网络和 DSCP。MRS v1 保持上游定义的 domain/ipcidr behavior,不把 classical 规则伪装成非标准 MRS。二进制输入会先经过有界解压与结构校验,再编译为与文本规则共用的 matcher。
规则集索引还提供版本化的 destination-IP 前缀快照与 watch 更新通知:
- 一次读取多个规则集时共享同一 revision,重复名称按首次出现去重;
- 首次加载中的集合、首次加载失败、未知名称和合法的非 IP 集合具有不同状态;
- MRS 闭区间无损转换为最小 IPv4/IPv6 CIDR,转换有总量和分配保护;
Exact表示前缀与完整规则语义等价;Extracted明确表示采用 sing-boxRuleSet.ExtractIPSet兼容投影,安全敏感的绕过/排除消费者可以拒绝;- 内容相同的前缀替换不会产生伪 revision,慢消费者可以直接收敛到最新完整快照。
这是一项跨平台 provider 能力;把快照原子安装进 Linux nftables、策略路由或其他平台数据面仍由各 capture 后端分别完成。
已知边界¶
- 项目不包含桌面、Web 或移动端 GUI。
- 第三方协议可能随服务端演进;需要在实际服务端环境中验证。
- 透明代理依赖系统权限和外部网络状态,无法只靠单元测试覆盖。
- 当前配置与 API 尚未承诺 1.0 级别的长期稳定性。
- Android VpnService 需要宿主应用负责生命周期、权限申请和文件描述符传递。
- Android root 模式要求 daemon 自身持有 UID 0 或有效
CAP_NET_ADMIN。内部su探测不会提升当前进程。 - Naive 依赖 GPL-3.0-or-later 的 Cronet 组件和平台动态库,默认 MIT 构建与默认 Release 不启用。
- CodeQL 初始告警正在 Issue #9 中逐条分类。
判断是否适合使用¶
如果只需要一个可直接点击使用的 GUI 客户端,这个仓库不是成品应用。如果需要嵌入式代理内核、透明代理网关、可编排的 Rust 网络组件,或希望研究协议与路由实现,WutherCore 提供了相应基础。