# TeamTunnel 0.6.2 · Windows 客户端与设备管理后台

独立 Windows 客户端直接连接自建服务端，不依赖 Tailscale 登录或组网。连接后通过 TUN 接入电脑软件的 **IPv4 TCP 流量**，不再逐个配置应用。由未改动的 sing-box 1.14.0 官方源码自编的计量核心、Wintun 和分流规则已内置，无需运行安装脚本或另行下载组件。

这是备用电脑测试版，不是全协议 VPN。本轮开发没有实际启动 TUN；真实联网及异常退出后的网络恢复仍需备用电脑验收。不要在依赖原有 VPN 联网的主电脑试启。

## 使用与升级

支持 Windows 10/11 x64，需要 .NET 8 Windows Desktop Runtime x64。发布包名称为 TeamTunnel-0.6.1-windows-traffic-*.zip。0.6.1 去掉统计卡片底部的两行常驻说明，保留计数、未知值及必要连接错误，不清除历史。

1. 退出旧 TeamTunnel，将完整 ZIP 解压到新文件夹，保留 runtime 子目录，双击 TeamTunnel.exe。0.4/0.5 的邀请码激活状态、已保存规则和分流模式由同一 Windows 用户继续沿用；0.6 的历史统计也会保留，不要删除 %LOCALAPPDATA%\TeamTunnel。
2. 首次使用输入管理员单独提供的邀请码并激活；已激活用户无需重新发码。授权节点自动显示，不用填写 IP。
3. 选择节点，点击“连接”。程序通过 runas 请求管理员权限；同一 Windows 账户完成提升后自动继续连接。仅打开程序不会建立 TUN 连接。
4. X 关闭窗口只隐藏到托盘，连接继续。双击托盘图标恢复窗口，托盘“退出”才会停止连接并退出程序。

窗口高度按内容自动调整，并限制在当前工作区内；小屏幕仍可滚动。普通用户不能通过换用另一个管理员账户来接续原账户的 DPAPI 身份，需管理员协助；不要复制身份文件或把凭据放入通用安装包。

连接前会拒绝已检测的同名 TeamTunnel 网卡、已知活动 VPN 或地址冲突，不自动断开其他 VPN，也不保证识别所有 VPN。若被拦截，先确认备用机环境；不要为测试断开主电脑赖以联网的 Tailscale 或删除系统路由。

## 分流与兼容范围

- 新配置默认智能分流：国内域名及国内 IPv4 直连，其余走授权节点。已存手动规则优先于国内快照，已存分流模式保持不变。界面仅保留激活、节点、连接、流量，规则编辑入口已移除。
- 国内规则离线内置，来源/许可见 third-party/routing/SOURCES.md。分类不是实时可访问性或属地检测；CDN、新域名及国内外混合 DNS 地址可能误分，不承诺逐 IP 地理准确，尚无规则在线订阅。
- 常规 TCP/UDP 53 DNS 由 TUN 接管；国内解析走 AliDNS DoH 223.5.5.5，代理及未知域名走经出口的 Cloudflare DoH 1.1.1.1。不把 Windows 当前 DNS 作为核心上游，避免回环；节点和管理 API 公网地址排除捕获。
- 原始私网 IP 仍可直连；公网 DoH 不保证解析公司内部域名、单标签名称或 .local。自带加密 DNS、ECH 或已有缓存的软件也可能只能按 IP 分流。
- **非 DNS UDP 全部拒绝，IPv6 被阻断。** 游戏、语音、局域网发现和仅支持 UDP 的软件不保证可用；QUIC 是否回退 TCP 由应用决定。首版范围是 IPv4 TCP，不等于所有协议。
- TUN 开启期间会配置虚拟网卡、自有路由、DNS 和 Windows 过滤规则。核心进程启动或配置检查通过，不等于出口联网或真实 TUN 验收通过。

## 托盘、流量与停止

