更新订阅时出现“HTTP 403”,已有节点却还能联网。此时反复测速或重装客户端,未必碰得到问题所在:下载节点配置的入口,和节点转发网页流量,是两件事。 先保留现有配置,再弄清是哪一步被拒绝。

本文处理订阅下载日志明确出现 401、403 的情况。排查依据 HTTP 文档与客户端配置说明;文中的实验只验证本地受控响应,不代表任何机场的实际故障或账号状态。

先确认错误发生在订阅下载

在配置或订阅页面执行一次更新,记下时间、客户端版本和这一操作附近的错误。不要只凭首页红色提示判断。如果 403 来自网页访问、节点健康检查或控制面板接口,检查对象就不同,不能套用“订阅令牌失效”。

拿到 HTTP 状态码,表示请求收到了一份 HTTP 响应;它可能由订阅服务器返回,也可能来自中间的网关或访问防护。这不证明节点线路正常,也不证明已经到达真正的订阅后台。 没有状态码的连接超时、解析失败、证书错误,应先按连接层排查。

订阅更新错误分支解释图:没有HTTP响应查连接层,401查有效认证,403核对入口与权限;保留旧配置,不公开令牌

401先核对有效凭据

按 MDN 对 401 的说明,请求缺少访问该资源所需的有效认证凭据;标准响应还会用 WWW-Authenticate 指明认证方式。它不是“机场已跑路”的证明。

先登录你已确认的官方后台,重新复制适配当前客户端的订阅地址。不要复制浏览器里的账户首页,也不要继续使用之前保存的短链接或转换入口。核对是否漏了参数、是否混入空格,以及是否刚重置过订阅。

如果是自己维护的代理集合配置,还要核对官方要求的认证头。Mihomo 的代理集合文档分别提供 url、header 等字段,示例包含 Authorization。能在已登录的浏览器里打开,不等于客户端会带上相同凭据。 不懂自定义认证时,请服务方提供适配格式,不把网站登录密码随便填进 YAML。

403先问拒绝的是哪个入口

MDN 对 403 的说明是服务器理解请求,却拒绝处理。保持条件不变、连续点击更新通常不会消除拒绝;仅凭数字也不能断言“套餐到期”或“当前 IP 被封”。

检查后台是否有账户、套餐或订阅入口的明确提示,再按服务方说明确认支持的客户端与下载方式。如果使用第三方转换,先分清报错来自转换后端还是原始订阅;服务方提供直适配链接时,可在新建配置中对照,不覆盖原来的可用配置。

浏览器返回的若是登录页或人机验证页,保存成配置文件仍无法正常导入。即使 HTTP 显示 200,也要看内容是否真是所需格式。不要伪造请求头绕过访问规则,不关闭证书校验,更不要为一次订阅更新购买陌生“解封服务”。

一次本地实验说明两个数字的区别

2026 年 10 月 12 日,本站在 Windows 上用 curl 8.21.0 请求仅监听本机的测试服务。服务按预设返回 200、401、403,401 带 WWW-Authenticate: Bearer;没有使用真实订阅、账号或令牌,也没有改变系统代理。

预设并实际收到的HTTP状态 普通请求的退出码 加上 --fail 的退出码
200 0 0
401 0 22
403 0 22

随后关闭测试监听,向同一地址请求,得到的状态显示是 000,退出码为 7。这里的 000 不是服务器返回的 HTTP 状态,而是没有取得 HTTP 响应时的工具输出。

curl 官方手册说明,默认不会仅因 HTTP 错误状态而判定命令失败,--fail 会改变这一行为,并有认证相关的例外。因此看到“命令执行成功”不能宣布订阅可用;看到退出码 22 也不能把它当成服务器状态码。上表是这次简单测试的结果,不保证所有认证流程表现相同。

保留配置再提交有用的求助信息

确认新订阅能下载、导入并提供预期节点后,再替换旧配置。旧节点能用,只说明已有配置当前还能工作,不能证明以后还能更新。

通过官方工单提供出错时间、客户端版本、401 或 403、是否直接订阅或经过转换,以及“重新复制后是否仍失败”。让客服核对入口权限和认证要求,比只发“所有节点坏了”更准确。

公开截图遮住完整 URL、二维码、认证头和个人目录;可参考订阅链接脱敏方法。需要客服核验账户时也只通过已确认的渠道提交必要信息,不把令牌发给群里的陌生人。