# TeamTunnel 0.6 实施与验收边界

## 架构与权限

Windows 软件 → TeamTunnel TUN → 规则分流 → 直连或 Trojan TLS 自建 TCP 网关。现有台北 HTTPS API 负责邀请码激活和设备授权；0.6 本轮不修改远端部署，不使用 Tailscale 登录、控制面或 endpoint。

平台为 Windows 10/11 x64、.NET 8 Desktop。核心由未改动的官方 sing-box 1.14.0 源码自编，标签为 with_gvisor,with_clash_api,with_v2ray_api，不是官方预编译文件，也不依赖 libcronet.dll。核心、嵌入的 Wintun 和规则随包交付，不要求用户另下载组件或执行脚本。锁定产物 SHA-256 为 b03b45906df381f89f2bc25ac81ddaf16a507b0495fb93f6340b9e1d656cbe4a，来源、依赖和构建过程见 third-party/METERED_CORE.md。

Desktop 启动不建立 TUN。点击连接后，以 runas 请求同一 Windows SID 提权，再继续本次连接；其他管理员账户不能接续原用户 DPAPI 身份，标准用户场景需管理员协助。不能静默提权或自动关闭已有 VPN。

界面保留激活、节点、连接和流量；规则入口移除，但 0.4 凭据、已存规则及模式继续沿用。新 profile 默认 AutomaticRouting=true，已保存的 false 不被覆盖。X 隐藏到托盘后连接继续，双击恢复，托盘退出才停止。

窗口按内容自动高度并受当前工作区限高，小屏仍滚动。单连接 timeout 清理 ANSI 后仅作为连接级记录，不显示全局大警告；FATAL 和核心退出仍提示，不能因此隐去实际核心故障。

## TUN 与分流

- 接口 TeamTunnel，地址 172.29.247.1/30，碰撞判断按 172.29.247.0/30。启动前拒绝同名接口（含 Down）、已检测活动 VPN、相关 IPv4 路由/地址冲突；不保证识别所有 VPN 或所有冲突。
- TUN 使用 auto_route、strict_route、mixed stack、dns_mode=hijack；运行时会配置自有网卡、路由、DNS/WFP。Windows IPv4-only strict route 会阻断 IPv6，不能宣称“不改系统网络”。
- 节点/API 公网 /32 排除捕获；route.auto_detect_interface=true 绑定默认接口避免回环。不保证能与任意 VPN 共存。
- 规则前缀：TCP/UDP 53 劫持 → 其余 UDP 拒绝 → TCP HTTP/TLS sniff → 原分流规则。首版是 IPv4 TCP，不保证游戏、语音、局域网发现及 QUIC 回退。
- dns-local 改为固定 AliDNS DoH 223.5.5.5、TLS 名称 dns.alidns.com、direct 出站；代理 DNS 保持经出口的 Cloudflare DoH。禁止沿用可能被 TUN 重捕获的 Windows local DNS 作为上游。
- DNS reverse mapping 辅助恢复域名，解析仅取 IPv4。旧缓存、自带 DoH/ECH 等可能只能按 IP 匹配。公网 DoH 不保证公司内部、单标签及 .local 名称；私网 IP 可直连不等于内网域名完整支持。

自动模式保留原始 LAN 地址/明确本地主机名直连、手动覆盖、国内域名及 IPv4 快照、其余代理。未知域名走出口 DNS；远端答案含私网/CGNAT 时拒绝，不能把私网＋公网混合答案转直连。明确代理域名不因 CN 地址改直连；国内/海外混合 A 仍按核心 ANY 作域名级分类，不承诺逐 IP 属地准确。

离线规则来源/许可见 third-party/routing/SOURCES.md，无首次下载依赖。尚无集中规则订阅、全协议接入或自动重连承诺。

## 秘密、流量与生命周期

设备 token/密码使用 DPAPI CurrentUser 和当前用户 ACL，不写普通 profile 或日志；运行配置是独占随机文件，正常停止后清理。API 固定证书校验；节点 PEM 独立信任保留 IP SAN 和有效期验证。软件注册 ID 不是强硬件绑定，通用包不携带邀请码或身份。

既有授权和网关私网/元数据封锁不因客户端升级扩权；台北受控网关通过动态策略关闭撤销设备的旧会话，并回传执行确认，见 docs/MANAGEMENT.md。

统计读取 V2Ray API 的真实 direct/proxy outbound 累计计数，分为直连/代理各自上传/下载四方向，已关闭连接不丢失累计字节。API 监听随机 loopback 端口并验证端口所属 PID，但无 API 身份认证；本机数据不具备防篡改性，不能用于后台额度裁决。

本次会话在核心重新启动后重计；月度和历史累计按 deviceId 在本地持久化，同一用户与设备重启/升级后保留。历史始于 0.6，不补算 0.5 或更早。UTC+8 自然月按采样时间归属，不逐包还原跨月分布；停止末次采样、突发断电仍有尾部缺口。统计不等于整机网卡、AWS 或云计费字节，不是审计计费记录。

正常停止先向自有核心发送 CTRL_BREAK，以 Windows Job kill-on-close 兜底。不得按名称批量杀进程、关闭其他 VPN、删除系统路由或复用既有同名网卡。流程已在原生进程夹具验证；夹具未创建 TUN，不能证明驱动、DNS、WFP、路由在崩溃/断电等情况下必定恢复。异常可能留下受保护临时配置，不应分发。

## 验证状态

自动化范围是离线单元、假核心/原生进程夹具、核心 version/check 及显式本机回环流量测试；回环计量测试不访问公网，也不创建 TUN。配置转换本身不开网卡。本轮开发未实际启动 TUN，真实 TUN 联网只允许在备用电脑验收，尚未完成。

交付需分开报告：

- 规则、TLS、DPAPI/ACL、四方向累计与历史持久化、生命周期夹具结果。
- 同账户提权后，备用机目标软件的实际 IPv4 TCP 接入、国内直连及节点出口。
- X 隐藏后继续、恢复窗口、托盘退出后真实网卡/DNS/路由恢复。
- 核心异常退出、系统重启、地址冲突等场景；没有运行的验收不得写成已通过。

既往网关/应用代理 Smoke、服务本机测试和单次配置 check 均不能替代上述 TUN 验收。

## 后台与发布

2026-09-04 台北已部署后台设备管理、禁用/删除、历史/月度代理额度及上传/下载限速。服务端使用中央预算和实际转发计数，不采信客户端上报累计作为裁决依据；直连不扣代理额度。切换经过用户允许，原 Tailscale 未改变。当前客户端本地历史与服务端额度仍是不同口径；后端验收与异常冻结规则见 MANAGEMENT.md。

开发构建顺序为 scripts/Build-MeteredCore.ps1 → scripts/Test.ps1 -CheckOfficialCore → scripts/Build.ps1。Build.ps1 默认使用 MeteredCore 指向 runtime/metered/sing-box.exe 并校验锁定哈希，不再接受 CoreArchive；输出 TeamTunnel-0.6.1-windows-traffic-*.zip。用户使用完整发布包，无需本地构建或下载规则/核心。
