mistgate 文档
中文

在管理后台:节点

WARP

了解如何让协议配置的流量经 Cloudflare WARP 出口、如何为节点获取账户、「停止转发(不回退直连)」的含义,以及如何查看和修复 WARP 连接。

本页内容

默认情况下,协议配置的流量会从节点自身的地址离开。使用 WARP 后,流量会改经 Cloudflare 网络离开:网站看到的是 Cloudflare 地址,而不是服务商分配给你的地址。每个节点最多有一个 WARP 账户,该节点上所有使用 WARP 出口的协议配置都会经由此账户传输。Hysteria2、VLESS 和 AmneziaWG 协议配置都可以使用 WARP。

工作方式#

节点上的每个协议配置都有自己的出口。出口为「直连」的协议配置从节点自己的地址出去;出口为 WARP 的协议配置经过节点唯一的 WARP 账户,网站看到的是 Cloudflare 的地址。WARP 不可用时,经 WARP 出口的协议配置不转发任何流量,也绝不会回退到节点自己的地址。 应用 Happ, kl!ck, AmneziaVPN 节点 de1.example.com Hysteria2 出口:直连 Hysteria2,WARP 副本 出口:WARP AmneziaWG 出口:WARP 直连 节点的 IP WARP 一个账户 网站看到的 是节点 IP 网站看到的 是 Cloudflare IP 故障时停止转发 WARP 不可用时,经 WARP 出口的协议配置不转发任何流量: 它们绝不会回退到节点自己的地址。
  • 出口是协议配置的设置。 出口(Hysteria2 和 VLESS 的高级部分、AmneziaWG 的基础部分)可以设为直连或WARP。
  • 账户属于节点。 在节点的 WARP 卡片中设置:节点 → 设置,第一张卡片。节点页眉中的 WARP 标签也会链接到这里。
  • 使用 WARP 出口的协议配置,在其运行的每个节点上都需要一个账户。 编辑器会列出该协议配置中没有正常运行 WARP 的节点,每个节点都链接到其 WARP 卡片。
  • MCP 工具。 warp_status 会读取账户和节点最近一次探测结果。使用 Admin 令牌时,warp_restart_plan / _apply 会重启隧道;所有者批准计划并查看服务条款链接后,warp_reregister_plan / _apply 会更换账户。

如需同时提供直连和 WARP 出口,请创建使用另一种出口的协议配置副本(WARP 副本):请参阅协议配置。

停止转发(不回退直连)#

使用 WARP 出口的协议配置绝不会改为直连。如果 WARP 不可用,该协议配置就不会传输流量,避免用户流量静默地从节点自身地址发出:

情况 节点上使用 WARP 出口的协议配置
节点没有 WARP 账户 不会启动(「节点上没有可用的 WARP」)。
WARP 已暂停 在恢复前停止传输流量。
隧道断开 在隧道恢复前停止传输流量;如果只是速度较慢,则会继续运行,但速度较慢。

节点没有 WARP、WARP 已暂停或隧道断开时,添加协议配置的对话框会在点击前发出警告。诊断中的WARP 出口检查和客户端视角检测也会从另一侧显示相同情况:使用直连的协议配置正常、使用 WARP 的配置失败时,会触发指出 WARP 出口问题的告警。请参阅运行状况。

获取账户#

尚无账户的节点卡片会显示未设置,并提供两种方式。两种方式都需要所有者操作并重新确认登录身份(再次验证),也都需要支持 WARP 的 Agent;Agent 版本过旧时会显示指向更新的链接。

启用 WARP(注册)#

点击启用 WARP会为此节点注册新的 Cloudflare WARP 账户并加密保存。窗口会说明点击后的操作:

  • 这是匿名设备账户:不需要电子邮件或密码;
  • 注册请求从面板地址发出,不从节点地址发出;
  • 面板会代表你接受此账户的 Cloudflare WARP 服务条款。窗口会链接到条款;勾选「我已阅读 Cloudflare WARP 服务条款,并同意此账户适用」前,启用 WARP按钮不可用。

注册需要几秒钟;随后节点会启动隧道。如果 Cloudflare 拒绝来自面板地址的新账户(「Cloudflare 目前拒绝从面板地址注册新账户」),窗口会提供导入 wgcf 配置文件。

导入 wgcf 配置文件#

面板注册无法使用时,可采用此方式。在可用的电脑上使用 wgcf 工具生成文件,然后粘贴内容或点击打开文件:

文件 必需 用途
wgcf-profile.conf 是 私钥和对等端。必须包含 [Interface]、PrivateKey 和 [Peer]。
wgcf-account.toml 否 访问令牌。没有此文件时,从 Cloudflare 重新读取无法使用,删除账户也只会在此处删除账户,不会在 Cloudflare 删除。

WARP 卡片#

标题旁会显示账户来源(在此注册或已导入)、账户类型(free 或 plus)和上次探测到的 Cloudflare 数据中心。

状态#

状态 含义
未设置 此节点没有账户。
等待节点 账户已创建,但节点尚未报告状态或处于离线状态。
无后端 主机既没有 WireGuard 内核模块,也没有 /dev/net/tun。
启动中 正在启动隧道。检查持续失败时会显示「启动中:检测失败」。
正常 握手和探测都通过。最近一次检查失败时会显示「正常:上次检测失败」。
异常 握手或探测失败。
已暂停 你已暂停 WARP。

