高墙之外❤️

PassWall2 IPv6 连接失败怎么办?

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

简答:PassWall2 IPv6 连接失败,最快的处理顺序是:先确认路由器和客户端真的拿到可用 IPv6,再分别测试 IPv6 直连与代理出口,最后检查 PassWall2 的 IPv6 TProxy、DNS 和防火墙后端。仅打开“IPv6 TProxy”并不代表代理节点支持 IPv6;如果节点不支持,先关闭 IPv6 TProxy或让 IPv6 直连,通常比继续改规则更容易定位问题。本文适用于已安装 PassWall2 的 OpenWrt 路由器,重点覆盖路由器主路由或旁路由场景;不覆盖某个具体固件发行版的专有菜单,也不把单次 ping 或测速当作完整可用性证明。

定义:PassWall2 IPv6 连接失败,是指 OpenWrt 本地 IPv6、IPv6 透明代理或代理出口中的某一层无法建立或未按预期转发 IPv6 流量。

先做这组检查:5分钟判断是本地 IPv6 还是代理链路

这是第三方使用指南站,页面只依据 PassWall2 源码和 OpenWrt 文档整理通用排查方法。先不要同时修改 DNS、MTU、TUN 和防火墙;依次执行下面的检查,并记录哪一步失败。

检查目标命令或位置结果如何判断
WAN6 地址与前缀ubus call network.interface.wan6 status应能看到 IPv6 地址、路由或前缀信息;若接口不存在或无地址,先修复 OpenWrt IPv6,不要先调 PassWall2。
路由器地址ip -6 addr至少区分链路本地地址与可路由地址;只有 fe80:: 地址不能证明具备公网 IPv6。
默认路由ip -6 route检查是否存在默认 IPv6 路由;没有默认路由时,客户端即使拿到地址也可能无法访问外网。
IPv4/IPv6对照curl -4 -I https://目标域名
curl -6 -I https://目标域名
IPv4成功、IPv6失败,优先查本地IPv6或IPv6规则;两者都失败,再查基础节点、DNS或目标域名。
PassWall2规则nft list ruleset | grep -Ei 'PSW2|tproxy|ip6'OpenWrt 22.03及以后通常使用fw4生成nftables规则;如果设备使用旧防火墙,则还要核对iptables/ip6tables。

OpenWrt 官方文档说明,IPv6正常工作通常涉及 DHCPv6 客户端、RA/DHCPv6 服务、NDP以及 IPv6 防火墙;旁路由或只有一个上游前缀的网络,还可能需要 relay 模式。可先对照 OpenWrt IPv6 配置文档 和 IPv6 故障排查文档。

按现象分流:不要把“本地 IPv6 可用”当成“代理出口可用”

  • 路由器自身的 curl -6 失败:先检查 wan6、默认路由、前缀委派、RA、DHCPv6 和 NDP。此时 PassWall2 不是第一故障点。
  • 路由器 curl -6 成功,但 LAN 客户端失败:检查 LAN 是否收到 RA、DHCPv6 地址和默认路由;旁路由环境还要确认主路由是否继续广播 IPv6,以及是否存在重复的 RA/NDP 服务。
  • IPv6 直连成功,开启 IPv6 TProxy 后失败:优先怀疑 TProxy 依赖、TCP 代理方式、nftables/iptables 后端或节点出口能力。PassWall2 当前源码将 IPv6 TProxy标记为实验性功能,并要求确认节点支持 IPv6。
  • IPv4代理成功、IPv6绕过代理:这是典型的 AAAA 记录优先或 IPv6 未被透明代理接管。检查 PassWall2 的 IPv6 TProxy 是否启用、客户端是否拿到全局 IPv6 路由,以及 DNS 返回的 AAAA 是否被分流规则处理。
  • 只有某个 App 或部分网站失败:先比较该域名的 A 与 AAAA 记录,再分别用 curl -4 和 curl -6 测试。应用可能优先选择 IPv6,也可能使用独立的 DNS、QUIC 或自身网络栈。

