高墙之外❤️

PassWall2 订阅格式不支持怎么办?

更新于 2026-11-04 · passwall.lol

简答:PassWall2 提示“订阅格式不支持”,最快的处理顺序是:先在浏览器或路由器上检查订阅链接实际返回的内容,再确认 PassWall2 配置已保存并应用,最后根据日志区分格式错误、404、超时、节点为空和内核缺失。不要直接把文件后缀改成 .yaml 或 .txt;如果返回的是登录页、错误 JSON 或不兼容配置,应让订阅提供方重新生成适用于 PassWall2 的通用订阅,或先用单个节点链接验证。

定义:PassWall2 订阅格式不支持,是指订阅地址虽然能够访问,但返回内容无法被当前 PassWall2 版本按可识别的节点订阅或配置结构解析。

先做这一步:确认订阅链接到底返回了什么

PassWall2 的订阅地址本质上是一个 HTTP 或 HTTPS URL。出现格式错误时,第一步不是反复点击“更新”,而是确认这个 URL 返回的内容。PassWall2 官方代码中,订阅页面包含“Subscribe URL”和“Manual subscription”操作,并提示新增订阅后应先保存并应用,再手动订阅;相关界面代码可查看PassWall2 节点订阅页面源码。

订阅返回内容速查
检查结果通常意味着什么下一步
正文以 proxies:、proxy-groups: 等 YAML 字段开头可能是 Clash 类 YAML 配置,不代表当前版本一定支持全部字段先核对当前 PassWall2 版本,再尝试服务商提供的通用或 V2Ray 订阅
正文是一长串字母、数字、加号、斜杠和等号可能是 Base64 编码的节点链接集合不要直接改后缀;先用解码后的内容确认是否包含 ss://、vmess://、vless:// 或其他节点链接
正文每行是 ss://、vmess://、vless://、trojan:// 等属于节点链接集合,是否能全部导入仍取决于当前核心和协议支持确认对应的 Xray、sing-box 或其他核心已经安装
正文是 HTML、登录页、验证码页或“请登录后查看”复制到的可能是管理页面、邀请链接或已失效授权链接回到服务商后台复制真正的订阅 URL
返回 JSON 错误、404、401、403 或空内容链接、授权参数、域名、套餐状态或访问路径存在问题先修复 URL 或授权状态,再回到 PassWall2 更新

如果使用电脑浏览器检查订阅,建议只查看响应类型和开头几行,不要把完整订阅内容发布到论坛、群组或截图中,因为 URL 里可能包含授权参数。

在路由器 SSH 中可以执行以下命令进行最小检查。把示例地址替换为自己的订阅地址,并注意不要把完整命令输出公开:

curl -I -L --max-time 20 'https://example.com/your-subscription'
curl -L --max-time 20 'https://example.com/your-subscription' | head -n 20

重点观察 HTTP 状态码、是否发生重定向、Content-Type 以及正文开头。如果输出的是登录页面或错误页面,PassWall2 报格式不支持只是结果,不是根因。

按正确界面路径重新添加并更新订阅

  1. 登录路由器 LuCI,进入 服务 → PassWall2 → 节点订阅。官方项目 README 给出的主入口是 Services → PassWall2,但不同语言包或版本可能显示为“服务”“PassWall2”或相近名称。
  2. 点击新增订阅,填写备注和订阅 URL。只粘贴完整的 HTTP 或 HTTPS 订阅地址,不要粘贴后台登录页、二维码图片地址或单独的节点名称。
  3. 点击保存并应用。不要只填写 URL 后立即点击手动订阅;官方节点订阅页面明确提示,新增订阅后应先保存并应用。
  4. 保存后,在对应订阅项目右侧点击手动订阅,等待任务完成。
  5. 回到节点列表,检查节点数量是否增加;如果节点数量为零,再查看日志,而不是立即修改 DNS、TUN 或分流规则。

PassWall2 官方 README 也将节点管理、订阅 URL、默认节点和“Save & Apply”列为基本配置流程,可参考PassWall2 官方项目说明。界面文字会随版本和语言包变化,因此如果菜单名称不同,应优先按“节点订阅”“订阅地址”“手动订阅”“节点列表”这些功能词寻找。