速率和累计值来自核心真实出站计数，分别显示**直连上传、直连下载、代理上传、代理下载**，已关闭连接的字节不会从累计值中消失。本次会话重新连接后重计；月度和历史累计按设备 ID 保存在本机，同一用户与设备升级或重启后继续累计。

历史从 0.6 开始，无法补回 0.5 及更早版本。月份按 UTC+8 自然月，以采样时间归属；停止时的末次采样仍可能漏掉尾部字节，断电也可能产生缺口。这是应用侧统计，不是整机网卡、AWS 或云计费字节，也不是审计账单。

单个连接的超时记录会清理 ANSI 控制字符，不再作为整条连接的大警告；FATAL 或核心退出仍会提示。单次超时不等于整个节点断开。

正常停止以 CTRL_BREAK 请求自有核心退出，Windows Job 的关闭终止机制兜底，不按进程名批量停止其他程序。流程已在夹具中验证；真实 TUN 的崩溃、断电、重启后恢复尚未验收，不承诺任何故障下都自动恢复网络。

## 授权与本地数据

台北已部署设备管理后台与受控 Trojan TCP 网关，保留原控制 API 格式、证书及已激活设备凭据。下载首页为 https://redraingame.duckdns.org/，管理入口为 https://redraingame.duckdns.org/admin，使用独立管理员密钥；每位同事单独发激活码。旧 IP 接口继续兼容客户端，日本未加入这次后台迁移，旧 Tailscale 限制不变。软件注册 ID 不是不可复制的硬件绑定。管理、计量和故障边界见 docs/MANAGEMENT.md；域名与证书运维见 docs/WEBSITE.md。

后台支持设备停用/恢复/删除、历史与月度代理用量、月额度及上下行限速。服务器实际执行额度和共享限速，客户端本地计数不是额度账本；直连不扣代理额度。管理页按节点执行确认显示生效状态。修改某设备策略会中断该设备旧连接，不重启其他设备；控制服务失联超过策略有效期时停止代理放行。

同一 Windows 用户的数据保存在 %LOCALAPPDATA%\TeamTunnel：

- profile-v2.json：公开节点信息、分流模式和规则，不含连接密码。
- credentials.dpapi：DPAPI 当前用户保护的 token 和密码；device-id.txt：软件注册 ID。
- 分类月度/历史统计与设备 ID 关联保存在本机；它们可被本机用户修改，不能作为防篡改额度依据。
- 运行秘密配置采用随机文件名和当前用户 ACL，正常检查/停止/退出后清理。异常断电可能留有受保护临时文件，不要打包整个数据目录给同事。
- 升级不删除旧 profile 或旧 Tailscale 状态，也不复用其身份。API 和节点 TLS 均保留证书校验，不导入系统信任或忽略错误。

## 构建与验证

以下仅供开发者，使用发布包的同事无需执行：

~~~powershell
./scripts/Build-MeteredCore.ps1
./scripts/Test.ps1 -CheckOfficialCore
./scripts/Build.ps1
~~~

Build.ps1 默认从 runtime/metered/sing-box.exe 读取并校验计量核心；可用 MeteredCore 参数指定同一锁定产物，不再使用 CoreArchive。构建来源与复现方式见 third-party/METERED_CORE.md。计量 API 只监听随机本机回环端口，使用进程归属校验，但没有 API 身份认证，不能用于后台防篡改额度。

常规测试使用离线传输、假核心/进程夹具；CheckOfficialCore 还覆盖核心 version/check 和本机回环流量，不启动真实 TUN 或访问公网测试目标。既往网关/应用代理 Smoke 不能替代备用电脑的 TUN 联网、提权、托盘退出和网络恢复验收。

通用包保留自编核心、构建来源、许可与源码材料，不含邀请码、密钥或设备身份。第三方说明见 THIRD_PARTY_NOTICES.md、third-party/METERED_CORE.md、third-party/SOURCES.md；验收边界见 docs/IMPLEMENTATION.md。
