build-from-source.zh.md 7.8 KB


icon: material/file-code

从源代码构建

:material-graph: 要求

sing-box 1.11

  • Go 1.23.1 - ~

sing-box 1.10

  • Go 1.20.0 - ~
  • Go 1.21.0 - ~ with tag with_ech enabled

sing-box 1.9

  • Go 1.18.5 - 1.22.x
  • Go 1.20.0 - 1.22.x with tag with_quic, or with_utls enabled
  • Go 1.21.0 - 1.22.x with tag with_ech enabled

您可以从 https://go.dev/doc/install 下载并安装 Go,推荐使用最新版本。

:material-fast-forward: 快速开始

make

或者构建二进制文件并将其安装到 $GOBIN

make install

:material-cog: 自定义构建

TAGS="tag_a tag_b" make

or

go build -tags "tag_a tag_b" ./cmd/sing-box

:material-folder-settings: 构建标记

构建标记 默认启动 说明
with_quic :material-check: Build with QUIC support, see QUIC and HTTP3 DNS transports, Naive inbound, Hysteria Inbound, Hysteria Outbound and V2Ray Transport#QUIC.
with_grpc :material-close:️ Build with standard gRPC support, see V2Ray Transport#gRPC.
with_dhcp :material-check: Build with DHCP support, see DHCP DNS transport.
with_wireguard :material-check: Build with WireGuard support, see WireGuard outbound.
with_utls :material-check: Build with uTLS support for TLS outbound, see TLS.
with_acme :material-check: Build with ACME TLS certificate issuer support, see TLS.
with_clash_api :material-check: Build with Clash API support, see Experimental.
with_v2ray_api :material-close:️ Build with V2Ray API support, see Experimental.
with_gvisor :material-check: Build with gVisor support, see Tun inbound and WireGuard outbound.
with_embedded_tor (CGO required) :material-close:️ Build with embedded Tor support, see Tor outbound.
with_tailscale :material-check: Build with Tailscale support, see Tailscale endpoint
with_naive_outbound :material-close:️ 构建 NaiveProxy 出站支持,参阅 NaiveProxy 出站

除非您确实知道您正在启用什么,否则不建议更改默认构建标签列表。

:material-layers: with_naive_outbound

NaiveProxy 出站需要根据目标平台进行特殊的构建配置。

支持的平台

平台 架构 模式 要求
Linux amd64, arm64 purego 无(官方发布版本已包含库文件)
Linux 386, amd64, arm, arm64 CGO Chromium 工具链,运行时需要 glibc >= 2.31
Linux (musl) 386, amd64, arm, arm64 CGO Chromium 工具链
Windows amd64, arm64 purego 无(官方发布版本已包含库文件)
Apple 平台 * CGO Xcode
Android * CGO Android NDK

Windows

使用 with_purego 标记。

官方发布版本已包含 libcronet.dll。自行构建时,从 cronet-go releases 下载并放置在 sing-box.exe 相同目录或 PATH 中的任意目录。

Linux (purego, 仅 amd64/arm64)

使用 with_purego 标记。

官方发布版本已包含 libcronet.so。自行构建时,从 cronet-go releases 下载并放置在 sing-box 二进制文件相同目录或系统库路径中。

Linux (CGO)

参阅 cronet-go

  • glibc 构建:运行时需要 glibc >= 2.31
  • musl 构建:使用 with_musl 标记,静态链接,无运行时要求

Apple 平台 / Android

参阅 cronet-go