高墙之外❤️

PassWall2 路由日志怎么看?从 LuCI 到 SSH 的完整排查方法

更新于 2026-10-27 · passwall.lol

简答:先在 PassWall2 的“运行日志”查看主日志,再用 SSH 执行 logread | grep -i passwall2 对照系统日志。若仍无法定位,再检查 /tmp/log/passwall2.log、/tmp/log/passwall2_server.log,以及具体节点或 ACL 实例日志。

定义:PassWall2 路由日志是插件主进程、代理核心实例、ACL 分流实例、服务端实例和 OpenWrt 系统服务产生的诊断信息,用来判断故障发生在配置、核心、DNS、节点还是防火墙。

先做三步速查:PassWall2 路由日志应该看哪一份

如果你只是遇到“节点连不上”或“打开网页失败”,不要一开始就翻所有文件。先按下面的顺序缩小范围:

现象先看位置重点判断
PassWall2 页面提示核心未运行服务→PassWall2→运行日志主进程是否启动、配置是否生成、依赖是否缺失
节点超时、拒绝连接或握手失败具体节点实例日志,再看主日志地址、端口、TLS、认证和网络连通性
域名打不开、IP可以访问主日志与 OpenWrt 系统日志DNS 解析、分流规则和 DNS 转发
网页端没有明显报错SSH 执行 logread服务启动、守护进程、接口和防火墙相关错误

PassWall2 官方项目在 LuCI 控制器中将菜单注册为“Runtime Logs”,同时提供主日志和服务端日志读取、清空功能;部分版本的中文界面可能显示为“运行日志”或相近名称。可参考PassWall2 官方控制器代码与官方项目说明。

LuCI 网页端:查看、清理和重新载入日志

  1. 登录 OpenWrt 的 LuCI 管理页面。
  2. 进入“服务”或“Services”,打开“PassWall2”。
  3. 在左侧菜单寻找“运行日志”“Runtime Logs”或“日志”。如果界面显示“查看日志”,优先查看主日志。
  4. 先复制或保存故障发生前后的几行,再点击“保存并应用”或重启服务复现一次,不要只看启动后很久以前的旧内容。
  5. 如果日志已经过长,可在确认不需要保留后使用页面提供的清理功能,再重新启动 PassWall2。

官方代码显示,主日志对应 /tmp/log/passwall2.log,服务端日志对应 /tmp/log/passwall2_server.log;网页端读取的是这些文件当前内容,清理操作会将对应文件置空。日志位于 /tmp 下,重启或系统运行状态变化后不应把它当作永久存档。

注意:不同版本、不同语言包可能调整菜单名称。找不到“查看日志”时,优先搜索“运行日志”,或者直接使用 SSH 检查文件是否存在。不要因为菜单名称不同,就认定插件没有日志功能。

SSH 命令:查看系统日志、主日志和服务端日志

通过 SSH 登录路由器后,建议按以下顺序执行。命令默认需要具有管理权限;如果当前账户不是 root,请先切换到有权限的管理 shell。

  1. 查看最近的 PassWall2 系统日志:
    logread | grep -i passwall2
  2. 持续观察新日志:
    logread -f | grep -i passwall2
    执行后回到客户端复现一次故障,按 Ctrl+C 结束。
  3. 查看主日志最后 100 行:
    tail -n 100 /tmp/log/passwall2.log
  4. 查看服务端日志最后 100 行:
    tail -n 100 /tmp/log/passwall2_server.log
  5. 重启客户端服务后立即复查:
    /etc/init.d/passwall2 restart
    然后再次执行 logread | grep -i passwall2。

官方项目把“服务无法启动”列为可通过 logread | grep passwall2 检查的常见问题,并将调试日志指向主日志与服务端日志。命令可参考PassWall2 官方项目的故障排查说明。

如果想清空主日志后重新采集,可在确认已保存旧日志后执行:

  • : > /tmp/log/passwall2.log
  • : > /tmp/log/passwall2_server.log

清空后应立即重启或重新应用配置,再观察新内容。不要在没有备份的情况下反复清空,因为错误发生前的上下文通常比最后一行更有价值。

主日志、节点日志、ACL 日志和服务端日志有什么区别

日志类型适合定位的问题查看方式
主日志配置生成、服务启动、规则加载、核心调用和整体流程/tmp/log/passwall2.log 或 LuCI 运行日志
服务端日志PassWall2 服务端实例启动、停止和服务端配置错误/tmp/log/passwall2_server.log
节点或 SOCKS 实例日志某个节点的连接、认证、TLS、超时和核心输出在节点或 SOCKS 配置页启用日志后,按页面显示的路径查看
ACL 或重定向实例日志特定客户端、访问控制组或透明代理分流行为在对应 ACL 条目中查看实例日志
OpenWrt 系统日志服务启动失败、接口变化、DNS、守护进程和防火墙相关信息logread

PassWall2 官方控制器分别实现了主日志、服务端日志、SOCKS 日志和 ACL 重定向日志的读取入口;其中 SOCKS 实例的具体文件名由实例名称组成,网页配置页会展示对应路径。不要把“订阅更新成功”当成“节点连接成功”:订阅日志只能说明配置获取或解析过程,不能证明代理核心已经正常运行。

如果只想定位某一个实例,可以先在 LuCI 页面打开该实例的日志选项,再回到页面提供的“查看日志”入口。官方配置代码也显示,启用日志后会向实例临时路径写入日志文件,路径可能因实例名称和版本变化而不同,因此不建议盲猜文件名。

常见关键词怎么理解:先判断故障在哪一层

