Cloudflare WARP
sing-box 1.14.2.1 中的更改
自 sing-box 1.14.0.18 起
通过 MASQUE 连接 Cloudflare WARP:一条承载 IP 数据包的 HTTP/3 CONNECT-IP 隧道,经由用户态网络栈提供给 sing-box。支持 TCP 和 UDP。
构建标签
需要 with_quic 和 with_gvisor 构建标签。
结构
{
"type": "cloudflare-warp",
"tag": "warp",
"server": "",
"server_port": 443,
"private_key": "",
"address": [],
"endpoint_public_key": "",
"device_id": "",
"access_token": "",
"license": "",
"access_jwt": "",
"device_name": "",
"ephemeral": false,
"api_detour": "",
"network": "",
"mtu": 1280,
"tls": {},
... // QUIC 字段
... // 拨号字段
}
注册模式
WARP 设备必须先在 Cloudflare 注册才能连接。有三种模式。
静态凭据。 运行以下命令并将输出粘贴到 outbounds。它会注册一个新设备并输出 private_key、address、endpoint_public_key、device_id 和 access_token。
该命令支持 --license、--access-jwt、--name、--model、--locale、--tag、--ipv6 和 --raw。
自动注册。 留空 private_key 和 address 并启用 experimental.cache_file。首次启动时出站会注册设备,并以出站标签为键存入缓存文件。之后的启动会复用它。若 Cloudflare 拒绝已存储的设备,出站会重新注册一次。
临时注册。 留空 private_key 和 address 并设置 ephemeral。每次启动都会注册一个只保存在内存中的新设备,无需缓存文件或其他状态,适合无状态节点。
注册设备即表示接受 Cloudflare 服务条款。私钥、访问令牌和许可证均为机密。
字段
server
隧道服务器地址。
默认使用注册时返回的 IPv4 端点,或 162.159.198.1。
server_port
隧道服务器端口。默认使用 443。
private_key
为设备注册的 ECDSA P-256 私钥,格式为 base64 SEC 1 或 PKCS #8 DER,或 PEM。可直接使用 usque config.json 中的 private_key。
静态凭据模式下须与 address 一同设置。
address
分配给设备的隧道地址,格式为 /32 和 /128 前缀。
静态凭据模式下须与 private_key 一同设置。
endpoint_public_key
服务器公钥,格式为 base64 PKIX DER 或 PEM。仅当服务器证书携带此公钥时才接受。
若为空,则按 tls.server_name 正常校验服务器证书,除非设置了 tls.insecure。
device_id
设备 ID。仅在静态模式下与 license 一同使用。
access_token
设备访问令牌。仅在静态模式下与 license 一同使用。
license
绑定到设备的 WARP+ 许可证。
自动模式下在注册时应用,或在与已存储许可证不同时应用。静态模式下需要 device_id 和 access_token。
access_jwt
自动注册时以 CF-Access-Jwt-Assertion 发送的 Zero Trust 团队令牌。
device_name
自动注册时设置的设备名称,显示在 Cloudflare 控制台中。
ephemeral
自 sing-box 1.14.2.1 起
每次启动注册一个新设备,仅保存在内存中,并在 sing-box 退出时从 Cloudflare 删除。无需缓存文件。
删除为尽力而为。因崩溃或强制终止而遗留的设备会保持注册状态;设置了 license 时需要注意,因为一个许可证只能绑定有限数量的设备。
仅用于自动注册。
api_detour
注册 API 请求使用的出站标签。
若为空,API 请求使用本出站的拨号字段。
API 主机 api.cloudflareclient.com 必须能在不经过本出站的情况下解析。若 DNS 服务器以本出站作为 detour,请为本出站设置直连的 domain_resolver,或设置拥有独立解析器的 api_detour。否则注册会等待一条尚无法连接的隧道。
network
启用的网络协议。tcp 或 udp。默认两者均启用。
mtu
隧道 MTU。默认使用 1280。
若日志报告丢弃了超过隧道限制的数据包(例如设置了 initial_packet_size 时),请调低该值。
tls
TLS 配置,参阅 TLS。默认启用 tls.enabled。
仅 server_name、insecure、certificate、certificate_path、min_version、max_version、cipher_suites、curve_preferences 和 handshake_timeout 生效。server_name 默认为 consumer-masque.cloudflareclient.com,且不用于验证服务器身份。uTLS、Reality、ECH、ALPN 和客户端证书会被拒绝。
QUIC 字段
参阅 QUIC 字段。keep_alive_period 默认为 30s。
拨号字段
参阅 拨号字段。