连接状态#

  • 握手:上次与 Cloudflare 完成隧道握手的时间。
  • 端点:正在使用的 Cloudflare 地址和端口。
  • 流量:通过隧道传输的入站和出站字节数。
  • Cloudflare和其他站点:通过隧道运行的两个探测,一个访问 Cloudflare,一个访问外部站点。每项显示正常和所用时间、缓慢(超过 2 秒)或失败。探测会在 20 秒后超时;HTTP 失败时会显示状态码。
  • 显示「N 秒前检查」。节点每 30 秒检查一次;隧道启动时每 5 秒检查一次。连续失败时会显示「连续 3 次检查失败」。
  • 详情:WireGuard 后端、Cloudflare 返回的标记(warp=on、warp=plus 或 warp=off),以及账户的保留字节是否写入数据包。

检查失败时,卡片会用文字说明发生了什么及其含义:探测失败、流量没有通过 WARP(warp=off)、握手过期或缺失、网络接口关闭,或主机没有 WireGuard 后端。

自动恢复#

隧道断开得到确认后,运行状况页面中的诊断会提供重新连接 WARP。请先查看并确认计划。此操作会重建当前隧道并重新应用路由,不会更改账户。使用 WARP 的协议配置可能会短暂暂停。探测速度较慢但仍然成功时,不会触发重新连接。

隧道断开期间,节点会在每次检查失败后逐步尝试以下方式:

  1. 重新设置路由、规则并启用网络设备;
  2. 尝试 Cloudflare 的其他地址和端口:2408、500、1701 和 4500 端口,优先 IPv4 端点;账户有 IPv6 时再尝试 IPv6 端点;
  3. 请求面板从 Cloudflare 重新读取账户(需要访问令牌,不会创建新账户);
  4. 放弃恢复,并在卡片上显示需要关注。

最后一步后会等待 10 分钟;期间仍会在每次检查失败后尝试下一个地址,随后从头开始。卡片会显示当前步骤(「正在尝试恢复:已切换地址和端口……」)。

按钮#

按钮 显示条件 操作
重启 WARP 账户已启用且未吊销;隧道断开时作为主按钮显示 一次完成暂停和恢复:节点先断开隧道,再从头按照恢复步骤重新启动。如果节点未能及时确认暂停,恢复操作仍会发出:「WARP 已重新开启,但节点没有确认暂停:请一分钟后再看」。
重新注册 始终显示;Cloudflare 不再识别账户(已吊销)时作为主按钮显示 一步注册新账户并替换旧账户;旧设备会在 Cloudflare 删除。条款窗口与启用 WARP相同。慢速或不稳定的出口需要更换设备时,请使用此按钮,不要先点删除账户再重新注册:节点会继续使用现有 WARP,直到新账户到达,因此不会中断流量或触发告警。
从 Cloudflare 重新读取 账户有访问令牌 从 Cloudflare 重新读取端点、地址和客户端 ID,不会创建新账户。
暂停 / 恢复 始终显示 暂停会拆除隧道。窗口会列出将停止工作的协议配置,以及当前有多少连接经过这些配置。账户已暂停时应使用恢复,而不是重启。
删除账户 始终显示 输入节点名称并重新验证以确认。节点会失去 WARP;使用 WARP 出口的协议配置会停止工作。账户中保存着令牌时,也会在 Cloudflare 删除设备。之后可以注册或导入其他账户。

有些问题需要手动处理,卡片会说明原因:

  • WARP 使用的路由表(51820)已有其他程序的路由,常见情况是 wg-quick:请释放该路由表或停止另一条隧道;
  • 其他程序占用了 WARP 所需的路由规则优先级(90 和 110);
  • 名为 mgwarp 的网络接口已存在,但不是 WARP 的接口;
  • 节点无法应用账户设置:原因记录在节点事件中。

IPv4 和 IPv6#

  • 账户会将 Cloudflare 端点保存为 IP 地址,而不是名称。节点每次都会先尝试 IPv4 端点的所有端口;账户有 IPv6 时,再尝试 IPv6 端点。
  • 新账户通常没有隧道内的 IPv6 地址。此时经 WARP 出口的连接只使用 IPv4,无法通过 WARP 访问只有 IPv6 的目标。
  • 没有 IPv6 的节点也可以使用 WARP:诊断会说明 WARP 使用节点的 IPv4 地址。
  • 名称使用节点的此节点的 DNS 服务器解析,与直连出口相同。请参阅 DNS。

主机要求#

需要 WireGuard 内核模块,或需要为用户态后端提供 /dev/net/tun。运行状况 → 诊断报告服务单元已过时时,请在那里应用刷新服务单元;Agent 会重启,连接可能中断几秒。Agent 版本过旧而无法提供此修复时,请使用当前二进制运行一次 mistgate-node install。

注册设置#

以下两项注册设置只能通过 API 使用,管理后台中没有对应选项(WarpService.GetWarpRegistrationParams 和 UpdateWarpRegistrationParams,仅限所有者):

  • 构建注册请求时使用的值(API 版本、User-Agent、客户端版本和 TLS 指纹)。Cloudflare 会不时更改其接受的值。值留空时会使用内置值;读取时会同时返回内置值和你设置的值;
  • 默认关闭的自动重新注册。开启后,如果 Cloudflare 吊销了已注册账户,面板会自动注册新账户;每个节点每小时最多一次。开启此设置也表示接受今后这些账户的 Cloudflare 服务条款。

请参阅 API。

注意

每个节点使用一个免费的消费者 WARP 账户,该节点上所有人的流量都会经由此账户传输。Cloudflare 可能限制或暂停账户;发生这种情况时,使用 WARP 出口的协议配置会保持停止状态,直到你注册或导入其他账户。不要依赖 WARP 承载任何不能中断的流量。

在 GitHub 上编辑此页