推荐:如果你需要先验证线路本身,再回头处理 PassWall2 的订阅解析,可以使用边界云加速的单设备连接方式做最小闭环测试,避免把订阅格式问题和路由器分流问题混在一起。

根据日志区分四类常见故障

错误现象与处理顺序
现象或日志关键词优先判断处理方法
404、Not Found订阅路径不存在、链接复制不完整或地址已变化重新复制完整 URL;检查是否少了问号后的授权参数;浏览器访问时确认不是 404 页面
401、403、unauthorized、forbidden授权失效、权限不足或请求方式被拒绝在订阅提供方后台重新生成链接;不要通过修改文件后缀解决
timeout、resolve failed、连接超时路由器无法解析域名或访问订阅服务器先测试路由器 DNS 和 HTTPS 连通性;确认系统时间基本正确;再重试订阅
parse error、format unsupported、decode failed返回内容不是当前解析器能识别的格式,或内容已损坏检查正文开头和编码;优先换成服务商标注的通用或 V2Ray 订阅;必要时让对方重新生成
更新成功但节点数为 0过滤规则、解析后协议不兼容或订阅正文为空暂时关闭关键词过滤,检查节点订阅设置;再确认对应核心是否存在
节点出现但启动失败订阅格式已经解析成功,问题转移到节点协议、TLS、传输参数或核心先单独测试一个节点,再查看 Xray 或 sing-box 的服务日志

官方 README 建议服务无法启动时使用 logread | grep passwall2,并列出了 PassWall2 主日志和服务端日志位置:/tmp/log/passwall2.log、/tmp/log/passwall2_server.log。可以执行:

logread | grep -i passwall2
tail -n 100 /tmp/log/passwall2.log
tail -n 100 /tmp/log/passwall2_server.log

如果日志只显示下载失败或 HTTP 错误,先处理订阅 URL;如果日志显示某个节点协议无法识别或核心不存在,说明格式问题已经过去,应转向核心和协议排查。

Clash YAML、Base64 和节点链接不要混为一谈

“订阅格式”至少可能指三层内容:第一层是下载响应本身,例如 HTML、JSON 错误或 YAML;第二层是编码方式,例如明文节点链接或 Base64;第三层是节点协议,例如 VMess、VLESS、Trojan、Shadowsocks、Hysteria2 或 WireGuard。前两层能被识别,不等于第三层一定能启动。

PassWall2 官方项目说明列出了 Xray 和 sing-box 可处理的多种协议,并强调实际依赖会随选择的功能和 OpenWrt 构建变化。也就是说,订阅被成功下载、成功解析、节点出现在列表中、节点可以启动,是四个不同的结果。

  • Clash YAML:通常能看到 YAML 键值和代理列表,但当前 PassWall2 版本是否接受全部字段,需以当前代码和实际日志核对。
  • Base64 订阅:下载后看起来像一长串编码文本,解码后才可能看到多行节点链接;不要把 Base64 文本直接当作 YAML。
  • 节点链接集合:每行一个 URI,协议名称决定后续需要哪个核心和参数解析能力。
  • JSON 配置:不能因为文件扩展名是 .json 就认为 PassWall2 一定支持。官方仓库中的相关 JSON 导入需求仍属于功能讨论,不应把提议中的格式当成已支持功能。

因此,“把 .txt 改成 .yaml”或“把 URL 末尾加上文件后缀”通常不会改变服务器返回内容,也不会增加解析能力。

版本和核心怎么核对,避免把格式错当成内核缺失

