当前 Mac 的系统浏览器接入¶
用户要求:平时使用的浏览器直接访问校园网址,不依赖独立校园浏览器或扩展。同时保留其他网络代理,按 Windows、macOS、Android 的能力分别处理。
接入与代理共存¶
macOS 为每个启用的网络服务读取现有 HTTP、HTTPS、SOCKS 和绕过规则,生成对应 PAC。校园来源进入 OneTHU 本机监听,其他网址使用该服务原有的代理或直连规则。原有配置中的域名通配、IPv4 CIDR 和 macOS 默认简写 169.254/16 会保留。
id.tsinghua.edu.cn 和 oauth.tsinghua.edu.cn 的浏览器访问沿用原代理/直连与绕过规则,不进入共享会话代理。用户可正常使用其浏览器已有的认证、账号设置及信任设备管理。SDK 的内部认证仍归现有账号运行时管理;这两个网站的浏览器 Cookie 不被导出给 OneTHU。
配置变更使用写前记录:先安装 PAC,再关闭该服务的手动代理。停止时逐字段恢复,发现用户或 Clash 后来改动的字段便保留外部改动并报告状态,不循环争抢系统设置。任一配置发生变化都须重新准备计划。已有任意 PAC/WPAD、需要认证的手动代理、无法表达的绕过规则会明确拒绝,保持原连接。
独立浏览器继续作为可选调试入口;系统接入使用另一个本机端口。macOS 系统端口通过实际 TCP 连接反查发起进程 UID,要求与运行 OneTHU 的用户一致,每条浏览器请求仍须校验来源、目标、账号 epoch。此模式不向所有本机用户开放校园会话,也不要求每个浏览器再填写代理账号密码。
系统证书为该安装独有,私钥保留在用户私有目录。用户明确启用后信任此 CA;浏览器使用操作系统信任,不传入忽略证书错误参数。SDK 和原生校内传输继续使用自身直连策略,避免走回本机代理形成循环。
网页兼容与真实验收¶
网络学堂和信息门户的 XSRF-TOKEN 按站点精确作用域处理,认证 Cookie 保留在共享运行时。图书馆服务可通过当前会话的只读初始化准备业务身份;缺少有效认证时返回到 OneTHU 完成登录,不由浏览器绕过账号管理。选课系统的 HTTPS 门面对应实际 HTTP 上游。
验收必须覆盖实际点击课程卡片、产生新标签页、页面内容与接口业务结果。仅使用提取出来的课程链接直接导航,或仅检查 HTTP 200,不能证明用户操作链路完成。学校网页 alert 应记录原因,不能通过关闭所有弹窗来宣称可见交互通过。
平台覆盖¶
| 平台 | 本轮实现范围 | 已有代理策略 | 尚须完成 |
|---|---|---|---|
| macOS | 系统 PAC、用户证书信任、同 UID 连接鉴权、Chrome/Safari 实机验证 | 按服务保留手动 HTTP/HTTPS/SOCKS 与绕过规则;检测配置被其他软件修改 | 真实启用/恢复及具体校园业务逐站记录 |
| Windows | 已有 CurrentUser 证书与 WinINet PAC 控制、私有代理认证入口 | 当前检测已有 PAC/WPAD/手动代理并拒绝覆盖 | 与 Mac 相同的无额外认证系统入口、手动代理组合、WinINet/WinHTTP 与实际浏览器验收 |
| Android | 现有 App 内共享校园会话 | 本轮不修改系统 VPN 或 Wi-Fi 代理 | 单独实现 VPN/代理与后台生命周期;处理 Clash/aTrust 冲突、用户 CA 和各 App 的证书限制 |
使用独立代理设置的浏览器、显式绕过系统代理的客户端、证书固定的 App 需要分别适配。Android 同一用户下的 VPN 并存限制不能通过复用桌面 PAC 消除;微信等 App 的兼容结论也不能由 Chrome 成功推导。
当前机器与恢复入口¶
本轮目标为用户已登录的 Mac dev,保留现有 OneTHU 窗口和账号。以太网及 Wi-Fi 原 HTTP/HTTPS/SOCKS 为 127.0.0.1:7897;USB 10/100 LAN 和 Thunderbolt Bridge 为直连。安装专属 CA 已经通过 macOS 信任检查。
设置里的系统代理操作、onethu gateway system-disable --confirm 均提供恢复。恢复失败保留日志和仍在使用的监听/PAC,便于继续修复;账号退出先撤销校园数据通道。代理和浏览器不会获得重放真实提交请求的权限。
最终实机结果将在验收文档记录。当前源码与功能测试不能替代真实浏览器、代理共存与恢复验证。