关键结论是:本地网络具备 IPv6,只能证明“路由器到目标”的一段链路可能可用;PassWall2 的代理节点还必须能够处理 IPv6 连接。PassWall2 源码在启用 IPv6 TProxy 时会提示确认节点及类型支持 IPv6,不能把这个开关理解为自动提供 IPv6 出口。

PassWall2 中正确核对 IPv6 TProxy、代理方式与防火墙后端

  1. 进入 PassWall2 的全局或转发设置,找到源码对应的 IPv6 TProxy 选项。不同 LuCI 主题或版本的菜单层级可能略有差异,字段名以页面实际显示为准。
  2. 确认代理方式。PassWall2 源码在 IPv6 TProxy 启用时将 TCP Proxy Way 设为 TPROXY;普通 IPv4 转发可能显示 REDIRECT 或 TPROXY,两者不要混为一谈。
  3. 确认防火墙后端。OpenWrt 22.03及以后默认使用 fw4 生成 nftables 规则;PassWall2 页面也会根据检测到的组件显示 Iptables 或 Nftables 相关选项。不要在 fw4 环境直接套用旧版 iptables 脚本。
  4. 检查内核能力和模块。可执行 lsmod | grep -Ei 'tproxy|nft|ip6table|mangle';如果固件提供内核配置,还可执行 zcat /proc/config.gz 2>/dev/null | grep -Ei 'TPROXY|NFT_TPROXY_IPV6'。某些厂商固件可能把能力编译进内核,不一定会以独立模块出现在 lsmod 中。
  5. 先只代理 TCP 做验证,暂时不要同时启用 ICMPv6 劫持、复杂 UDP 规则或多个透明代理程序。PassWall2 页面中的 Hijacking ICMPv6 是独立选项,普通网页访问验证不需要先打开。
  6. 保存并重启 PassWall2 后查看日志:logread | grep -Ei 'passwall2|tproxy|nft|ipv6'。如果日志提示透明代理组件不可用,先处理依赖或切回基础代理,不要继续修改 DNS。

PassWall2 的配置源码明确区分 IPv6 TProxy、TCP Proxy Way、Iptables/Nftables 和 ICMPv6 劫持;其 nftables 脚本还会为 IPv6 TProxy创建独立的 IPv6 链和策略路由。因此,看到“服务已启动”不等于 IPv6 流量已经命中代理链。

可核对 PassWall2 页面字段源码、PassWall2 IPv6 nftables规则脚本 和 OpenWrt nftables说明。

DNS、AAAA 与分流规则:为什么网页会绕过 IPv4 代理

当 DNS 返回 AAAA 记录时,客户端可能优先连接 IPv6。如果 PassWall2 只接管了 IPv4,或 DNS 分流返回了不适合当前代理链的地址,就会出现“IPv4 正常、IPv6失败”或看似连接成功但出口不符合预期的情况。

  1. 先在路由器和客户端分别解析目标域名,确认是否同时存在 A 与 AAAA 记录。不要只看一个 DNS 查询结果判断全链路。
  2. 将测试目标固定为一个真实失败域名,分别执行 curl -4 -I https://目标域名 与 curl -6 -I https://目标域名。
  3. 如果关闭 IPv6 TProxy后 IPv4恢复、IPv6仍失败,说明问题更接近 IPv6出口或本地路由;如果关闭IPv6后整个访问恢复,则可能是客户端优先使用 AAAA 而 IPv6透明代理未接管。
  4. 检查 PassWall2 的直连 DNS、远程 DNS、IPv6过滤或查询策略。字段名称和可选值会随核心与版本变化,不能把某个版本的配置文件直接复制到另一套固件。

不要用“关闭 IPv6”作为唯一结论。它可以作为回滚和定位手段,但长期是否关闭要结合局域网设备、办公系统、运营商网络和应用兼容性决定。