不同 PassWall2 版本、OpenWrt 构建和核心组合可能影响可识别的节点类型。官方代码会根据系统中是否存在 Xray、sing-box 等程序来显示或处理相应类型;例如节点订阅页面会检测 xray 和 sing-box 是否存在,并根据核心版本决定部分协议的可选项。

  1. 在 LuCI 的 PassWall2 页面查看软件版本;如果界面没有显示,进入插件管理或通过系统包管理器查询。
  2. 在 SSH 中检查核心文件是否存在:
    command -v xray
    command -v sing-box
    xray version 2>/dev/null
    sing-box version 2>/dev/null
  3. 确认订阅中包含的协议与已安装核心对应。例如,节点列表能出现但启动时报核心缺失,优先补齐依赖,而不是继续更换订阅编码。
  4. 对照当前官方仓库的 README、Release 说明和代码,不要只根据旧教程断言“所有版本都支持某种格式”。官方仓库明确要求根据路由器系统和架构选择安装包,依赖也可能随构建变化。

如果你无法确认当前版本支持哪一种订阅,最稳妥的顺序是:先让服务商提供“PassWall2 通用订阅”或明文节点链接,再用单节点验证,最后再处理整组订阅和分流。

仍然失败时的最小闭环与回滚方法

  1. 备份当前 PassWall2 配置,记录原订阅备注、节点数量和默认节点。
  2. 暂时新增一个独立订阅项目,不要覆盖原项目,避免无法比较。
  3. 使用一个确认能在其他客户端读取的通用订阅,或只测试一个明文节点链接。
  4. 保存并应用后手动订阅,观察节点数是否变化。
  5. 若单节点能启动,说明路由器、核心和基础网络大致正常,问题集中在原订阅返回内容、过滤条件或其中某些协议。
  6. 若单节点也无法启动,查看 logread 和 PassWall2 日志,继续排查 DNS、时间、TLS、核心和防火墙。
  7. 确认新订阅可用后,再删除旧订阅项目或恢复备份。

排错时不要同时改变订阅 URL、DNS、TUN、分流、MTU 和防火墙。一次只改一个变量,才能知道是哪一步产生了变化。

安全提醒:订阅 URL 就像授权凭据

订阅地址可能包含用户标识、授权参数或可直接获取节点的凭据。不要在截图、日志、工单和公开帖子中展示完整 URL,也不要把完整的 curl 输出直接发给他人。需要求助时,至少打码域名后的路径、查询参数和节点密码。

如果订阅链接已经公开,建议在提供方后台撤销旧链接并重新生成。本文只讨论合法网络连接和设备排查,不提供绕过访问控制或规避服务授权的做法。

常见问题

PassWall2 订阅格式不支持,优先换 Clash 订阅还是通用订阅?

优先使用服务商明确标注为 PassWall2、V2Ray 或通用节点订阅的地址,再根据当前版本尝试 Clash YAML。不同版本和构建的兼容范围可能不同,不能仅凭文件名或旧教程断言支持。

浏览器打开订阅链接显示一堆乱码,是不是链接坏了?

不一定。它可能是 Base64 编码或压缩内容。先看 HTTP 状态码和 Content-Type,再检查解码后是否包含节点 URI;如果显示 HTML 登录页、错误页面或空白内容,才更像是链接或授权问题。

PassWall2 显示更新成功,但节点列表为空怎么办?

先检查订阅过滤规则是否丢弃了全部节点,再查看日志和订阅正文。如果正文包含当前核心不支持的协议,也可能出现解析后没有可用节点的情况。建议用单个已知可用节点做对照。

能不能把订阅文件后缀改成 .yaml 或 .txt?

不能把后缀修改当成格式转换。后缀不会改变服务器返回内容,也不会把 Base64、HTML 或错误页面转换成有效配置。应让订阅提供方重新生成兼容格式,或使用明确支持的转换工具,并核对授权和隐私风险。

新增订阅后为什么点击手动更新没有反应?

先检查是否已经点击“保存并应用”。PassWall2 官方节点订阅页面提示,新增订阅后应先保存并应用,再进行手动订阅;如果只修改了 URL,也要确认页面已保存当前地址。

相关阅读

参考资料

  1. PassWall2 官方 GitHub 仓库与 README
  2. PassWall2 官方节点订阅页面源码
  3. PassWall2 官方控制器源码:订阅保存与手动更新逻辑
  4. PassWall2 官方仓库 JSON 导入功能讨论,用于区分已实现功能与提议功能