Skip to content

构建特性 ​

只有需要定制二进制时才需阅读本页。Cargo features 决定编译哪些能力;配置引用未编译的协议时,Zero 会在启动前报错。

默认构建 ​

bash
cargo build --release

默认等价于 full + status-api:

  • full:SOCKS5、HTTP、Mixed、VLESS、Hysteria2、Shadowsocks、Trojan、VMess、Mieru 和 DNS。
  • status-api:运行状态与控制端点。

Connector、gRPC 和 JSONL sink 不在默认集合中;WireGuard 由实验构建单独提供。full 是一组常用能力,不表示包含仓库内每一种实验功能。

按需裁剪 ​

bash
cargo build --release --no-default-features \
  --features socks5,http,status-api

可单独选择的协议能力:

Feature包含能力
socks5SOCKS5
httpHTTP CONNECT 与标准 HTTP forward-proxy 入站
mixedMixed 入站
vlessVLESS
hysteria2Hysteria2
shadowsocksShadowsocks
trojanTrojan
vmessVMess
mieruMieru
wireguard实验能力,不属于 full;使用前核对发行物兼容性
dnsDNS、缓存、路由与 Fake IP

协议的具体入站、出站、TCP、UDP、MUX 和传输支持范围,以运行时能力矩阵为准,见协议能力与限制。

管理与事件能力 ​

Feature用途隐含依赖
status-apiHTTP/IPC 状态与控制无
grpc-apigRPC 控制面zero-grpc
event-dispatcher通用事件分发zero-connector
sink-jsonlJSONL 本地事件 sinkevent-dispatcher
connectorWebhook 事件投递event-dispatcher

这些能力相互独立:

  • connector 不会自动启用 status-api 或 grpc-api。
  • status-api 和 grpc-api 用于管理节点。
  • connector 按 api.event_sinks 投递 zero.event.v1 事件,不提供配置、用户或面板工作流。

需要 API 管理和 Webhook 投递的节点可以构建:

bash
cargo build --release \
  --features full,status-api,grpc-api,connector

如果只需要 HTTP/IPC 管理,不必启用 grpc-api;如果不需要节点主动投递事件,也不必启用 connector。

确认当前二进制 ​

不同发行物可能采用不同 feature 组合。部署前运行:

bash
zero build-info

再使用实际配置执行:

bash
zero validate config.json

不要只根据源码中存在某个协议判断发行物一定包含它。官方发布工作流可以额外启用 feature,源码默认构建与下载包不必完全相同。并非所有源码版本都有 wireguard feature;不要向不包含它的版本添加同名配置。

ZeroDeNet