PassWall2 连接失败怎么办?按错误提示逐步排查
简答:PassWall2 连接失败时,先停用复杂分流,只保留一个节点并确认 Core 是否真的启动,再按“订阅—节点—内核—DNS—防火墙—终端网关”的顺序排查。若开启后全网断网,先关闭 PassWall2、恢复路由器直连,再查看日志和防火墙规则,不要反复更换订阅或一键脚本。
定义:PassWall2 连接失败,是指节点测试、代理核心启动、DNS 解析或终端实际访问中的任一环节没有完成,而不一定代表节点本身不可用。
先试这一步:用最小配置判断是哪一层出错
本页是第三方使用指南,不代表任何软件或服务的官方页面。PassWall2 上游代码显示,插件会读取并写入 /tmp/log/passwall2.log,同时根据已安装的代理核心生成配置;上游仓库还列出了 Xray、sing-box 等可选核心。PassWall2 上游仓库 PassWall2 日志与状态代码
| 检查层 | 操作 | 正常结果 | 异常时下一步 |
|---|---|---|---|
| 订阅 | 手动更新并查看节点数量 | 更新成功,节点列表非空 | 检查地址、证书、返回格式和 User-Agent |
| 节点 | 只选择一个节点测试 | 单节点测试有明确成功结果 | 区分单节点故障与全部节点故障 |
| Core | 查看 PassWall2 状态和日志 | 对应的 Xray 或 sing-box 进程存在 | 检查核心文件、协议匹配和启动报错 |
| DNS | 在路由器上解析域名 | 能返回地址且没有明显超时 | 检查远程 DNS、FakeDNS、IPv6 和终端自定义 DNS |
| 转发 | 用一台终端访问普通网页 | 终端网关和 DNS 指向正确 | 检查旁路由、DHCP、防火墙和规则命中 |
先在 PassWall2 中暂时关闭复杂分流、负载均衡和多节点切换,只保留一个已知配置正确的节点。保存后重新启动服务,再观察日志。这样做的目的不是证明该节点一定可用,而是减少规则、核心和节点选择同时变化造成的干扰。
按报错现象定位:订阅、节点还是 Core
| 现象或关键词 | 优先怀疑 | 处理方法 |
|---|---|---|
| 节点列表为空 | 订阅更新失败或格式不兼容 | 重新检查订阅地址是否完整、返回内容是否为预期格式;确认更新后页面确实出现节点,不要只看“请求成功”。 |
| 所有节点 timeout | 路由器出口、DNS、核心或防火墙 | 先在路由器上确认基础网络正常,再查看 Core 日志和防火墙;不要先认定所有节点同时失效。 |
| 只有一个节点 timeout | 该节点参数或线路 | 用另一个节点做对照,核对协议、端口、传输方式、SNI、认证参数和时间设置。 |
| connection refused | 本地端口未监听或核心没有成功启动 | 查看进程和日志,检查端口是否被其他插件占用;不要只根据页面上的“启用”状态判断核心已运行。 |
| TLS handshake failed | 协议、SNI、证书校验或系统时间 | 核对节点原始参数、SNI、传输方式和路由器时间;不要为了绕过错误直接关闭证书校验。 |
| DNS resolution failed | DNS 上游、FakeDNS 或 IPv6 | 先在路由器上测试解析,再分别检查远程 DNS、终端 DNS 和 IPv6 路径。 |
| Core 未运行 | 核心文件缺失、权限、依赖或配置生成失败 | 确认对应核心命令存在,查看 PassWall2 日志中的第一条错误,再针对协议和依赖修复。 |
PassWall2 的上游脚本会根据可用核心生成配置并启动进程,因此“页面已保存”不等于“核心已经运行”。如果选择了 sing-box 类型,却没有对应可执行文件,或节点字段与核心支持范围不匹配,就应先从核心文件和生成配置方向排查。PassWall2 上游启动脚本
SSH 检查清单:Core、日志、DNS 与防火墙
以下命令在 OpenWrt 路由器 SSH 环境执行,通常需要 root 权限。每组命令都先记录结果,再修改配置,便于撤销。
- 确认核心文件是否存在:
which xray; which sing-box预期至少有一个路径返回。若全部没有结果,先安装与当前固件版本、架构匹配的核心包;不要混用不同架构或不同包管理体系的文件。
- 查看核心进程:
ps w | grep -E 'xray|sing-box' | grep -v grep预期能看到正在运行的核心及其配置参数。没有结果时,回到 PassWall2 页面重新载入配置,并立即查看日志。
- 查看 PassWall2 日志:
tail -n 200 /tmp/log/passwall2.log重点搜索
error、failed、permission、not found、timeout、certificate、listen。优先处理最早出现的错误,而不是最后一行的连锁报错。 - 查看系统日志:
logread | tail -n 200用于发现服务重启、权限、网络接口和防火墙相关错误。
- 测试路由器 DNS:
nslookup example.com 127.0.0.1如果本机 DNS 服务没有响应,再检查 PassWall2 的 DNS 设置、dnsmasq 监听地址和上游 DNS;如果路由器能解析而终端不能解析,继续检查 DHCP 和终端自定义 DNS。
- 检查防火墙规则:
fw4 printOpenWrt 22.03 及之后的防火墙使用 fw4 和 nftables,
fw4 print可用于查看生成的规则;也可用nft list ruleset查看运行中的规则集。OpenWrt 防火墙与 nftables 检查说明 - 检查 IPv6 路径:
ip -6 address show; ip -6 route show table all如果终端优先使用 IPv6,而 PassWall2 只处理 IPv4,可能出现部分网站打不开或浏览器长时间等待。可先在一台测试设备上临时关闭 IPv6验证,确认现象后再决定长期配置。
TCP Ping 有响应,只能说明某个地址和端口具备一定可达性,不能替代核心实际启动、认证、TLS 握手、DNS 解析和代理访问验证。因此“TCP Ping 正常但网页打不开”时,应继续看 Core 日志和实际业务访问结果。
DNS、IPv6、旁路由与插件冲突怎么区分
- 仅路由器自身失败:优先检查 PassWall2 核心、路由器 DNS、系统时间和出口网络。
- 路由器正常,所有终端失败:检查终端网关是否指向该路由器,DHCP 下发的 DNS 是否正确,以及终端是否手动指定了其他 DNS。
- 只有部分终端失败:检查浏览器安全 DNS、系统代理、IPv6 和设备上的其他网络工具。
- 主路由正常,旁路由失败:确认旁路由的默认网关、LAN 地址、DHCP 角色和 DNS 角色没有互相冲突。旁路由不应同时让多个设备争抢 DHCP。
- 启用后全网断网:立即关闭 PassWall2或恢复直连,确认基础网络恢复后再检查透明代理端口、TUN/TProxy依赖、规则生成和其他代理插件。
OpenWrt 的防火墙后端从 fw3 逐步转向 fw4,基于 iptables 的自定义规则在新版本上可能需要改为 nftables 方式;排查时应先确认固件版本和实际防火墙后端,不要直接复制旧教程命令。OpenWrt Firewall overview
如果同时运行多个代理插件,可能发生端口监听、DNS 接管或防火墙规则重复注入。安全做法是一次只保留一个插件负责透明代理,保存前记录原配置;修改后按“保存—重新载入—查看日志—终端访问”验证,失败就撤销最近一次改动。
修复后的验证闭环:不要只看“运行中”
- 在 PassWall2 中只启用一个节点和一种核心,保存配置。
- 重新载入或重启 PassWall2,等待数秒后查看页面状态。
- 用
ps确认对应核心进程存在,用tail确认日志没有新的启动、证书、端口或解析错误。 - 在路由器上测试 DNS,再在一台终端上确认网关、DNS 和代理规则命中。
- 先访问一个普通网页,再测试需要代理的业务;若只有特定网站失败,回到分流、IPv6 或 DNS 规则排查。
- 确认稳定后,再逐项恢复 FakeDNS、复杂分流、负载均衡或其他插件,每次只改一个变量。
若重新启动后仍然失败,保留以下信息再寻求帮助:OpenWrt 版本、设备架构、PassWall2 版本、所选核心、错误关键词、是否主路由或旁路由,以及脱敏后的日志片段。不要公开订阅地址、用户名、密码、密钥或完整节点链接。
常见问题
PassWall2 显示 Core 未运行,但节点测试成功,怎么办?
先确认页面选择的核心文件是否存在,再执行 ps 查看进程,并立即查看 /tmp/log/passwall2.log。节点测试成功不等于透明代理核心已按当前配置启动;应优先处理日志中最早出现的 not found、permission、listen 或配置生成错误。
PassWall2 所有节点都超时,是不是订阅失效?
不能直接下结论。先确认路由器基础网络和 DNS 正常,再检查核心是否运行、防火墙规则是否加载、系统时间是否正确。只有在同一时间、同一配置下全部节点都无法完成实际代理连接,才适合继续核对订阅来源和节点参数。
为什么 TCP Ping 正常,但 PassWall2 仍然打不开网页?
TCP Ping 只适合做基础可达性对照,不能证明认证、TLS、协议参数、DNS 和代理转发全部成功。请用单节点实际访问测试,并同时查看 Core 日志、DNS 解析结果和终端规则命中情况。
PassWall2 开启后全网断网,如何安全恢复?
先关闭 PassWall2 或停用透明代理,确认路由器直连恢复;然后检查最近修改的核心、DNS、TUN/TProxy、端口和防火墙规则。一次只恢复一个配置项,验证日志和终端访问后再继续。
旁路由上 PassWall2 连接失败,主路由却正常,重点看什么?
重点检查旁路由默认网关、LAN 地址、DHCP 和 DNS 角色。终端必须把旁路由作为实际网关,且不能同时接受多个设备下发的冲突 DHCP;还要排除终端自定义 DNS、IPv6 和浏览器安全 DNS。
相关阅读
参考资料
- GitHub:Openwrt-Passwall/openwrt-passwall2 上游仓库
- GitHub:PassWall2 LuCI 控制器与日志路径代码
- GitHub:PassWall2 启动脚本与核心检测代码
- OpenWrt Wiki:Netfilter Management(openwrt.org)
- OpenWrt Wiki:Firewall overview(openwrt.org)