Build from source
Requirements
sing-box 1.11
- Go 1.23.1 - ~
sing-box 1.10
- Go 1.20.0 - ~
sing-box 1.9
- Go 1.18.5 - 1.22.x
- Go 1.20.0 - 1.22.x with tag
with_quic, orwith_utlsenabled
Simple Build
Or build and install binary to $GOBIN:
Custom Build
or
Build Tags
| Build Tag | Enabled by default | Description |
|---|---|---|
with_quic |
Build with QUIC support, see QUIC and HTTP3 DNS transports, Naive inbound, Hysteria Inbound, Hysteria Outbound and V2Ray Transport#QUIC. | |
with_grpc |
️ | Build with standard gRPC support, see V2Ray Transport#gRPC. |
with_dhcp |
Build with DHCP support, see DHCP DNS transport. | |
with_wireguard |
Build with WireGuard support, see WireGuard outbound. | |
with_utls |
Build with uTLS support for TLS outbound, see TLS. | |
with_acme |
Build with ACME TLS certificate issuer support, see TLS. | |
with_clash_api |
Build with Clash API support, see Experimental. | |
with_v2ray_api |
️ | Build with V2Ray API support, see Experimental. |
with_gvisor |
Build with gVisor support, see Tun inbound and WireGuard outbound. | |
with_embedded_tor (CGO required) |
️ | Build with embedded Tor support, see Tor outbound. |
with_tailscale |
Build with Tailscale support, see Tailscale endpoint | |
with_naive_outbound |
️ | Build with NaiveProxy outbound support, see NaiveProxy outbound. |
It is not recommended to change the default build tag list unless you really know what you are adding.
with_naive_outbound
NaiveProxy outbound requires special build configurations depending on your target platform.
Supported Platforms
| Platform | Architectures | Mode | Requirements |
|---|---|---|---|
| Linux | amd64, arm64 | purego | None (library included in official releases) |
| Linux | 386, amd64, arm, arm64 | CGO | Chromium toolchain, glibc >= 2.31 at runtime |
| Linux (musl) | 386, amd64, arm, arm64 | CGO | Chromium toolchain |
| Windows | amd64, arm64 | purego | None (library included in official releases) |
| Apple platforms | * | CGO | Xcode |
| Android | * | CGO | Android NDK |
Windows
Use with_purego tag.
For official releases, libcronet.dll is included in the archive. For self-built binaries, download from cronet-go releases and place in the same directory as sing-box.exe or in a directory listed in PATH.
Linux (purego, amd64/arm64 only)
Use with_purego tag.
For official releases, libcronet.so is included in the archive. For self-built binaries, download from cronet-go releases and place in the same directory as sing-box binary or in system library path.
Linux (CGO)
See cronet-go.
- glibc build: Requires glibc >= 2.31 at runtime
- musl build: Use
with_musltag, statically linked, no runtime requirements
Apple platforms / Android
See cronet-go.