QuickQ的WireGuard黑洞检测怎么做

加速器 quickq 2

本文目录导读:

QuickQ的WireGuard黑洞检测怎么做-第1张图片-QuickQ官网 | 高速稳定下载-官网下载

  1. 方案一:使用基于 Keepalive + Peer Endpoint 检测(最基础)
  2. 方案二:使用 Wg-quick 自带的 fwmark + 路由策略 + mtu 检测(较高级)
  3. 方案三:使用 keepalived / FRR 与 BFD 联动(专业级黑洞检测)
  4. 方案四:QuickQ 系统自带的“链路检测”功能(最简单)
  5. 针对你的 QuickQ 系统的实操建议

QuickQ 的 WireGuard 黑洞检测,这通常指的是如何检测 WireGuard 对端节点是否已失效(即进入黑洞状态),并自动触发流量切换或告警。

由于“QuickQ”这个名称可能指代不同的路由系统或定制化固件(如 QuickQ 基于 OpenWrt、RouterOS 或其他平台的二次开发),具体的配置路径会有差异,但底层原理和通用实现方法是一致的。

以下是几种主流的实现方案,请根据你的 QuickQ 系统支持的能力选择:

使用基于 Keepalive + Peer Endpoint 检测(最基础)

这是 WireGuard 自带的被动检测机制,适用于检测对端是否“不可达”,但不适用于检测对端的 WireGuard 服务进程是否“死锁”。

  1. 原理:WireGuard 通过 PersistentKeepalive 定时发送空包,保持 NAT 映射和连接状态,如果长时间收不到对端的响应,WireGuard 会将 latest-handshake 时间戳增长。
  2. QuickQ 中的操作
    • 在 WireGuard 接口配置中,找到对端的 Peer 设置。
    • 启用并设置 PersistentKeepalive = 25(推荐 25-30 秒)。
    • 黑洞检测阈值:QuickQ 通常会在状态页面显示“Last Handshake”时间,如果该时间持续增加超过 120-180 秒,可以手动判断或编写脚本来处理(如切换路由)。
  3. 局限性:WireGuard 本身没有“断开重连”机制,如果对端内核崩溃或路由错误,Keepalive 收不到回复,但你无法自动切换,它更多是被动告警

使用 Wg-quick 自带的 fwmark + 路由策略 + mtu 检测(较高级)

如果你使用的是 Linux 内核的 WireGuard 且 QuickQ 支持自定义脚本,可以利用 WireGuard 的 fwmark 特性来做活跃性检测。

  1. 原理:将 WireGuard 接口的流量打上特殊的 fwmark,然后创建一条策略路由,让 Ping 检测流量走这条策略路由(不受主路由表影响),同时检查 IP 地址的联通性。
  2. QuickQ 中的操作(需进入 shell 或高级设置)
    • 在 WireGuard 配置中,为接口设置 Table = off 或自定义路由表 Table = 100
    • 设置 FwMark = 0xca6c (这是一个示例值)。
    • 添加监测脚本(cron 任务)
      #!/bin/sh
      # 检测目标 IP(例如对端的内网IP或公网IP)
      PEER_IP="10.0.0.2"
      # 使用 fwmark 强制检测流量走 WireGuard 接口
      if ! ping -c 3 -I wg0 $PEER_IP > /dev/null 2>&1; then
          # ping 不通,则认为进入黑洞
          echo "WireGuard peer $PEER_IP 黑洞!执行切换..."
          # 执行你的切换逻辑,例如修改路由表或重启接口
          # ip route del default via ... 
      fi
    • 注意:需要确保 wg-quick 生成的策略路由规则允许检测流量正确被路由。

使用 keepalived / FRR 与 BFD 联动(专业级黑洞检测)

适合 QuickQ 系统支持 keepalivedFRR(Free Range Routing)等高级路由协议的情况。

  1. 原理:通过 BFD(双向转发检测) 协议对 WireGuard 隧道进行毫秒级的心跳检测,一旦 BFD 会话中断,会立即通知上层路由协议(如 OSPF/BGP),将流量切换到备份链路。
  2. QuickQ 中的操作
    • 安装 frrbirdkeepalived
    • 配置 BFD
      bfd
       peer 10.0.0.2
        detect-multiplier 3
        min-tx 100
        min-rx 100
      !
    • 配置 OSPF/BGP:将 WireGuard 接口配置为 OSPF 或 BGP 邻居,并关联 BFD。
    • 当 BFD 检测到 WireGuard 隧道不通时,OSPF/BGP 会立即收回该路由,实现秒级黑洞逃生。
  3. 优点:真正的硬件级检测,速度快,适合多出口、多隧道的复杂网络。

QuickQ 系统自带的“链路检测”功能(最简单)

许多 QuickQ 固件(尤其是基于 OpenWrt 或 RouterOS 的二次开发)在 “网络” -> “诊断”“隧道” 菜单下,直接集成了 “黑洞检测”“保活检测” 功能。

  • 操作步骤
    1. 找到你的 WireGuard 隧道配置页面。
    2. 查找 “高级设置”“故障转移” 选项卡。
    3. 启用 “健康检查”
    4. 检测目标:填写一个位于 WireGuard 隧道对端内部网络中的稳定 IP(0.0.1)。不要填写对端的公网 IP,因为公网 IP 可能走的是 WAN 口直接路由,无法反映隧道状态。
    5. 检测间隔:设置 3-5 秒。
    6. 失败阈值:设置连续失败 3 次。
    7. 动作:选择“重启接口”、“切换路由表”或“告警”。

针对你的 QuickQ 系统的实操建议

  1. 先试试 Web 界面:登录 QuickQ 后台,进入 VPN -> WireGuard -> 点击你的 Peer -> 查看是否有 “健康检查”“高级” 选项。
  2. 查看日志:在 系统日志 中搜索 wireguardwg,看是否有 Handshake did not completePeer is unreachable 等关键词,这可以帮你判断系统是否已经内置了被动检测。
  3. 如果以上都不适用:请提供你的 QuickQ 系统版本号或固件来源(是 iKuai、OpenWrt 魔改还是其他?),我可以给出更具体的配置参数,最通用的方案是方案二(脚本 + fwmark),但需要你有 Shell 访问权限。

对于大多数 QuickQ 轻量用户,推荐使用方案四(系统自带功能),如果系统没有,请用方案二(脚本定时 Ping + 自动切换)。

抱歉,评论功能暂时关闭!