subscription URL returned HTML:订阅链接为什么返回网页
SUB-003
subscription URL returned HTML严重程度 Medium一句话结论
订阅地址返回的是一个网页,而不是客户端能解析的订阅数据。最可能是当前网络存在强制登录门户,或订阅地址失效后被服务端重定向到了提示页;第一步是在浏览器里随便打开一个网站,确认没有被劫持到登录页。
适用环境WindowsmacOSLinuxAndroidiOS
适用客户端通用客户端
最后验证:2026-07-28规则版本:v1内容更新:2026-07-28
结论
客户端期待从订阅地址得到一份结构化文本(Base64、YAML 或纯文本节点列表),结果收到的是一个 HTML 网页——就像点外卖收到了一份菜单照片。客户端解析不了网页,于是报"更新失败"或"格式错误"。关键问题是:这个网页是谁塞进来的? 答案无非四个:你所在的网络、订阅服务端、域名解析链路,或者你自己抄错的地址。四者的证据形态不同,逐一排除并不难。
适用环境
- 全部平台
- 通过 URL 更新订阅的所有客户端
一分钟快速判断
- 测试当前网络:浏览器打开任意常用网站。被跳转到酒店/校园网/机场 Wi-Fi 的登录页 → 强制门户,先在浏览器里完成网络认证,再回客户端更新订阅,结案概率很高;
- 看重定向证据:运行下方检测,若报告显示订阅请求被重定向到了服务方官网或提示页 → 地址已失效,去面板拿新地址;
- 核对地址完整性:订阅地址被截断(少了路径或参数)后落到站点首页,返回的自然是 HTML。对照面板原文逐字符检查,或直接重新复制。
这条错误代表什么
HTML 响应出现在订阅请求里的四条路径:
- 强制门户(captive portal):未完成认证的网络把所有 HTTP(S) 请求都劫持到自己的登录页。特征:任何域名都返回同一个页面;
- 服务端跳转:订阅地址过期/重置后,服务端把旧地址 302 到官网或"地址已失效"页面。特征:只有订阅域名返回网页,其他网站正常;
- 域名劫持:解析链路被污染,订阅域名被解析到运营商或拦截方的提示服务器。特征:换 DNS 或换网络后消失;
- 地址不完整:路径缺失落到首页。特征:返回的正是服务方自己的官网。
ConnProof 如何判断
connproof subscription "https://你的订阅地址"相关证据:HTTP 状态码、重定向链(目标域名已脱敏显示)、最终 Content-Type、响应字节数、以及"是否为登录页"的特征判定。判读要点:
| 证据组合 | 指向 |
|---|---|
| 无重定向 + 返回 HTML + 其他网站也异常 | 强制门户或全网劫持 |
| 重定向到服务方域名 + HTML | 地址失效(服务端行为) |
| 重定向到陌生域名 | 劫持,立即换网络验证 |
| 状态 200 + HTML + 地址与面板不一致 | 地址抄写不完整 |
| 判定为登录页 | 转 SUB-004 |
最常见原因
- 强制门户未认证:酒店、机场、校园网场景的绝对高频原因;
- 订阅地址失效被跳转:服务方重置了 token 或迁移了系统;
- DNS 污染或劫持:订阅域名在当前网络被指向拦截页;
- 地址复制不完整:聊天工具截断长链接、二维码扫描丢字符。
Windows / macOS 排查步骤
- 浏览器验证当前网络无门户劫持;
connproof subscription拿重定向与内容类型证据;- 指向地址失效:登录面板复制最新地址,在客户端里整体替换(不要手动改其中一段);
- 指向劫持:
connproof dns 订阅域名看解析结果是否异常(解析到明显不属于服务方的地址段),换 DNS 服务器或换网络复测; - 全部正常仍报错:确认客户端没有缓存旧响应——删除该订阅条目后重新添加,比反复点"更新"更彻底。
手机端排查步骤
- 手机连接新 Wi-Fi 后系统弹出的认证页没完成就切后台,是门户类问题的高发操作——重连 Wi-Fi 走完认证流程;
- 蜂窝下更新一次作对照:蜂窝成功而 Wi-Fi 失败,锁定 Wi-Fi 网络问题;
- 扫码导入的订阅失败时,改用"复制链接 + 粘贴导入",排除二维码分辨率导致的字符丢失。
如何区分本地问题和节点问题
| 证据 | 更可能是 |
|---|---|
| 所有网站都被跳到同一页面 | 当前网络门户(本地) |
| 仅订阅域名返回 HTML、重定向到服务方 | 地址失效(服务方) |
| 换 DNS 后恢复 | 解析链路劫持 |
| 蜂窝正常、Wi-Fi 失败 | Wi-Fi 网络问题 |
| 多设备同一地址都失败 | 地址或服务端问题 |
门户认证的一个细节:HTTPS 与"假 200"
强制门户劫持 HTTP 请求轻而易举,但对 HTTPS 它做不到无痕替换(证书校验会失败),于是不同门户有不同表现:有的直接掐断 HTTPS(你会看到超时或证书错误而非 HTML),有的只劫持 DNS 把域名指向门户地址。这解释了一个常见困惑——"为什么浏览器提示要登录,客户端却报的是证书错误/超时?"它们是同一个门户的两副面孔。实用结论:在陌生 Wi-Fi 下遇到任何奇怪的连接报错,第一动作都应该是打开浏览器访问一个普通网站,把门户认证走完;认证后各种报错往往一起消失。
仍未解决时收集什么信息
- ConnProof 错误码(SUB-003)与脱敏报告;
- 重定向目标的域名类别(服务方域名 / 陌生域名,报告已脱敏);
- 两种网络下的对照结果;
- 客户端名称和版本、操作系统版本。
禁止提交:完整订阅链接、密码、验证码、私钥、Token。
重新运行检测
connproof subscription "https://你的订阅地址" --format markdown --output sub-report.md修复后报告应显示内容判定为"疑似订阅文本"而非 HTML。
相关文档
更新记录
- 2026-07-28:规则 v1 发布,确立"四条 HTML 来路"排除法。