cloudflared — sing-box
cloudflared 入站运行一个内置的 Cloudflare Tunnel 连接器。它不监听本地端口,而是使用隧道令牌主动连接 Cloudflare 边缘,并把隧道送来的每个连接——TCP、UDP 与 ICMP——交给 sing-box 的路由引擎,标记为该入站。
没有本地监听器
cloudflared 没有监听地址:入站 页面中介绍的监听字段(listen、listen_port 等)不适用。所有流量都经由主动建立的隧道连接到达。
入站选项
inbounds[] 中的 type: "cloudflared":
| 字段 | 类型 | 默认值 | 允许值 | 描述 |
|---|---|---|---|---|
token | string | (required) | <base64 tunnel token> | 来自 Cloudflare Zero Trust 控制台的隧道令牌(Networks → Tunnels → Install connector)。缺少时启动失败。 |
ha_connections | int | 4 | <int> | 到 Cloudflare 边缘的高可用连接数。0 或未设置表示 4;上限为发现到的边缘地址数量。 |
protocol | string | auto | auto | quic | http2 | h2mux | 边缘传输协议。auto(或留空)先使用 QUIC,在多次失败或 QUIC 疑似被阻断时回退到 HTTP/2。h2mux 仍被接受,但会按 http2 处理并给出警告。 |
post_quantum | bool | false | true | false | 使用后量子密钥交换。仅限 QUIC:会把传输固定为 QUIC(不回退到 HTTP/2),与 protocol: http2 同时设置会被拒绝。 |
edge_ip_version | int | 0 | 0 | 4 | 6 | 连接 Cloudflare 边缘所用的 IP 版本;0 表示自动选择。 |
datagram_version | string | (remote) | v2 | v3 | UDP over QUIC 所用的数据报协议版本。未设置时跟随该账户在 Cloudflare 端的远程特性设置(初始为 v2)。仅在使用 QUIC 时有意义。 |
grace_period | badoption.Duration | 30s | <duration> | 正在进行的边缘连接的优雅关闭时限。 |
region | string | (from token) | <region> | Cloudflare 边缘区域选择器。若令牌中已内嵌端点,则设置它会被拒绝。 |
control_dialer | DialerOptions | (direct) | Dial Fields | 连接 Cloudflare 控制平面所用的拨号字段。主机名经由 sing-box 的 DNS 路由解析。 |
tunnel_dialer | DialerOptions | (direct) | Dial Fields | 连接 Cloudflare 边缘数据平面所用的拨号字段。 |
源码: option/cloudflared.go:5-16 · 锚定版本 v1.14.2 (af6e64c)
示例
接收隧道送来的全部流量并直接转发出去:
json
{
"inbounds": [
{
"type": "cloudflared",
"tag": "cf-in",
"token": "<tunnel token>"
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" }
],
"route": {
"rules": [
{ "inbound": ["cf-in"], "outbound": "direct" }
]
}
}说明
- 该类型仅在使用
with_cloudflared构建标签时编译进来;其他构建会在启动时报错并提示重新构建。 - 隧道服务哪些公共主机名与私有网络是在 Cloudflare 控制台中配置的,而不是在 sing-box 中。这些 ingress 规则指向的源站地址会成为 sing-box 路由的目标,因此一条针对
inbound: ["<tag>"]的规则决定由哪个出站去访问它们。 - 使用默认
protocol时,连接器先用 QUIC,在失败五次后(或 QUIC 疑似被阻断时立即)回退到 HTTP/2。设为quic或http2可固定某一种传输。 post_quantum只能配合 QUIC 使用;与protocol: http2同时设置时,入站会在启动时失败。region与已内嵌端点的令牌冲突。control_dialer与tunnel_dialer接受常规的 拨号字段,因此隧道本身可以经由另一个出站(detour)拨出,或绑定到某个接口。
跨内核说明
- Xray-core 与 mihomo 没有内置的 Cloudflare Tunnel 连接器;使用它们时需要在内核旁边单独运行
cloudflared守护进程。
源码: option/cloudflared.go:5-16 · v1.14.2 (af6e64c)