下面是排查时常见的关键词解释。这部分属于通用诊断经验,最终仍应以你当前版本的完整日志和配置为准。

  • core is not running、核心未运行:先查主日志,确认代理核心是否被成功启动;再核对核心文件、配置生成结果、端口占用和节点格式。
  • connection refused:通常表示目标端口主动拒绝连接,也可能是本地核心没有监听对应端口。先区分目标地址端口与路由器本地监听端口。
  • timeout、i/o timeout:表示在限定时间内没有完成连接或读写。检查节点地址、端口、路由器出口、丢包情况和服务端是否可达,不要只重复重启。
  • DNS failed、resolve failed:重点检查域名解析、DNS 转发、分流规则和上游 DNS。若只有域名失败而 IP 访问正常,优先从 DNS 层排查。
  • handshake failed、TLS handshake:检查协议类型、TLS 开关、SNI、证书校验、时间设置和核心版本是否匹配。不要仅凭“握手失败”判断节点一定失效。
  • rule parse failed、invalid config:通常指规则或生成的核心配置无法解析。先检查最近修改的字段、缩进、协议参数和规则文件,再恢复到上一次可用配置。

PassWall2 官方说明建议在服务无法启动时检查系统日志、节点配置和所需软件包;对于 DNS 与连接问题,也应同时检查 DNS 设置、透明代理和防火墙。可参考官方故障排查章节,不要只依据单条报错下结论。

一套可复用的排查闭环:从复现到撤销

  1. 备份:先记录当前节点、DNS、透明代理和 ACL 设置;能导出配置就先导出,避免排查过程中丢失原状态。
  2. 复现:只保留一个明确故障,例如“某节点无法连接”或“域名无法解析”,记录发生时间。
  3. 采集:同时打开 LuCI 运行日志和 logread -f | grep -i passwall2,复现一次即可。
  4. 分层:看到配置错误先查配置;看到核心未运行先查启动与依赖;看到 DNS 关键词先查解析;看到 timeout 或 refused 再查节点地址、端口和出口连通性。
  5. 最小修改:一次只改一个变量,例如更换一个节点、关闭一个规则组或暂时停用某个 DNS 选项。
  6. 复测:重启 /etc/init.d/passwall2 restart,重新查看主日志、实例日志和实际访问结果。
  7. 撤销:如果修改后问题扩大,恢复备份或撤销最后一项改动,不要连续覆盖多个配置项。

PassWall2 的服务脚本提供标准的启动、停止和重启入口;如果某项配置导致服务持续失败,优先恢复最近一次已知可用配置,再逐项加入改动。源码中的服务入口可见PassWall2 官方服务脚本。

日志安全:分享截图前必须脱敏

PassWall2 日志可能包含订阅地址、节点域名、服务器 IP、端口、UUID、用户名、密码、SNI 或其他连接参数。即使日志只显示一部分,也不建议直接发布原图。

  • 遮住订阅链接、访问令牌、UUID、密码和私有域名。
  • 必要时同时隐藏公网 IP、端口和设备局域网地址。
  • 保留时间、错误关键词、协议类型和返回码,方便别人判断故障层级。
  • 分享前搜索 token、uuid、password、secret 等字段。
  • 如果已经公开了完整订阅链接或凭据,应尽快在对应服务端撤销或重新生成。

日志默认写入 /tmp 的事实也意味着它更适合短期诊断,不适合作为长期审计记录。官方项目的公开讨论曾指出,PassWall2 使用独立的临时日志文件,而不是完全接入 OpenWrt 标准日志系统;因此需要同时查看 LuCI 日志文件和 logread,不能只依赖其中一处。相关背景可见官方项目日志讨论。

第三方使用说明与范围

本文是第三方使用指南,不代表 PassWall2 或相关项目的官方支持页面。PassWall2 的菜单、字段和日志格式可能随版本、OpenWrt 分支以及所使用的代理核心变化;如果你的界面名称与本文不同,应以当前安装版本显示内容和项目说明为准。

本文只讲路由器端日志定位,不展开安装包选择、订阅购买、节点评价或具体服务状态。遇到无法确认的版本兼容性、核心行为或服务端问题,应保留完整脱敏日志,向对应项目维护者或服务提供方核实。

常见问题

PassWall2 路由日志在 LuCI 哪个位置?

通常进入“服务→PassWall2”,寻找“运行日志”“Runtime Logs”或“日志”。不同版本菜单名称可能不同,找不到时可用 SSH 检查 /tmp/log/passwall2.log。

为什么 logread 查不到完整的 PassWall2 日志?

PassWall2 的主日志和服务端日志可能单独写入 /tmp/log 文件,不一定全部进入 OpenWrt 的系统日志。因此应同时查看 logread、/tmp/log/passwall2.log 和 /tmp/log/passwall2_server.log。

PassWall2 显示核心未运行,先看哪份日志?

先看主日志,确认配置是否生成、核心是否启动以及是否存在端口或依赖错误;随后查看具体节点实例日志,判断是启动失败还是节点连接失败。

看到 connection refused 就代表节点失效吗?

不一定。它也可能表示本地核心没有监听目标端口、地址或端口填写错误,或者中间设备拒绝连接。应结合完整日志和实际连通性判断。

PassWall2 日志可以直接发到论坛吗?

不建议。先遮盖订阅地址、UUID、密码、令牌、节点域名、公网 IP 和端口,只保留时间、错误关键词、协议类型与必要的返回码。

相关阅读

参考资料

  1. PassWall2 官方 GitHub 项目说明与故障排查
  2. PassWall2 官方 LuCI 控制器:运行日志、主日志与服务端日志
  3. PassWall2 官方 SOCKS 实例日志配置
  4. PassWall2 官方服务启动脚本
  5. PassWall2 官方项目关于独立日志文件的讨论