最小改动修复顺序与安全回滚

  1. 先备份:保存 OpenWrt 配置,并记录当前 PassWall2 的节点、分流、DNS 与转发设置。
  2. 恢复基础链路:关闭 IPv6 TProxy,保留普通 IPv4 代理,确认 IPv4 网站和局域网设备恢复。
  3. 验证节点出口:使用同一节点分别测试 IPv4 与 IPv6;如果节点不支持 IPv6,不要强行开启 IPv6 TProxy,可暂时让 IPv6直连或在客户端侧禁用 IPv6优先。
  4. 只启用必要能力:先启用 IPv6 TProxy和 TCP TPROXY,暂不启用 ICMPv6 劫持、复杂 UDP规则或其他透明代理服务。
  5. 处理冲突:检查 OpenClash、HomeProxy、Docker、KVM、WireGuard 等是否同时写入防火墙或策略路由。发现规则重复时,一次只停用一个组件并验证。
  6. 最后再改 DNS:只有确认地址、路由、节点和 TProxy均正常后,才调整 AAAA、远程 DNS、FakeDNS 或分流策略。

如果修改后全网异常,立即关闭 IPv6 TProxy并重启 PassWall2;若仍未恢复,再恢复备份配置。不要直接删除防火墙配置文件,也不要把临时关闭 IPv6当作永久修复。

推荐:如果你还需要核对跨设备连接、延迟和丢包,可以使用边界云加速的网络诊断服务,把本地 IPv6、代理出口与办公网络问题分开验证。

常见问题

PassWall2 开启 IPv6 TProxy 后一定要用 TPROXY 吗?

按 PassWall2 当前页面源码,启用 IPv6 TProxy时,TCP Proxy Way 对应的是 TPROXY;普通 IPv4转发则可能提供 REDIRECT或TPROXY选项。实际可选项仍取决于固件是否检测到相关组件。

路由器有 IPv6 地址,为什么手机还是 IPv6 连接失败?

路由器有地址不等于 LAN 客户端收到正确的 RA、DHCPv6 和默认路由。请在手机或电脑上查看 IPv6 地址和默认网关,再检查 OpenWrt 的 LAN 服务模式;旁路由还要排除主路由重复广播或未转发 NDP。

关闭 IPv6 后 PassWall2恢复,是否说明节点坏了?

不能直接说明节点坏了。这个现象只表明 IPv6路径、AAAA优先级、TProxy规则或节点IPv6能力中的至少一层存在差异。应使用同一目标分别执行 curl -4 和 curl -6,再查看 PassWall2日志。

OpenWrt 22.03 以后为什么不能照搬旧 iptables 教程?

OpenWrt 官方说明 22.03及以后默认使用 fw4生成 nftables规则。旧教程中的 iptables命令可能与当前防火墙后端不一致,甚至造成规则冲突,应以当前固件的 fw4/nftables状态和 PassWall2页面实际检测结果为准。

常见问题

PassWall2 IPv6 连接失败,最先应该改哪个设置?

先不要改DNS。先关闭IPv6 TProxy并确认普通IPv4代理可用,再用ubus、ip -6 addr、ip -6 route和curl -4/curl -6判断故障属于本地IPv6、节点出口还是透明代理。

IPv6 TProxy 显示已开启,但为什么仍然泄漏?

可能是客户端直接使用IPv6、AAAA解析未按预期分流、TProxy依赖缺失,或其他防火墙组件覆盖了PassWall2规则。可用nft list ruleset和PassWall2日志确认是否存在IPv6相关链及策略路由。

PassWall2 IPv6必须关闭吗?

不是。是否关闭取决于你的网络是否提供稳定IPv6、代理节点是否支持IPv6,以及你希望IPv6直连还是走代理。关闭IPv6可以作为排查和回滚步骤,不应直接视为所有环境的长期方案。

旁路由环境为什么更容易出现IPv6连接失败?

旁路由通常涉及主路由的RA、DHCPv6、NDP和默认路由广播。如果客户端拿到的IPv6网关仍指向主路由,旁路由上的PassWall2可能无法接管流量,需要结合拓扑检查广播与策略路由。

相关阅读

参考资料

  1. PassWall2 页面字段与 IPv6 TProxy 源码
  2. PassWall2 nftables 与 IPv6 TProxy 规则源码
  3. OpenWrt IPv6 配置文档(openwrt.org)
  4. OpenWrt IPv6 故障排查文档(openwrt.org)
  5. OpenWrt nftables 文档(openwrt.org)